From ada045d731ecbe5bca1005a7b37247d7cc1b9edf Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 30 Nov 2022 09:20:36 +0800 Subject: [PATCH] RP @lxbwolf https://linux.cn/article-15302-1.html --- ...netes Cluster on Debian 11 with Kubeadm.md | 127 +++++++++--------- 1 file changed, 64 insertions(+), 63 deletions(-) rename {translated/tech => published}/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md (59%) diff --git a/translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md b/published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md similarity index 59% rename from translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md rename to published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md index d4c0604d27..dd56f79b7c 100644 --- a/translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md +++ b/published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md @@ -3,19 +3,22 @@ [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" [#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15302-1.html" 如何用 Kubeadm 在 Debian 11 上安装 Kubernetes 集群 ====== -你是否在寻找一份在 Debian 11 (Bullseye) 上安装 Kubernetes 集群的简易指南? -本页的分步指南将向您展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。 +![][0] -Kubernetes(k8s)集群包含主节点和工作节点,用于运行容器化的应用程序。主节点作为控制平面,工作节点为实际工作负载提供环境。 +> 你是否在寻找一份在 Debian 11(Bullseye)上安装 Kubernetes 集群的简易指南? -##### 前置条件 +这份分步指南将向你展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。 + +Kubernetes(k8s)集群包含主控节点和工作节点,用于运行容器化的应用程序。主控节点作为控制平面,工作节点为实际工作负载提供环境。 + +前置条件: * 已安装 Debian 11 * 2 CPU / vCPU @@ -24,27 +27,27 @@ Kubernetes(k8s)集群包含主节点和工作节点,用于运行容器化 * 有管理员权限的 sudo 用户 * 稳定的网络连接 -##### Lab 配置 +实验环境配置: 在本文中,我使用了 3 个 Debian 11 系统的节点,配置如下 -* Master Node (k8s-master) – 192.168.1.236 -* Worker Node 1 (k8s-worker1) – 192.168.1.237 -* Worker Node 2 (k8s-worker2) – 192.168.1.238 +* 主控节点(`k8s-master`) – 192.168.1.236 +* 工作节点 1(`k8s-worker1`) – 192.168.1.237 +* 工作节点 2(`k8s-worker2`) – 192.168.1.238 事不宜迟,我们直接进入安装步骤。 -### 1 ) 设置主机名和更新 /etc/hosts 文件 +### 1、设置主机名和更新 /etc/hosts 文件 -在主节点和工作节点上使用 hostnamectl 命令来设置主机名。 +在主控节点和工作节点上使用 `hostnamectl` 命令来设置主机名: ``` -$ sudo hostnamectl set-hostname "k8s-master"       // Run on master node -$ sudo hostnamectl set-hostname "k8s-worker1"      // Run on 1st worker node -$ sudo hostnamectl set-hostname "k8s-worker2"      // Run on 2nd worker node +$ sudo hostnamectl set-hostname "k8s-master"       // 在主控节点运行 +$ sudo hostnamectl set-hostname "k8s-worker1"      // 在工作节点 1 运行 +$ sudo hostnamectl set-hostname "k8s-worker2"      // 在工作节点 2 运行 ``` -在所有节点的 /etc/hosts 文件末尾添加下面几行内容, +在所有节点的 `/etc/hosts` 文件末尾添加下面几行内容: ``` 192.168.1.236       k8s-master @@ -52,20 +55,20 @@ $ sudo hostnamectl set-hostname "k8s-worker2"      // Run on 2nd worker nod 192.168.1.238       k8s-worker2 ``` -### 2) 在所有节点上关闭交换分区 +### 2、在所有节点上关闭交换分区 -我推荐关闭交换分区,以便更丝滑地使用 kubelet。在所有节点上执行以下命令来关闭交换分区。 +我推荐关闭交换分区,以便更丝滑地使用 `kubelet`。在所有节点上执行以下命令来关闭交换分区: ``` $ sudo swapoff -a $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ``` -### 3) 配置 Kubernetes 集群相关的防火墙规则 +### 3、配置 Kubernetes 集群相关的防火墙规则 -如果你的操作系统防火墙是打开的,请分别在主节点和工作节点允许以下的端口。 +如果你的操作系统防火墙是打开的,请分别在主控节点和工作节点允许以下的端口。 -在主节点,执行 +在主控节点,执行: ``` $ sudo ufw allow 6443/tcp @@ -78,7 +81,7 @@ $ sudo ufw allow 10255/tcp $ sudo ufw reload ``` -在工作节点,执行 +在工作节点,执行: ``` $ sudo ufw allow 10250/tcp @@ -86,13 +89,13 @@ $ sudo ufw allow 30000:32767/tcp $ sudo ufw reload ``` -注意:如果你的 Debian 11系统防火墙是关闭的,可以跳过此步骤。 +注意:如果你的 Debian 11 系统防火墙是关闭的,可以跳过此步骤。 -### 4) 在所有节点安装 Containerd 运行时 +### 4、在所有节点安装 Containerd 运行时 -Containerd 是容器运行时的行业标准,所有节点必须安装 containerd。 +Containerd 是容器运行时的行业标准,所有节点必须安装 Containerd。 -先在所有节点上配置如下的核心参数,再安装 containerd。 +先在所有节点上配置如下的核心参数,再安装 Containerd。 ``` $ cat </dev/null 2>&1 ``` -在所有节点上设置 cgroupdriver 为 systemd, - -编辑 “/etc/containerd/config.toml” 文件,找到 ‘[plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options]’ 部分,添加一行内容:SystemdCgroup = true +在所有节点上设置 `cgroupdriver` 为 `systemd`,编辑 `/etc/containerd/config.toml` 文件,找到 `[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]` 部分,添加一行内容:`SystemdCgroup = true`: ``` $ sudo vi /etc/containerd/config.toml @@ -141,16 +142,16 @@ $ sudo vi /etc/containerd/config.toml 保存并退出文件。 -在所有节点上重启并打开 containerd service。 +在所有节点上重启并启用 `containerd` 服务: ``` $ sudo systemctl restart containerd $ sudo systemctl enable containerd ``` -### 5) 添加 Kubernetes Apt 库 +### 5、添加 Kubernetes Apt 库 -执行以下命令,添加 Kubernetes Apt 库 +执行以下命令,添加 Kubernetes Apt 库: ``` $ sudo apt install gnupg gnupg2 curl software-properties-common -y @@ -158,9 +159,9 @@ $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dea $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" ``` -### 6) 在所有节点上安装 Kubelet, Kubectl 和 Kubeadm +### 6、在所有节点上安装 kubelet、kubectl 和 kubeadm -在所有节点上执行以下 apt 命令,安装 Kubernetes 集群组件,如 kubelet,kubectl 以及 Kubeadm。 +在所有节点上执行以下 `apt` 命令,安装 Kubernetes 集群组件,如 `kubelet`、`kubectl` 以及 `kubeadm`。 ``` $ sudo apt update @@ -168,21 +169,21 @@ $ sudo apt install kubelet kubeadm kubectl -y $ sudo apt-mark hold kubelet kubeadm kubectl ``` -### 7) 使用 Kubeadm 创建 Kubernetes 集群 +### 7、使用 Kubeadm 创建 Kubernetes 集群 -现在我们可以创建 Kubernetes 集群了,在主节点上执行以下命令 +现在我们可以创建 Kubernetes 集群了,在主控节点上执行以下命令: ``` $ sudo kubeadm init --control-plane-endpoint=k8s-master ``` -命令输出 +命令输出: ![Kubernetes-Control-Plane-Initialization-Debian11][2] 出现以上内容,说明控制平面初始化成功。在输出中,有普通用户与集群交互的命令,也有把任何工作节点加入到集群的命令。 -要开始与集群进行交互,请在主节点上运行以下命令。 +要开始与集群进行交互,请在主控节点上运行以下命令: ``` $ mkdir -p $HOME/.kube @@ -190,36 +191,35 @@ $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` -执行以下 kubectl 命令来获取节点和集群的信息, +执行以下 `kubectl` 命令来获取节点和集群的信息: ``` $ kubectl get nodes $ kubectl cluster-info ``` -以上命令的输出 +以上命令的输出: ![Nodes-Cluster-Info-Kubectl][3] -通过执行 ‘Kubeadm join’ 命令来把两个工作节点加入到集群。 +通过执行 `kubeadm join` 命令来把两个工作节点加入到集群。 -注意:请从 ‘kubeadm init’ 命令的输出中复制完整的命令。在我的例子中,命令如下: +注意:请从 `kubeadm init` 命令的输出中复制完整的命令。在我的例子中,命令如下: ``` $ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \ -   --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17 ``` -在工作节点 1 上的输出如下 +在工作节点 1 上的输出如下: ![Worker-Node1-Join-Kunernetes-Cluster][4] -在工作节点 2 上的输出如下 +在工作节点 2 上的输出如下: ![Worker-Node2-Join-Kubernetes-Cluster][5] -在主节点上执行以下命令,检查节点的状态: +在主控节点上执行以下命令,检查节点的状态: ``` $ kubectl get nodes @@ -230,21 +230,21 @@ k8s-worker2   NotReady             2m19s   v1.25.0 $ ``` -为了使节点状态变为 ready,我们需要安装 POD 网络插件,如 Calico 或 flannel。 +为了使节点状态变为 `ready`,我们需要安装容器荚Pod网络插件,如 Calico 或 flannel。 -### 8) 安装 Calico Pod 网络插件 +### 8、安装 Calico Pod 网络插件 -在主节点上执行以下命令安装 calico: +在主控节点上执行以下命令安装 Calico: ``` $ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml ``` -输出 +输出: ![Install-calico-pod-network-addon-debian11][6] -在所有节点上执行以下命令,配置防火墙允许 Calico 的端口, +在所有节点上执行以下命令,配置防火墙允许 Calico 的端口: ``` $ sudo ufw allow 179/tcp @@ -255,7 +255,7 @@ $ sudo ufw allow 4789/udp $ sudo ufw reload ``` -执行以下命令检查下 Calico 的状态 +执行以下命令检查下 Calico 的状态: ``` $ kubectl get pods -n kube-system @@ -263,15 +263,15 @@ $ kubectl get pods -n kube-system ![Calico-Pods-Status-Kuberenetes-Debian11][7] -完美!现在再检查下节点状态。 +完美!现在再检查下节点状态: ![Nodes-status-after-calico-Installation][8] -非常棒!上面的输出说明主节点和工作节点的状态都是 ready。现在这个集群可以正常工作了。 +非常棒!上面的输出说明主控节点和工作节点的状态都是 `ready`。现在这个集群可以正常工作了。 -### 9) 检查 Kubernetes 集群安装是否正确 +### 9、检查 Kubernetes 集群安装是否正确 -我们尝试通过 deployment 命令来部署基于 nginx 的应用程序,来验证Kubernetes 集群的安装是否正确。执行以下命令: +我们尝试通过 `deployment` 命令来部署基于 Nginx 的应用程序,来验证 Kubernetes 集群的安装是否正确。执行以下命令: ``` $ kubectl create deployment nginx-app --image=nginx --replicas 2 @@ -283,9 +283,9 @@ $ kubectl describe svc nginx-web-svc ![Nginx-Based-App-Kubernetes-Cluster-Debian11][9] -使用以下的 curl 命令通过节点端口 30036 来访问基于 nginx 的应用程序。 +使用以下的 `curl` 命令通过节点端口 30036 来访问基于 nginx 的应用程序。 -注意:在 curl 命令中,两个工作节点的主机名都可以使用 +注意:在 `curl` 命令中,可以使用两个工作节点任一的主机名。 ``` $ curl http://k8s-worker1:30036 @@ -304,7 +304,7 @@ via: https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] 译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -320,3 +320,4 @@ via: https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/ [8]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nodes-status-after-calico-Installation.png [9]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nginx-Based-App-Kubernetes-Cluster-Debian11.png [10]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Access-Nginx-Based-App-via-NodePort-Kubernetes-Debian11.png +[0]: https://img.linux.net.cn/data/attachment/album/202211/30/091928zlxbvttw58x6rztw.jpg \ No newline at end of file