# k8scluster **Repository Path**: chriscentos/k8scluster ## Basic Information - **Project Name**: k8scluster - **Description**: 使用ansible自动化部署k8s集群 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-24 - **Last Updated**: 2025-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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 58s v1.20.11 node-10-0-0-113 Ready 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 10m v1.20.11 node-10-0-0-113 Ready,SchedulingDisabled 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 15m v1.20.11 node-10-0-0-113 Ready 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 ```