前提:
准备三台机器设置固定ip
主节点:192.168.129.135
从节点1:192.168.129.136
从节点3:192.168.129.137
基本环境搭建
配置节点
三台机都设置主节点域名映射,加上192.168.129.135 cluster-endpoint
sudo vi /etc/hosts

这样后面全部节点就可以直接通过域名连接主节点

主节点启动(不同版本操作有可能有差异,不行就换别人的启动方式):
启动
kubeadm init \
--apiserver-advertise-address=192.168.129.135 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.28.15 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
--ignore-preflight-errors=all

启动成功后上面有参考的接入准备命令和从节点接入命令
主节点接入准备
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

添加网络组件(选一种)
方式1(需要外网,可以找一找国内的配置文件地址替换)
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml -O
kubectl apply -f calico.yaml

方式2
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml -O
kubectl create -f custom-resources.yaml
(非必须)重启(重启后上面的流程要重新来一遍,从节点接入的key也会变化)
清理旧集群
sudo kubeadm reset -f
清理残留配置和网络状态:
sudo rm -rf /etc/kubernetes /var/lib/kubelet /var/lib/cni /etc/cni/net.d
sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F
检查节点
kubectl get nodes

检查pod容器
kubectl get pods -A

从节点接入:
加入集群(这命令来自主节点启动成功后打印出来的信息)
kubeadm join 192.168.129.135:6443 --token 7hu7i6.nizlnla03wkhoyi7 \
--discovery-token-ca-cert-hash sha256:e6054efaa154392ec5c3c8f416a64c9d59b4f3ecc64d2cd4afe0c71d11f6c790

主节点查看是否接入成功
kubectl get nodes

(非必须)重新接入新主节点集群
重置
kubeadm reset -f

清理残留
rm -rf /etc/cni/net.d /var/lib/kubelet /var/lib/etcd
iptables -F && iptables -t nat -F && iptables -t mangle -F

重新加入集群
kubeadm join 192.168.129.135:6443 --token 7hu7i6.nizlnla03wkhoyi7 \
--discovery-token-ca-cert-hash sha256:e6054efaa154392ec5c3c8f416a64c9d59b4f3ecc64d2cd4afe0c71d11f6c790
