From 64f03f43ec5e23cfe5c6689eb5e64e502a7b8cfe Mon Sep 17 00:00:00 2001 From: Jin Li Date: Wed, 25 Sep 2024 14:48:30 +0800 Subject: [PATCH] [zh-cn] sync adding-linux-nodes.md Co-authored-by: Qiming Teng --- .../kubeadm/adding-linux-nodes.md | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 content/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-linux-nodes.md diff --git a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-linux-nodes.md b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-linux-nodes.md new file mode 100644 index 0000000000..7ccb76bae6 --- /dev/null +++ b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-linux-nodes.md @@ -0,0 +1,187 @@ +--- +title: 添加 Linux 工作节点 +content_type: task +weight: 10 +--- + + + + + +本页介绍如何将 Linux 工作节点添加到 kubeadm 集群。 + +## {{% heading "prerequisites" %}} + + +* 每个要加入的工作节点都已安装 + [安装 kubeadm](/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) + 中所需的组件,例如 kubeadm、kubelet 和 + {{< glossary_tooltip term_id="container-runtime" text="容器运行时" >}}。 +* 一个正在运行的、由 `kubeadm init` 命令所创建的 kubeadm 集群,且该集群的创建遵循 + [使用 kubeadm 创建集群](/zh-cn/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) + 文档中所给的步骤。 +* 你需要对节点拥有超级用户权限。 + + + + +## 添加 Linux 工作节点 {#additional-information-for-kubeadm-join} + +要将新的 Linux 工作节点添加到集群中,请对每台机器执行以下步骤: + +1. 通过 SSH 或其他方式连接到该机器。 +1. 运行 `kubeadm init` 所输出的命令。例如: + + ```bash + sudo kubeadm join --token : --discovery-token-ca-cert-hash sha256: + ``` + +### kubeadm join 的额外信息 {#additional-information-for-kubeadm-join} + +{{< note >}} + +要为 `:` 指定一个 IPv6 元组, +IPv6 地址必须用方括号括起来,例如:`[2001:db8::101]:2073`。 +{{< /note >}} + + +如果你没有令牌,可以在控制平面节点上运行以下命令来获取: + + +```bash +# 在控制平面节点上运行此命令 +sudo kubeadm token list +``` + + +命令输出同以下内容类似: + +```console +TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS +8ewj1p.9r9hcjoqgajrj4gi 23h 2018-06-12T02:51:28Z authentication, The default bootstrap system: + signing token generated by bootstrappers: + 'kubeadm init'. kubeadm: + default-node-token +``` + + +默认情况下,节点加入令牌会在 24 小时后过期。当前令牌过期后,如果想把节点加入集群, +可以在控制平面节点上运行以下命令来创建新令牌: + + +```bash +# 在控制平面节点上运行此命令 +sudo kubeadm token create +``` + + +命令输出同以下内容类似: + +```console +5didvk.d09sbcov8ph2amjw +``` + + +如果你没有 `--discovery-token-ca-cert-hash` 的具体值,可以在控制平面节点上运行以下命令来获取: + + +```bash +# 在控制平面节点上运行此命令 +sudo cat /etc/kubernetes/pki/ca.crt | openssl x509 -pubkey | openssl rsa -pubin -outform der 2>/dev/null | \ + openssl dgst -sha256 -hex | sed 's/^.* //' +``` + + +命令输出同以下内容类似: + +```console +8cb2de97839780a412b93877f8507ad6c94f73add17d5d7058e91741c9d5ec78 +``` + + +`kubeadm join` 命令的输出应该同下面内容类似: + +``` +[preflight] Running pre-flight checks + +... (log output of join workflow) ... + +Node join complete: +* Certificate signing request sent to control-plane and response + received. +* Kubelet informed of new secure connection details. + +Run 'kubectl get nodes' on control-plane to see this machine join. +``` + + +几秒钟后,你应该在 `kubectl get nodes` 的输出中看到该节点。 +(例如,可以在控制平面节点上运行 `kubectl`)。 + +{{< note >}} + +集群节点通常是按顺序初始化的,因此 CoreDNS Pods 可能会全部运行在第一个控制平面节点上。 +为了保证高可用,请在至少一个新节点加入后,使用 +`kubectl -n kube-system rollout restart deployment coredns` 命令重新平衡 CoreDNS Pods。 +{{< /note >}} + +## {{% heading "whatsnext" %}} + + +* 参见如何[添加 Windows 工作节点](/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes/)。