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