车库里有个micro server, 内存很大,跑了好几个虚拟机,突发奇想,做个kubernetes cluster, 不想minikube,想做个真正的两节点cluster。 用的是最新1.27 master node 初始化一切正常 [student@control ~]$ kubectl get all -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-flannel pod/kube-flannel-ds-txsfl 1/1 Running 0 23h kube-system pod/coredns-5d78c9869d-tp76m 1/1 Running 0 23h kube-system pod/coredns-5d78c9869d-tpgds 1/1 Running 0 23h kube-system pod/etcd-control 1/1 Running 3 (23h ago) 23h kube-system pod/kube-apiserver-control 1/1 Running 3 (23h ago) 23h kube-system pod/kube-controller-manager-control 1/1 Running 3 (23h ago) 23h kube-system pod/kube-proxy-wfzlk 1/1 Running 0 23h kube-system pod/kube-scheduler-control 1/1 Running 3 (23h ago) 23h NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23h kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 23h NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE kube-flannel daemonset.apps/kube-flannel-ds 1 1 1 1 1 <none> 23h kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 23h NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE kube-system deployment.apps/coredns 2/2 2 2 23h NAMESPACE NAME DESIRED CURRENT READY AGE kube-system replicaset.apps/coredns-5d78c9869d 2 2 2 23h [student@control ~]$ [student@control ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION control Ready control-plane 23h v1.27.1 [student@control ~]$ 但是节点1, join的时候,kubelet初始化失败, 提示failed to parse kubelet flag: unknown flag: --container-runtime -- The start-up result is done. Apr 26 20:58:14 node1 kubelet[82213]: E0426 20:58:14.003156 82213 run.go:74] "command failed" err="failed to parse kubelet flag: unknown flag: --cont> Apr 26 20:58:14 node1 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE Apr 26 20:58:14 node1 systemd[1]: kubelet.service: Failed with result 'exit-code'. 貌似无解啊。 看了service 的定义,--container-runtime 是kubeadm join的时候动态生成的flag, 1.24-1.27 都取消了,目前只接受 --container-runtime=remote作为临时过度, 但是1.27 kubelet join cluster的时候, 用的是 --container-runtime=docker [student@node1 ~]$ systemctl status kubelet ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/kubelet.service.d └─10-kubeadm.conf Active: activating (auto-restart) (Result: exit-code) since Wed 2023-04-26 21:01:28 AEST; 1s ago Docs: https://kubernetes.io/docs/ Process: 82387 ExecStart=/usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=docker --hostname-override=node1 --kubecon> Main PID: 82387 (code=exited, status=1/FAILURE) Apr 26 21:01:28 node1 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE Apr 26 21:01:28 node1 systemd[1]: kubelet.service: Failed with result 'exit-code'. [student@node1 ~]$ 想过downgrade node1的kubelet, 但是1.24-1.27 都是这个熊样,再往前,和master小版本相差太多,我记得好像worker node和master node最多可以相差2个小版本的。 想问问大神们有什么办法跳过这里? 谢谢, 谢谢,谢谢了。 |