IT技术之家 网络技术 Kubernetes v1.22/v1.23 企业级高可用集群Ansible自动部署教程

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=1
yum localinstall ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm -y
ntpdate 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=1
wget -O ansible-core-2.12.7-1.el8.x86_64.rpm https://yun.ittel.cn:1443/f/bc254a69e3cf4f119c87/?dl=1
wget -O sshpass-1.09-4.el8.x86_64.rpm https://yun.ittel.cn:1443/f/cabab3975d4d4326a5d0/?dl=1
#安装ansible
wget -O ansible-5.4.0-3.el8.noarch.rpm https://yun.ittel.cn:1443/f/8982f8ca86bd4892b251/?dl=1
yum install -y python38-resolvelib-0.5.4-5.el8.noarch.rpm
yum install -y sshpass-1.09-4.el8.x86_64.rpm 
yum install -y ansible-core-2.12.7-1.el8.x86_64.rpm
yum 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

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

vi group_vars/all.yml

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

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

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

一键部署K8S

架构图

单Master架构

多Master架构

部署命令

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=1
wget -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的dashboard访问地址和访问令牌。

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

K8S

安装到此结束,哎就很棒

查看集群节点

[root@k8s-master1 ansible-install-k8s-master]# kubectl get nodes
NAME          STATUS   ROLES    AGE     VERSION
k8s-master1   Ready    <none>   4m23s   v1.22.4
k8s-master2   Ready    <none>   4m23s   v1.22.4
k8s-node1     Ready    <none>   4m22s   v1.22.4
k8s-node2     Ready    <none>   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命令生成。

 

1、如果您发现本站资源已经失效不能下载请评论留言反馈,谢谢支持
2、友情提醒:部分内容来自网络,如有侵犯您的权益,请速与我联系! 如有转载请注明出处:https://www.ittel.cn/archives/11233.html
guest
0 评论
内联反馈
查看所有评论
联系我们

联系我们

QQ:877196754

在线咨询: QQ交谈

邮箱: 877196754@qq.com

工作时间:周一至周日,8:00-21:00
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部