kubernetes集群部署

文章 2023-03-16

一、环境准备
1.准备三台节点

 - 10.0.0.231  master
 - 10.0.0.232  worker
 - 10.0.0.233  worker

2.关闭swap分区
--2.1临时关闭:sudo swapoff -a && sysctl -w vm.swappiness=0
--2.2写入文件,永久关闭:sudo sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab

3.确保各个节点MAC地址或product_uuid唯一
sudo ifconfig eth0 | grep ether | awk '{print $2}'
sudo cat /sys/class/dmi/id/product_uuid

4.各节点ping测试检查节点是否可以访问外网

5.允许iptable检查桥接流量

sudo cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

sudo cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system

6.禁用防火墙和SElinux
sudo systemctl disable --now firewalld-防火墙
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config -SElinux

7.配置Hosts解析
sudo cat >> /etc/hosts <<'EOF'
10.0.0.231 master231
10.0.0.232 worker232
10.0.0.233 worker233
EOF

8.所有节点修改cgroup的管理进程为systemd
[root@master231 ~]# sudo cat /etc/docker/daemon.json
{
...
"exec-opts": ["native.cgroupdriver=systemd"]
}
[root@master231 ~]#
[root@master231 ~]# sudo systemctl restart docker
[root@master231 ~]#
[root@master231 ~]# sudo docker info | grep "Cgroup Driver"
Cgroup Driver: systemd

二、所有节点安装kubeadm,kubelet,kubectl
1.配置软件源
sudo cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

2.安装kubeadm,kubelet,kubectl软件包
sudo yum -y install kubeadm-1.23.17-0 kubelet-1.23.17-0 kubectl-1.23.17-0

3.启动kubelet服务(若服务启动失败时正常现象,其会自动重启,因为缺失配置文件,初始化集群后恢复!)
sudo systemctl enable --now kubelet
sudo systemctl status kubelet

三、使用kubeadm初始化master节点
1.sudo kubeadm init --kubernetes-version=v1.23.17 --image-repository
registry.aliyuncs.com/google_containers --pod-network-cidr=10.100.0.0/16 --
servicecidr=10.200.0.0/16 --service-dns-domain=oldboyedu.com

2.相关参数说明:

--kubernetes-version:
    指定K8S master组件的版本号。
    
--image-repository:
    指定下载k8s master组件的镜像仓库地址。
    
--pod-network-cidr:
    指定Pod的网段地址。
    
--service-cidr:
    指定SVC的网段

--service-dns-domain:
    指定service的域名。若不指定,默认为"cluster.local"。

3.拷贝授权文件,用于管理K8S集群
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

四、初始化网络组件
1.下载flannel资源清单文件
sudo wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

2.修改flannel的配置文件
[root@k8s231.oldboyedu.com ~]# sudo grep 16 kube-flannel.yml
"Network": "10.100.0.0/16",

3.部署flannel组件
[root@k8s231.oldboyedu.com ~]# sudo kubectl apply -f kube-flannel.yml

4.验证flannel组件是否正常工作,验证k8s集群是否正常
sudo kubectl get pods -A -o wide | grep flannel
sudo kubectl get nodes

五、如果是这样就代表成功了哟!!!
[root@master231 ~]# sudo kubectl get pods -A -o wide | grep flannel
kube-flannel kube-flannel-ds-7fm56 1/1 Running 0 4m58s
10.0.0.231 master231 <none> <none>
kube-flannel kube-flannel-ds-8ks8v 1/1 Running 0 4m58s
10.0.0.232 worker232 <none> <none>
kube-flannel kube-flannel-ds-pvzwr 1/1 Running 0 4m58s
10.0.0.233 worker233 <none> <none>

[root@master231 ~]# sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
master231 Ready control-plane,master 18m v1.23.17
worker232 Ready <none> 11m v1.23.17
worker233 Ready <none> 11m v1.23.17

知识共享署名声明
本文由 Online_ 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

召唤看板娘