跳转至

14-K8s自动部署-ansible

系统环境

系统版本:CentOS Linux release 7.9
系统内核:3.10.0-1160.119.1.el7.x86_64
网络环境:要求服务器可以连通网络
规格大小:建议使用不小于1C1G
网卡数量:建议不小于1块网卡
系统盘:  建议使用不小于100GB的空间
数据盘:  建议使用不小于100GB的空间(可选)

挂载数据盘(可选)

如果服务器需要挂载数据盘,可使用以下快捷命令

mkfs.xfs -f /dev/sdb
mkdir -p /data
mount /dev/sdb /data/
 echo "/dev/sdb                                  /data                   xfs     defaults        0 0" >>/etc/fstab ; cat /etc/fstab |grep data

配置YUM仓库

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum repolist

软件包安装

yum -y install ansible vim git

拉取远程代码

cd /root/
git clone https://gitee.com/chriscentos/k8scluster.git

配置主机列表

cd /root/k8scluster

vim hosts

[k8smaster]
10.0.0.111  type=master

[k8snode]
10.0.0.112  type=node
10.0.0.113  type=node


[all:vars]
ansible_ssh_port=22            ## 设置远程服务器端口
ansible_ssh_user=root          ## 设置远程服务器用户
ansible_ssh_pass="bkce123"     ## 设置远程服务器密码

环境检查

检查远程服务器是否可以连通

ansible all -m ping

开始部署

检查安装部署k8s集群

ansible-playbook k8scluster.yml

验证部署

登录第一台机器 master节点 查看集群状态(此步骤 需要等待集群部署完毕后,服务自行就恢复Ready状态 大概需要5分钟)

[root@k8s01 ~]# kubectl get node
NAME                STATUS   ROLES                  AGE     VERSION
master-10-0-0-111   Ready    control-plane,master   3m47s   v1.20.11
node-10-0-0-112     Ready    <none>                 58s     v1.20.11
node-10-0-0-113     Ready    <none>                 63s     v1.20.11

查看所有pod状态

[root@k8s01 ~]# kubectl get pod -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
kube-flannel           kube-flannel-ds-7dcjz                        1/1     Running   0          116s
kube-flannel           kube-flannel-ds-h5jgz                        1/1     Running   0          111s
kube-flannel           kube-flannel-ds-smd9n                        1/1     Running   0          4m25s
kube-system            coredns-5775bfb4dc-26sqg                     1/1     Running   0          4m25s
kube-system            coredns-5775bfb4dc-vsg6q                     1/1     Running   0          4m25s
kube-system            etcd-master-10-0-0-111                       1/1     Running   0          4m32s
kube-system            kube-apiserver-master-10-0-0-111             1/1     Running   0          88s
kube-system            kube-controller-manager-master-10-0-0-111    1/1     Running   1          4m32s
kube-system            kube-proxy-24mvj                             1/1     Running   0          111s
kube-system            kube-proxy-lw8j9                             1/1     Running   0          116s
kube-system            kube-proxy-nk92z                             1/1     Running   0          4m25s
kube-system            kube-scheduler-master-10-0-0-111             1/1     Running   1          4m32s
kube-system            metrics-server-6595f875d6-wf8nv              2/2     Running   0          57s
kubernetes-dashboard   dashboard-metrics-scraper-7b59f7d4df-hmwr8   1/1     Running   0          106s
kubernetes-dashboard   kubernetes-dashboard-5dbf55bd9d-6flnn        1/1     Running   1          106s

查看所有节点的资源使用情况

[root@k8s01 ~]# kubectl top node
NAME                CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master-10-0-0-111   75m          1%     1666Mi          45%       
node-10-0-0-112     15m          0%     1620Mi          44%       
node-10-0-0-113     16m          0%     1506Mi          41% 

关机下电

master节点操作

现在master节点操作 使得节点为维修状态

kubectl drain master-10-0-0-111 --ignore-daemonsets
kubectl drain node-10-0-0-112 --ignore-daemonsets
kubectl drain node-10-0-0-113 --ignore-daemonsets

[root@k8s01 ~]# kubectl get node
NAME                STATUS                     ROLES                  AGE   VERSION
master-10-0-0-111   Ready,SchedulingDisabled   control-plane,master   13m   v1.20.11
node-10-0-0-112     Ready,SchedulingDisabled   <none>                 10m   v1.20.11
node-10-0-0-113     Ready,SchedulingDisabled   <none>                 10m   v1.20.11

node节点操作

依次关机node节点

poweroff

最后关机master节点

poweroff

开机恢复

master节点操作

先开机master节点 启动时先启动master节点,然后等 30秒-1分钟 etcd 起稳,再启动子节点

kubectl uncordon  master-10-0-0-111
kubectl uncordon  node-10-0-0-112
kubectl uncordon  node-10-0-0-113

[root@k8s01 ~]# kubectl get node
NAME                STATUS   ROLES                  AGE   VERSION
master-10-0-0-111   Ready    control-plane,master   18m   v1.20.11
node-10-0-0-112     Ready    <none>                 15m   v1.20.11
node-10-0-0-113     Ready    <none>                 15m   v1.20.11


[root@k8s01 ~]# kubectl get pod -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
kube-flannel           kube-flannel-ds-7dcjz                        1/1     Running   1          15m
kube-flannel           kube-flannel-ds-h5jgz                        1/1     Running   1          15m
kube-flannel           kube-flannel-ds-smd9n                        1/1     Running   1          18m
kube-system            coredns-5775bfb4dc-26sqg                     1/1     Running   1          18m
kube-system            coredns-5775bfb4dc-vsg6q                     1/1     Running   1          18m
kube-system            etcd-master-10-0-0-111                       1/1     Running   1          18m
kube-system            kube-apiserver-master-10-0-0-111             1/1     Running   2          15m
kube-system            kube-controller-manager-master-10-0-0-111    1/1     Running   2          18m
kube-system            kube-proxy-24mvj                             1/1     Running   1          15m
kube-system            kube-proxy-lw8j9                             1/1     Running   1          15m
kube-system            kube-proxy-nk92z                             1/1     Running   1          18m
kube-system            kube-scheduler-master-10-0-0-111             1/1     Running   2          18m
kube-system            metrics-server-6595f875d6-wf8nv              2/2     Running   2          14m
kubernetes-dashboard   dashboard-metrics-scraper-7b59f7d4df-hmwr8   1/1     Running   1          15m
kubernetes-dashboard   kubernetes-dashboard-5dbf55bd9d-6flnn        1/1     Running   2          15m