总结K8s集群部署的方法原理
本次作业环境:4台虚拟机,使用kubeadm部署K8s集群。
master 172.25.254.100
node1 172.25.254.10
node2 172.25.254.20
私有镜像仓库 reg.timinglee.org,k8s域名解析指向172.25.254.254
一,关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
二,配置内核网络参数

三,安装前先删除红帽系统自带的盗版docker

四,配置 k8s 阿里云 yum 源,所有节点

五,安装docker ce(用国内镜像下载更快)

启动 docker、containerd,设置开机自启
systemctl enable --now docker
systemctl enable --now containerd
六,文件配置


七,接下来配置node1,node2
[root@node1 ~]# tar xvf cri-dockerd-0.4.4.amd64.tgz
cri-dockerd/
cri-dockerd/cri-dockerd
[root@node1 ~]# cd cri-dockerd/
[root@node1 cri-dockerd]# mv cri-dockerd /usr/local/bin/
mv:是否覆盖'/usr/local/bin/cri-dockerd'? y
[root@node1 cri-dockerd]# chmod +x /usr/local/bin/cri-dockerd
[root@node1 cri-dockerd]# cat > /etc/systemd/system/cri-docker.service <<EOF
[Unit]
Description=CRI Docker daemon for Kubernetes
After=docker.service
Requires=docker.service
[Service]
ExecStart=/usr/local/bin/cri-dockerd --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
[root@node1 cri-dockerd]# cat > /etc/systemd/system/cri-docker.socket <<EOF
[Unit]
Description=CRI Docker Socket for Kubernetes
PartOf=cri-docker.service
[Socket]
ListenStream=/var/run/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF
[root@node1 cri-dockerd]# systemctl daemon-reload
[root@node1 cri-dockerd]# systemctl enable cri-docker --now
[root@node1 cri-dockerd]# cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.35/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.35/rpm/repodata/repomd.xml.key
EOF
[root@node1 cri-dockerd]# dnf install -y kubeadm-1.35.7 kubelet-1.35.7
[root@node1 cri-dockerd]# systemctl enable kubelet --now
[root@node1 cri-dockerd]# docker login reg.timinglee.org -u admin -p lee
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
[root@node1 cri-dockerd]# kubeadm join 172.25.254.100:6443 --token xxxxx --^Cscovery-token-ca-cert-hash sha256:xxxxx
[root@node1 cri-dockerd]# kubeadm join 172.25.254.100:6443 --token <to^Cn> \
--discovery-token-ca-cert-hash sha256:<hash> \
--cri-socket unix:///var/run/cri-dockerd.sock
[root@node1 cri-dockerd]# kubeadm join 172.25.254.100:6443 --token zppv87.t4kx9ugaviz7faqb \
--discovery-token-ca-cert-hash sha256:5dc6a185e6e36825889178763d5453e53c082e77374968aa0edcb5003b6a7976 \
--cri-socket unix:///var/run/cri-dockerd.sock
[preflight] Running pre-flight checks
[WARNING SystemVerification]: kernel release 5.14.0-687.5.3.el9_8.x86_64 is unsupported. Supported LTS versions from the 5.x series are 5.4, 5.10 and 5.15. Any 6.x version is also supported. For cgroups v2 support, the recommended version is 5.10 or newer
[preflight] Some fatal errors occurred:
[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
error: error execution phase preflight: preflight checks failed
To see the stack trace of this error execute with --v=5 or higher
[root@node1 cri-dockerd]# kubeadm reset --cri-socket unix:///var/run/cri-dockerd.sock
[root@node1 cri-dockerd]# rm -rf /etc/kubernetes /var/lib/kubelet
[root@node1 cri-dockerd]# netstat -tlnp | grep 10250
[root@node1 cri-dockerd]# systemctl restart kubelet
[root@node1 cri-dockerd]# kubeadm join 172.25.254.100:6443 --token zppv87.t4kx9ugaviz7faqb \
--discovery-token-ca-cert-hash sha256:5dc6a185e6e36825889178763d5453e53c082e77374968aa0edcb5003b6a7976 \
--cri-socket unix:///var/run/cri-dockerd.sock
[root@node1 cri-dockerd]# docker pull reg.timinglee.org/k8s/kube-proxy:v1.35.7
v1.35.7: Pulling from k8s/kube-proxy
a6c8b26f7345: Pull complete
3d17fab17123: Pull complete
Digest: sha256:c77d584d0a5e075f33f2a72a7f45890ed450a0b6ebab86271671a7692825157b
Status: Downloaded newer image for reg.timinglee.org/k8s/kube-proxy:v1.35.7
reg.timinglee.org/k8s/kube-proxy:v1.35.7
node2配置方法一样
八,查看 Kubernetes 集群所有节点信息
[root@master cri-dockerd]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane 16m v1.35.7
node1 Ready <none> 5m33s v1.35.7
node2 Ready <none> 5s v1.35.7

更多推荐

所有评论(0)