# k8s-ansible **Repository Path**: daqiangliu/k8s-ansible ## Basic Information - **Project Name**: k8s-ansible - **Description**: ansible部署二进制k8s集群 - **Primary Language**: YAML - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2023-04-21 - **Last Updated**: 2023-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ansible playbook部署二进制的kubernetes集群 <<<<<<< HEAD ======= ## 部署集群 ### 节点初始化 设置ansible受控节点免验证登录 ### 设置变量信息 变量文件为`vars/main.yaml`,修改相关信息,配置集群运行模式 ### 设置Inventory信息 ```ini # 集群所有主机 [all] 192.168.1.13 192.168.1.1[5:7] # harbor 服务 [harbor] 192.168.1.17 # etcd集群 [etcd] 192.168.1.13 192.168.1.1[5:6] # 高可用apiserver [apiserver] 192.168.1.13 192.168.1.15 # 节点服务主机 [nodes] 192.168.1.13 192.168.1.1[5:7] ``` > etcd必须设置奇数个,高可用至少需要两个apiserver,如果在变量中设置`run_pod_on_master: true`,[nodes]需要和[all]一样,包含全部主机节点 ### 执行playbook ```shell root:kubernetes/ # ansible-playbook -i inventory/k8s -e '@vars/main.yaml' k8s.yaml ``` >默认会自动下载kubernetes,etcd,harbor的程序文件,可以提前下载好相关文件,防止下载失败导致的问题。下载的文件满足要求如下: > >使用vars/main.yaml中配置的地址进行下载 > >kubernetes_url: https://dl.k8s.io/v1.23.6/kubernetes-server-linux-amd64.tar.gz > >文件为`kubernetes-server-linux-amd64.tar.gz`,放在**ansible控制器**的/tmp目录下 > >etcd_url: https://github.com/etcd-io/etcd/releases/download/v3.4.14/etcd-v3.4.14-linux-amd64.tar.gz > >文件为`etcd-v3.4.14-linux-amd64.tar.gz`,放在**ansible控制器**的/tmp目录下 > >harbor_url: https://github.com/goharbor/harbor/releases/download/v2.1.5/harbor-offline-installer-v2.1.5.tgz > >文件为`harbor-offline-installer-v2.1.5.tgz`,放在**harbor主机**的/tmp目录下 >>>>>>> 447786f36af945a7690f226b8c7ee85502c25c16 ## 向集群中添加node节点 ### 新节点初始化 - 关闭selinux ```shell 临时关闭 [root:~]# setenforce 0 永久关闭 [root:~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config ``` - 关闭防火墙 ```shell [root:~]# systemctl stop firewalld.service [root:~]# systemctl disable firewalld.service ``` - ansible控制主机可以免密登陆新节点 ```shell > # ssh-copy-id -i .ssh/id_rsa.pub 192.168.0.25 ``` <<<<<<< HEAD ### 更改inventory配置信息 ======= ### 更改Inventory配置信息 >>>>>>> 447786f36af945a7690f226b8c7ee85502c25c16 - 更改集群所有主机信息 ```ini # 集群所有主机 [all] 192.168.0.2[0:5] ``` - 更改节点主机信息 ```ini # 节点服务主机 [nodes] 192.168.0.2[2:5] ``` > 如果是不连续主机,则分行单独写完整ip地址,这里面主机192.168.0.25就是新增加的节点主机 ### 执行ansible playbook ```shell root:kubernetes/ # ansible-playbook -i inventory/k8s -e '@vars/main.yaml' k8s.yaml --tags docker --tags node ``` > --tags docker 用来安装docker > > --tags node 用来在节点部署kubelet和kube-proxy ### 查看结果 ```shell > # kubectl get nodes -o wide NAME STATUS INTERNAL-IP k3 Ready 192.168.0.22 k4 Ready 192.168.0.23 k5 Ready 192.168.0.24 k6 Ready 192.168.0.25 ```