1、清理历史版本。将下面的命令保存为文件:uninstallk8s.sh
kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
yum clean all
yum remove kube*
2、执行命令:
sh uninstallk8s.sh
3、yum安装kubelet、kubectl、kubeadm
yum install -y kubelet-1.17.3 kubectl-1.17.3 kubeadm-1.17.3
4、启动kubelet
systemctl enable kubelet && systemctl start kubelet
5、在主节点上初始化admin
kubeadm init --kubernetes-version=v1.17.3 --pod-network-cidr=10.244.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --apiserver-advertise-address=10.213.7.6
6、执行完成后,复制最后的一段输出,在子节点上执行
kubeadm join 10.213.7.6:6443 --token w4hpe5.7k3efrk702dyakzi \
--discovery-token-ca-cert-hash sha256:11b63945106b69bdb2c2ca69faf1f0d3e8aeb7db9cae24dd2e8812582b291bde
7、查看节点状态
kubectl get nodes
NAME STATUS ROLES AGE VERSION
vpt00043s1a05 NotReady master 2m50s v1.17.3
vpt00043s1a11 Ready <none> 2m3s v1.17.3
vpt00043s1a12 Ready <none> 54s v1.17.3
8、发现master节点 notReady,需要配置网络插件
kubectl apply -f kube-flannel.yml
再次尝试:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
vpt00043s1a05 Ready master 7m v1.17.3
vpt00043s1a11 Ready <none> 6m13s v1.17.3
vpt00043s1a12 Ready <none> 5m4s v1.17.3
9、在子节点上执行:
kubectl get pods --all-namespaces
The connection to the server localhost:8080 was refused - did you specify the right host or port?
拷贝mater节点的/etc/kubernetes/admin.conf到node节点上对应的位置即可。
10、启动报端口不在范围
The Service "svc-dot-2" is invalid: spec.ports[0].nodePort: Invalid value: 9002: provided port is not in the valid range. The range of valid ports is 30000-32767
nodeport的默认端口范围是30000~32767
查看配置文件
vi /etc/kubernetes/manifests/kube-apiserver.yaml
在- --service-cluster-ip-range下面增加一行
- --service-node-port-range=18080-18090
重启服务即可
systemctl daemon-reload
systemctl restart kubelet