diff --git a/translated/tech/20230313.3 ⭐️⭐️ How to Install Kubernetes Cluster Using Kubespray.md b/published/20230313.3 ⭐️⭐️ How to Install Kubernetes Cluster Using Kubespray.md similarity index 71% rename from translated/tech/20230313.3 ⭐️⭐️ How to Install Kubernetes Cluster Using Kubespray.md rename to published/20230313.3 ⭐️⭐️ How to Install Kubernetes Cluster Using Kubespray.md index 1bbe0f1bc3..60f4c2a1ce 100644 --- a/translated/tech/20230313.3 ⭐️⭐️ How to Install Kubernetes Cluster Using Kubespray.md +++ b/published/20230313.3 ⭐️⭐️ How to Install Kubernetes Cluster Using Kubespray.md @@ -3,28 +3,30 @@ [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15675-1.html" -如何使用 Kubespray 安装 Kubernetes 集群 +使用 Kubespray 安装 Kubernetes 集群 ====== -你是否正在寻找有关如何使用 kubespray 安装 Kubernetes (k8s) 的简单指南? +![][0] -此页面上的分步指南将向你展示如何在 Linux 系统上使用 kubespray 安装 Kubernetes 集群。 +> 你是否正在寻找有关如何使用 Kubespray 安装 Kubernetes(k8s)的简单指南? -Kubespray 是一个免费的开源工具,它提供了 ansible playbook 来部署和管理 Kubernetes 集群。它旨在简化跨多个节点的 Kubernetes 集群的安装过程,允许用户快速轻松地部署和管理生产就绪的 Kubernetes 集群。 +此页面上的分步指南将向你展示如何在 Linux 系统上使用 Kubespray 安装 Kubernetes 集群。 -它支持一系列操作系统,包括 Ubuntu、CentOS、Rocky Linux 和 Red Hat Enterprise Linux,它可以在各种平台上部署 Kubernetes,包括裸机、公共云和私有云。 +Kubespray 是一个自由开源的工具,它提供了 Ansible 剧本playbook 来部署和管理 Kubernetes 集群。它旨在简化跨多个节点的 Kubernetes 集群的安装过程,允许用户快速轻松地部署和管理生产就绪的 Kubernetes 集群。 + +它支持一系列操作系统,包括 Ubuntu、CentOS、Rocky Linux 和 Red Hat Enterprise Linux(RHEL),它可以在各种平台上部署 Kubernetes,包括裸机、公共云和私有云。 在本指南中,我们使用以下实验室: -- Ansible 节点(Kubespray 节点):最小安装的 Ubuntu 22.04 LTS (192.168.1.240) -- 3 个控制器节点:最小安装的 Rocky Linux 9 (192.168.1.241/242/243) -- 2 个工作节点:最小安装的 Rocky Linux 9 (192.168.1.244/245) +- Ansible 节点(Kubespray 节点):最小安装的 Ubuntu 22.04 LTS(192.168.1.240) +- 3 个控制器节点:最小安装的 Rocky Linux 9(192.168.1.241/242/243) +- 2 个工作节点:最小安装的 Rocky Linux 9(192.168.1.244/245) -##### kubespray 的最低系统要求 +### Kubespray 的最低系统要求 - 主节点:1500 MB RAM、2 个 CPU 和 20 GB 可用磁盘空间 - 工作节点:1024 MB、2 个 CPU、20 GB 可用磁盘空间 @@ -36,7 +38,7 @@ Kubespray 是一个免费的开源工具,它提供了 ansible playbook 来部 ### 步骤 1)配置 Kubespray 节点 -登录到你的 Ubuntu 22.04 系统并安装 ansible。运行以下一组命令: +登录到你的 Ubuntu 22.04 系统并安装 Ansible。运行以下一组命令: ``` $ sudo apt update @@ -46,7 +48,7 @@ $ cd kubespray $ pip install -r requirements.txt ``` -验证 ansible 版本,运行: +验证 Ansible 版本,运行: ``` $ ansible --version @@ -62,7 +64,7 @@ $ declare -a IPS=(192.168.1.241 192.168.1.241 192.168.1.242 192.168.1.243 192.16 $ CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]} ``` -修改 inventory 文件,设置 3 个控制节点和 2 个工作节点: +修改清单文件,设置 3 个控制节点和 2 个工作节点: ``` $ vi inventory/mycluster/hosts.yaml @@ -72,7 +74,7 @@ $ vi inventory/mycluster/hosts.yaml 保存并关闭文件。 -查看并修改文件 “inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml” 中的以下参数: +查看并修改文件 `inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml` 中的以下参数: ``` kube_version: v1.26.2 @@ -84,35 +86,36 @@ cluster_name: linuxtechi.local ![][3] -要启用 kuberenetes 仪表板和入口控制器等插件,请在文件 “inventory/mycluster/group_vars/k8s_cluster/addons.yml” 中将参数设置为已启用: +要启用 Kuberenetes 仪表板和入口控制器等插件,请在文件 `inventory/mycluster/group_vars/k8s_cluster/addons.yml` 中将参数设置为已启用: ``` $ vi inventory/mycluster/group_vars/k8s_cluster/addons.yml ------------ +``` + +``` dashboard_enabled: true ingress_nginx_enabled: true ingress_nginx_host_network: true ------------ ``` 保存并退出文件。 -### 步骤 2)将 SSH 密钥从 ansible 节点复制到所有其他节点 +### 步骤 2)将 SSH 密钥从 Ansible 节点复制到所有其他节点 -首先在你的 ansible 节点上为你的本地用户生成 ssh-keys: +首先在你的 Ansible 节点上为你的本地用户生成 SSH 密钥: ``` $ ssh-keygen ``` -使用 ssh-copy-id 命令复制 ssh-keys: +使用 `ssh-copy-id` 命令复制 SSH 密钥: ``` -$ ssh-copy-id [email protected] -$ ssh-copy-id [email protected] -$ ssh-copy-id [email protected] -$ ssh-copy-id [email protected] -$ ssh-copy-id [email protected] +$ ssh-copy-id sysops@192.168.1.241 +$ ssh-copy-id sysops@192.168.1.242 +$ ssh-copy-id sysops@192.168.1.243 +$ ssh-copy-id sysops@192.168.1.244 +$ ssh-copy-id sysops@192.168.1.245 ``` 还要在每个节点上运行以下命令: @@ -121,16 +124,16 @@ $ ssh-copy-id [email protected] $ echo "sysops ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/sysops ``` -### 步骤 3) 禁用防火墙并启用 IPV4 转发 +### 步骤 3)禁用防火墙并启用 IPV4 转发 -要在所有节点上禁用防火墙,请从 ansible 节点运行以下 ansible 命令: +要在所有节点上禁用防火墙,请从 Ansible 节点运行以下 `ansible` 命令: ``` $ cd kubespray $ ansible all -i inventory/mycluster/hosts.yaml -m shell -a "sudo systemctl stop firewalld && sudo systemctl disable firewalld" ``` -运行以下 ansible 命令以在所有节点上启用 IPv4 转发和禁用交换: +运行以下 `ansible` 命令以在所有节点上启用 IPv4 转发和禁用交换: ``` $ ansible all -i inventory/mycluster/hosts.yaml -m shell -a "echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf" @@ -139,7 +142,7 @@ $ ansible all -i inventory/mycluster/hosts.yaml -m shell -a "sudo sed -i '/ swap ### 步骤 4)启动 Kubernetes 部署 -现在,我们都准备好开始 Kubernetes 集群部署,从 ansible 节点运行下面的 ansible playbook: +现在,我们都准备好开始 Kubernetes 集群部署,从 Ansible 节点运行下面的 Ansible 剧本: ``` $ cd kubespray @@ -158,7 +161,7 @@ $ ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root ### 步骤 5)访问 Kubernetes 集群 -登录到第一个主节点,切换到 root 用户,在那里运行 kubectl 命令: +登录到第一个主节点,切换到 root 用户,在那里运行 `kubectl` 命令: ``` $ sudo su - @@ -170,9 +173,9 @@ $ sudo su - ![][6] -完美,上面的输出确认集群中的所有节点都处于就绪状态,并且所有命名空间的 Pod 都已启动并正在运行。这表明我们的 Kubernetes 集群部署成功。 +完美,上面的输出确认集群中的所有节点都处于就绪状态,并且所有命名空间的 容器荚Pod 都已启动并正在运行。这表明我们的 Kubernetes 集群部署成功。 -让我们尝试部署基于 nginx 的部署并将其公开为节点端口,运行以下 kubectl 命令: +让我们尝试部署基于 Nginx 的部署并将其公开为节点端口,运行以下 `kubectl` 命令: ``` $ kubectl create deployment demo-nginx-kubespray --image=nginx --replicas=2 @@ -186,15 +189,15 @@ $ kubectl get svc demo-nginx-kubespray ![][7] -现在尝试使用工作节点的 IP 地址和节点端口 (30050) 访问此 nginx 应用。 +现在尝试使用工作节点的 IP 地址和节点端口(30050)访问此 Nginx 应用。 -使用以下 curl 命令或 Web 浏览器访问此应用。 +使用以下 `curl` 命令或 Web 浏览器访问此应用。 ``` $ curl 192.168.1.245:30050 ``` -或者 +或者, ![][8] @@ -220,7 +223,6 @@ metadata: ``` $ kubectl apply -f dashboard-adminuser.yml serviceaccount/admin-user created -$ ``` 创建集群角色绑定: @@ -246,7 +248,6 @@ subjects: ``` $ kubectl apply -f admin-role-binding.yml clusterrolebinding.rbac.authorization.k8s.io/admin-user created -$ ``` 现在,为管理员用户创建令牌: @@ -259,15 +260,15 @@ $ kubectl -n kube-system create token admin-user 复制此令牌并将其放在安全的地方,因为我们将使用令牌登录 Kubernetes 仪表板。 -使用以下 ssh 命令从你的系统连接到第一个主节点 +使用以下 `ssh` 命令从你的系统连接到第一个主节点: ``` -$ ssh -L8001:localhost:8001 [email protected] +$ ssh -L8001:localhost:8001 sysops@192.168.1.241 ``` 注意:替换适合你环境的 IP 地址。 -登录后,切换到 root 用户并运行 “kubectl proxy” 命令: +登录后,切换到 root 用户并运行 `kubectl proxy` 命令: ``` $ sudo su - @@ -283,11 +284,13 @@ Starting to serve on 127.0.0.1:8001 完成代理设置后,将以下网址粘贴到浏览器中: +``` http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#/login +``` ![][12] -选择令牌登录并粘贴你在上面为管理员用户生成的令牌,然后单击“登录”。 +选择令牌登录并粘贴你在上面为管理员用户生成的令牌,然后单击“登录Sign in”。 ![][13] @@ -300,7 +303,7 @@ via: https://www.linuxtechi.com/install-kubernetes-using-kubespray/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -318,4 +321,5 @@ via: https://www.linuxtechi.com/install-kubernetes-using-kubespray/ [10]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Ssh-Tunneling-master-node-kubernetes.png [11]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Proxy-Settings-Kubenetes-Dashbaord-kubespray.png [12]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Kubernetes-Dashboard-Login-Page-KubeSpray.png -[13]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Kubernetes-Dashboard-Home-Page-Kubespray.png \ No newline at end of file +[13]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Kubernetes-Dashboard-Home-Page-Kubespray.png +[0]: https://img.linux.net.cn/data/attachment/album/202303/30/074513iy2it365a3fti2f2.jpg \ No newline at end of file