|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
节点和机器池
在Rancher中启动Kubernetes集群后,您可以从集群的*节点*选项卡管理单个节点。
-
点击左上角的*☰*。
-
选择*集群管理*。
-
找到您想要管理节点的集群,并点击行末的*探索*按钮。
-
从左侧导航中选择*节点*。
根据用于配置集群的选项,可用的节点选项不同。
|
如果您想管理_集群_而不是单个节点,请参见xref:[编辑集群]。 |
每个集群创建选项可用的节点选项
下表列出了Rancher中每种类型集群可用的节点选项。点击*选项*列中的链接以获取有关每个功能的详细信息。
| 选项 | 由基础设施提供商托管的节点 | 自定义节点 | 托管集群 | 注册的EKS节点 | 所有其他注册节点 | 说明 |
|---|---|---|---|---|---|---|
✓ |
✓ |
✓ |
✓ |
✓ |
将节点标记为不可调度。 |
|
✓ |
✓ |
✓ |
✓ |
✓ |
将节点标记为不可调度_并_驱逐所有Pod。 |
|
✓ |
✓ |
✓ |
✓ |
✓ |
输入节点的自定义名称、描述、标签或污点。 |
|
✓ |
✓ |
✓ |
✓ |
✓ |
查看API数据。 |
|
✓ |
✓ |
* |
* |
从集群中删除有缺陷的节点。 |
||
✓ |
下载SSH密钥以便通过SSH连接到节点。 |
|||||
✓ |
✓ |
增加或减少节点池中的节点数量。 |
-
通过查看API访问的删除选项
由基础设施提供商托管的节点
当您在基础设施提供商中托管的节点上配置Rancher启动的Kubernetes集群时,可以使用机器池。
由托管Kubernetes提供商配置的节点
在Rancher中,由Kubernetes提供商托管的节点管理选项有些有限。与其使用Rancher UI进行编辑(例如增加或减少节点数量),不如直接编辑集群。
注册的节点
虽然您可以使用Rancher将工作负载部署到注册集群,但无法管理单个集群节点。所有导入集群节点的管理必须在Rancher之外进行。
在 Rancher API 中查看节点
选择此选项以查看节点的 API 端点。
通过基础设施提供商托管的节点进行 SSH 连接
对于 由基础设施提供商托管的节点,您可以下载其 SSH 密钥,以便从桌面远程连接。
-
在左上角,点击 ☰ > 集群管理。
-
在 集群 页面上,转到您想要 SSH 连接到节点的集群,并单击该集群的名称。
-
在 机器池 选项卡上,找到您想要远程连接的节点并单击 ⋮ > 下载 SSH 密钥。然后下载一个包含用于 SSH 的文件的 ZIP 文件。
-
将 ZIP 文件解压到任何位置。
-
打开终端。将您的位置更改为提取的 ZIP 文件。
-
输入下面的命令:
ssh -i id_rsa root@<IP_OF_HOST>
排空节点
排空 是首先隔离节点,然后驱逐其所有 Pod 的过程。此功能在执行节点维护(如内核升级或硬件维护)时非常有用。它防止新 Pod 部署到节点,同时重新分配现有 Pod,以便用户不会经历服务中断。
-
对于具有副本集的 Pod,Pod 会被调度到新节点的新 Pod 替换。此外,如果 Pod 是服务的一部分,则客户端会自动重定向到新 Pod。
-
对于没有副本集的 Pod,您需要启动 Pod 的新副本,并假设它不是服务的一部分,将客户端重定向到它。
您可以排空处于 cordoned 或 active 状态的节点。当您排空节点时,该节点会先被隔离,并评估是否满足排空条件,然后(如果满足条件)驱逐其 Pod。
但是,您可以在启动排空时覆盖排空条件。您还可以设置宽限期和超时值。
激进和安全的排空选项
当您为集群配置升级策略时,可以启用节点排空。如果启用了节点排空,您可以配置 Pod 的删除和重新调度方式。
-
激进模式
在此模式下,即使 Pod 没有控制器,也不会将其重新调度到新节点。Kubernetes 期望您拥有自己的逻辑来处理这些 pod 的删除。
Kubernetes 还期望实现能够决定如何处理使用 emptyDir 的 pod。如果一个 pod 使用 emptyDir 存储本地数据,您可能无法安全地删除它,因为一旦 pod 从节点中移除,emptyDir 中的数据将被删除。选择激进模式会删除这些 pod。
-
安全模式
如果一个节点有独立的 pod 或临时数据,它将被隔离但不会被排空。
排空和隔离状态
如果与用户输入相关的任何错误发生,节点将进入 cordoned 状态,因为排空失败。您可以纠正输入并尝试再次排空节点,或者通过取消隔离节点来中止。
如果排空继续而没有错误,节点将进入 draining 状态。当节点处于此状态时,您将有机会停止排空,这将停止排空处理并将节点状态更改为 cordoned。
一旦排空成功完成,节点处于 drained 状态。然后您可以关闭或删除该节点。
*想了解更多关于隔离和排空的信息吗?*请参阅 Kubernetes 文档。
标记一个节点以被 Rancher 忽略
某些解决方案,例如 F5 的 BIG-IP 集成,可能需要创建一个从未注册到集群的节点。
由于该节点从未完成注册,因此在 Rancher UI 中始终显示为不健康。
在这种情况下,您可能希望标记该节点以被 Rancher 忽略,这样 Rancher 仅在节点实际失败时才会将其显示为不健康。
您可以通过 Rancher UI 中的设置标记要被忽略的节点,或使用 kubectl。
|
在一个 开放问题 中,被标记为忽略的节点可能会卡在更新状态。 |
使用 kubectl 标记要被忽略的节点
要添加一个被 Rancher 忽略的节点,请使用 kubectl 创建一个具有以下标签的节点:
cattle.rancher.io/node-status: ignore
结果:如果您将该节点添加到集群,Rancher 会跳过与该节点的同步。该节点仍然可以是集群的一部分,并可以通过 kubectl 列出。
如果在将节点添加到集群之前添加标签,则该节点不会在 Rancher UI 中显示。
如果在将节点添加到 Rancher 集群后添加标签,则该节点不会从 UI 中去除。
如果您通过 Rancher UI 或 API 从 Rancher 服务器删除该节点,且在 Rancher API 的 Rancher 设置下的 nodeName 中列出了 v3/settings/ignore-node-name,则该节点不会从集群中去除。