Linux (五) 虚拟机 CentOS8 搭建K8S详细流程
Linux (五) 虚拟机 CentOS8 搭建K8S详细流程支持环境说明 本期文章目的是在Centos8.5的虚机搭建K8S集群。需要准备环境 VMware ,CentOS系统 ,安装Docker。搭建流程1设置虚拟机内存与CPU 虚机设置为2个CPU和2g内存以上关闭防火墙systemctl disable firewalldsystemctl stop firewalld临时
Linux (五) 虚拟机 CentOS8 搭建K8S详细流程
支持环境说明
本期文章目的是在Centos8.5的虚机搭建K8S集群。需要准备环境 VMware ,CentOS系统 ,已安装Docker。
搭建流程
如果下1-8的操作步骤是需要在所有服务器执行的。 9-10仅在Master执行。
11是Node节点加入集群。
1.设置虚拟机内存与CPU
虚机设置为2个CPU和2g内存以上
2.关闭防火墙
sudo systemctl disable firewalld
sudo systemctl stop firewalld
执行结果如下:
3.关闭selinux
# 0 设置为permissive模式 ,1 设置为enforcing模式
sudo setenforce 0
sudo sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
执行结果如下:
4.禁用交换分区,并永久禁用
# -a 将/etc/fstab文件中所有设置为swap的设备关闭
sudo swapoff -a
# 打开/etc/fstab注释掉swap那一行
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
执行结果如下:
5.修改内核参数
# 新增k8s.conf文件,并写入内核参数
sudo bash -c 'cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF'
# 手动加载所有的配置文件信息
sudo sysctl --system
执行结果如下:
6.配置k8s阿里云源
# 创建kubernetes.repo文件,配置阿里源
sudo bash -c 'cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF'
执行结果如下:
7.安装kubeadm、kubectl、kubelet
# 默认安装最近版本
yum install -y kubectl kubeadm kubelet
执行结果如下:
安装版本为 v1.23.5
8.启动kubelet服务
sudo systemctl enable kubelet && sudo systemctl start kubelet
执行结果如下:
9.初始化k8s服务(仅Mater执行)
# kubernetes-version参数修改为安装的版本号 ,advertise-address 改为Master节点IP
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.5 --apiserver-advertise-address 192.168.2.6 --pod-network-cidr=10.244.0.0/16 --token-ttl 0
拉镜像的过程需要等待一分钟
最终启动服务后返回如下:
10.执行K8S提示的命令(仅Master执行)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
完成服务初始化后,可通过命令查看当前Nodes
# 查询当前节点信息
sudo kubectl get nodes -o wide
可以通过一下命令获取加入集群命令
kubeadm token create --print-join-command
11.节点加入集群(仅Node执行)
在Node服务器上执行1-8的流程后进入下面流程
通过在Master节点获取的命令加入集群
kubeadm join 192.168.**.**:6443 --token ygfoo3.ii128zut7evdn6wr --discovery-token-ca-cert-hash sha256:6549ca3d5d4b2599f85f1bc120a8e5a325b66545d2e47ca8bd06c27699f1aa
查询当前Nodes列表
现在Node状态NotReady,在Master机执行如下命令:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
服务重启后会存在一定延时,之后进入Ready
12.操作过程中异常问题
12.1 docker相关问题
如果有相关异常问题可检查docker文件
vim /etc/docker/daemon.json
{ "exec-opts": ["native.cgroupdriver=systemd"] }
:wq
重启docker
sudo systemctl restart docker
如果初始化K8S过程出现问题,可以通过如下命令,重新配置
sudo kubeadm reset
小结
K8S的搭建流程有挺多细节需要补充说明,先把自己部署过程中的完整流程整理出来,有什么需要优化的地方欢迎大家留言。
更多推荐
所有评论(0)