Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

目录

环境准备

操作系统要求:CentOS7.x_x64或者CentOS8.x_x64

规划:

IP 主机名 角色
10.8.8.1 k8s-master1 K8S集群主节点1,Master和etcd
10.8.8.2 k8s-master2 K8S集群主节点2,Master和etcd
10.8.8.3 k8s-node1 K8S集群工作节点1,etcd
10.8.8.5 k8s-node2 K8S集群工作节点2
10.8.8.6 / HA VIP VIP,在k8s-master1和k8s-master2主机实现

配置时间同步

#更换yum(centos8官方源已下线,知识兔建议切换centos-vault源,)rm -rvf /etc/yum.repos.d/*#下载新的wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo#生成缓存yum makecache# 时间同步 wget -O ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm https://yun.ittel.cn:1443/f/c912e39829f841f4852a/?dl=1yum localinstall ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm -yntpdate ntp3.aliyun.com

找一台服务器安装Ansible

yum install epel-release -y#下载ansible依赖,默认源没有以下包,已经下载好,直接镜像获取就行wget -O python38-resolvelib-0.5.4-5.el8.noarch.rpm https://yun.ittel.cn:1443/f/b2bae499d95f48069e3e/?dl=1wget -O ansible-core-2.12.7-1.el8.x86_64.rpm https://yun.ittel.cn:1443/f/bc254a69e3cf4f119c87/?dl=1wget -O sshpass-1.09-4.el8.x86_64.rpm https://yun.ittel.cn:1443/f/cabab3975d4d4326a5d0/?dl=1#安装ansiblewget -O ansible-5.4.0-3.el8.noarch.rpm https://yun.ittel.cn:1443/f/8982f8ca86bd4892b251/?dl=1yum install -y python38-resolvelib-0.5.4-5.el8.noarch.rpmyum install -y sshpass-1.09-4.el8.x86_64.rpm yum install -y ansible-core-2.12.7-1.el8.x86_64.rpmyum install -y ansible

下载所需二进制文件和Ansible脚本

下载Ansible部署文件:

wget -O ansible-install-k8s.zip https://yun.ittel.cn:1443/f/c95c2b00e2594293a8e5/?dl=1 && unzip ansible-install-k8s.zip#切换到脚本目录cd ansible-install-k8s-maste

下载准备好软件包(包含所有涉及文件和镜像,比较大),并解压到/root目录:

cd /root/ && wget -O binary_pkg.tar.gz https://yun.ittel.cn:1443/f/c786ba9fc2cf4880b3c6/?dl=1 && tar zxvf binary_pkg.tar.gz

修改Ansible文件

修改hosts文件,知识兔根据规划修改对应IP和名称。

#切换到脚本目录cd /root/ansible-install-k8s-master/vi hosts

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

修改group_vars/all.yml文件,修改软件包目录和证书可信任IP。

vi group_vars/all.yml

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

#所有IP对应修改vi ./roles/tls/templates/k8s/server-csr.json.j2

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

vi ./roles/addons/files/calico.yaml

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

vi ./roles/addons/files/coredns.yaml

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

一键部署K8S

架构图

单Master架构Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

多Master架构

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

部署命令

Centos 8.X 执行,Centos 8使用的keeplived和nginx版本和Centos7不一致,适配配置文件

#centos 7不需要做wget -O ./roles/ha/tasks/main.yml https://yun.ittel.cn:1443/f/bf09dd07aadd41868987/?dl=1wget -O ./roles/ha/templates/nginx.conf.j2 https://yun.ittel.cn:1443/f/008d926a9682492a88db/?dl=1

单Master版:

cd ansible-install-k8s-master/ansible-playbook -i hosts single-master-deploy.yml -uroot -k

多Master版:

cd ansible-install-k8s-master/ansible-playbook -i hosts multi-master-deploy.yml -uroot -k

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

耐心等待,最后会提示kubernetes的dashboard访问地址和访问令牌。

Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

后面就可以登录dashboard进行管理K8S

K8S

安装到此结束,哎就很棒

查看集群节点

[root@k8s-master1 ansible-install-k8s-master]# kubectl get nodesNAME   STATUS ROLES AGE  VERSIONk8s-master1 Ready  4m23s v1.22.4k8s-master2 Ready  4m23s v1.22.4k8s-node1  Ready  4m22s v1.22.4k8s-node2  Ready  4m23s v1.22.4

故障排查

部署控制

如果知识兔安装某个阶段失败,可针对性测试.

例如:只运行部署插件

ansible-playbook -i hosts multi-master-deploy.yml -uroot -k --tags ha

节点扩容

1)修改hosts,添加新节点ip

 vi hosts...[newnode]192.168.31.75 node_name=k8s-node3

2)执行部署

ansible-playbook -i hosts add-node.yml -uroot -k

所有HTTPS证书存放路径

部署产生的证书都会存放到目录“ansible-install-k8s-master/ssl”,一定要保存好,后面还会用到~

如果知识兔要续签或者重新签发证书,你可以在里面修改证书,重新用cfssl命令生成。

 

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

评论