重启系统后Kubernetes kube-apiserver服务未启动

时间:2018-07-19 08:08:49

标签: kubernetes kubectl

我有kubeadm的安装群集,它的工作正常,并且6443端口已启动。但是重新启动后,我的系统群集无法启动。

我该怎么办?

请找到日志

node@node1:~$ sudo kubeadm init
[init] using Kubernetes version: v1.11.1
......

node@node1:~$ 
node@node1:~$  mkdir -p $HOME/.kube
node@node1:~$  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
node@node1:~$  sudo chown $(id -u):$(id -g) $HOME/.kube/config
node@node1:~$ 
node@node1:~$ 
node@node1:~$ kubectl get nodes
NAME      STATUS     ROLES     AGE       VERSION
node1     NotReady   master    4m        v1.11.1
node@node1:~$ ps -ef | grep 6443
root      5542  5503  8 13:17 ?        00:00:17 kube-apiserver --authorization-mode=Node,RBAC --advertise-address=172.16.2.171 --allow-privileged=true --client-ca-file=/etc/kubernetes/pki/ca.crt --disable-admission-plugins=PersistentVolumeLabel --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
node      6792  4426  0 13:20 pts/1    00:00:00 grep --color=auto 6443
node@node1:~$ 
node@node1:~$ 
node@node1:~$ 
node@node1:~$ sudo reboot
Connection to node1 closed by remote host.
Connection to node1 closed.
abc@xyz:~$ ssh node@node1
node@node1's password: 
node@node1:~$ kubectl get nodes
No resources found.
The connection to the server 172.16.2.171:6443 was refused - did you specify the right host or port?`enter code here`
node@node1:~$ 
node@node1:~$ ps -ef | grep 6443
node      7083  1920  0 13:36 pts/0    00:00:00 grep --color=auto 6443

2 个答案:

答案 0 :(得分:0)

您的kubelet服务未运行。尝试查看其日志:

$ journalctl -u kubelet

要启动该服务:

$ sudo systemctl start kubelet

如果要使kubelet在引导期间运行,则需要对其进行禁止。首先检查kubelet服务状态:

$ systemctl status kubelet

会有一行:

 ...
 Loaded: loaded (/etc/systemd/system/kubelet.service; (enabled|disabled)
 ...

“已禁用”条目表示您应该启用它:

$ sudo systemctl enable kubelet

但是,很有可能已经启用了该功能,因为这是由“系统供应商预设”完成的,因此您必须调试kubelet掉落的原因。您可以在此处发布日志输出,stackoverflow的社区将为您提供帮助。

答案 1 :(得分:0)

我认为您没有从交付给您的软件包中安装Kubernetes Linux发行版-据我所知,在Ubuntu上进行安装可以提供服务 取决于已安装的Kubernetes,以避免出现您所描述的情况。

您面临的问题是缺少对通过systemd或其他运行时脚本启动kubelet的支持。 Systemd是系统和服务管理器。 Kubernetes代表他们开始 在系统启动时。

您可以尝试通过复制/创建所需的systemd配置来修复安装 kubernetes.service到安装/etc/systemd目录。

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStart=/usr/bin/kubelet \
  --api-servers=http://127.0.0.1:8080 \
  --allow-privileged=true \
  --config=/etc/kubernetes/manifests \
  --v=2
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

并使用systemctl启用服务:

sudo systemctl enable kubelet

journalctl日志可能会提供有关Kubernetes问题的信息 服务,如果它们仍然存在。

sudo journalctl -xeu kubelet