# ansible-inst-k8s-binary **Repository Path**: yaccbison/ansible-inst-k8s-binary ## Basic Information - **Project Name**: ansible-inst-k8s-binary - **Description**: k8s 二进制安装 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-01-17 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用Ansible部署二进制Kubernetes高可用集群 ## 适用操作系统环境 目前只在Almalinux中测试通过 ## 软件版本 etcd 3.5.2 docker 20.10.13 kubernetes 1.23.5 ## 参考资料 [手动安装高可用k8s集群(二进制)v1.23.4版本](https://blog.csdn.net/weixin_50908696/article/details/123031783) [安装 harbor v2.3.4](https://www.cnblogs.com/leffss/p/15621165.html) ## 安装k8s集群步骤 ### 修改配置 1. 工程内的hosts文件后续要提供给ansible使用 ```ini #在安装前需要配置目录中hosts文件。 #后续这个文件会被连接到/etc/ansible/hosts, #其中group名及相关参数名不能修改,否则无法运行。 #group中的成员数量及属性值,可根据实际情况自由设置。 #集群中master节点配置。master节点数量,高可用一般为三个。 #keepalive前缀的两个参数,用于配置keepalive。 [k8smaster] 192.168.3.200 hostname=k8s-master-0 keepalive_state=MASTER keepalive_priority=120 192.168.3.201 hostname=k8s-master-1 keepalive_state=BACKUP keepalive_priority=110 192.168.3.202 hostname=k8s-master-2 keepalive_state=BACKUP keepalive_priority=100 #集群中node节点 [k8snode] 192.168.3.203 hostname=k8s-node-1 192.168.3.204 hostname=k8s-node-2 [allnode:children] k8smaster k8snode #etcd节点 [etcd] 192.168.3.200 etcdname=etcd00 192.168.3.201 etcdname=etcd01 192.168.3.202 etcdname=etcd02 ``` 2. 修改工程全局配置文件,group_vars/all.yml 关键参数 1. VIP:keepalive使用的VIP,与本地网络ip为同一网段,就是配置完成后在集群内的所有机器都能ping通。 2. NETWORK_INTERFACE_NAMES:物理网卡名。keepalived及calico,可搜索功能内文件找到相关使用位置。 ```yaml DOCKER_ROOT: /home/docker/docker_root DOCKER_MIRRORS: https://mirror.baidubce.com K8S_ALL_EXE_FILE_PATH: /usr/local/bin CERTIFICATE_STORE_PATH: /etc/kubernetes/certificate_store PKI_PATH: /etc/kubernetes/pki KUBERNETES_CONFIG_PATH: /etc/kubernetes KUBECTL_CONFIG_FILE: kube.conf CA_SELF_SIGNED_CERTIFICATE: ca.pem CA_PRIVATE_KEY: ca-key.pem ETCD_SELF_SIGNED_CERTIFICATE: etcd.pem ETCD_PRIVATE_KEY: etcd-key.pem ETCD_DATA_DIR: /var/lib/etcd ETCD_CONF_PATH: /etc/etcd ETCD_CONF_FILE: etcd.conf VIP: 192.168.3.254 CLUSTERIP: 10.255.0.1 CORDNSCLUSTERIP: 10.255.0.2 SERVICECLUSTERIPRANGE: 10.255.0.0/16 CLUSTERCIDR: 10.0.0.0/16 NETWORK_INTERFACE_NAMES: enp0s3 HAPROXY_ADMIN_PORT: 9999 HAPROXY_CONSOLE_USER: admin HAPROXY_CONSOLE_PASSWD: welcome1 HAPROXY_KUB_API_PORT: 8443 KEEPALIVE_ROUTE_ID: keepalived_hap KEEPALIVE_VIRTUAL_ROUTER_ID: 68 KUB_API_SERVER_PORT: 6443 KUB_API_SERVER_TOKEN_AUTH_FILE: token.csv ``` ### 执行安装 ```shell #配置Ansible环境,并根据/etc/ansible/hosts中的allnode, #配置集群中所有节点的免密登录 cd alma-inst-k8s-binary sh do.sh #安装所有环境所需要的软件包,及ipvs等k8s环境必要设置 ansible-playbook set-os.yml #创建k8s环境中所需要的所有证书 ansible-playbook create_ca.yml #安装etcd ansible-playbook inst-etcd.yml etcd_check.sh #安装haproxy及keepalive ansible-playbook inst-haproxy-keepalive.yml http://192.168.3.180:9999/status #安装master节点 ansible-playbook inst-k8s-master.yml export KUBECONFIG=/etc/kubernetes/kube.conf kubectl get cs #安装node节点使用的docker环境 ansible-playbook inst-docker.yml --tags docker #安装node节点 sh inst-k8s-node.sh kubectl get nodes #安装calico 及 coredns sh inst-calico-coredns.sh kubectl get all -n kube-system