Kubernetes:无法连接到服务器:服务不可用

时间:2021-07-03 02:54:13

标签: kubernetes kubectl

kubernetes master 节点重启后,“kubectl”命令抛出这个错误:

Unable to connect to the server: Service Unavailable

请建议如何启动服务或解决此问题。

# kubectl get nodes
Unable to connect to the server: Service Unavailable
#
# kubectl cluster-info

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Unable to connect to the server: Service Unavailable
#
# echo $KUBECONFIG
/root/.kube/config
#

# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.1.1:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
#

1 个答案:

答案 0 :(得分:0)

您没有指定您的集群正在使用哪个容器驱动程序,所以我假设它是 docker,也假设您使用的是 linux。

很可能您没有运行 kube-apiserver。您必须启动/重新启动它才能解决您的问题。

  1. 检查 docker 守护进程是否正在运行。如果没有,请启动/重新启动它。
    $ systemctl status docker
    
    # systemctl start docker
    
    要么
    # systemctl restart docker
    
  2. 一旦 docker daemon 运行,检查 kube-apiserver 容器是否正在运行
    # docker ps -a
    
    使用 COMMAND kube-apiserver 查找容器。如果它正在运行,你就完成了,如果没有,重新启动它
    # docker restart <container ID>
    

为确保您以后不会遇到同样的问题,configure Docker to start on boot

# systemctl enable docker.service
# systemctl enable containerd.service

如果您的发行版不是用户 systemd,请使用 service 而不是 systemctl

# service <service name> status/stop/start/restart

在上面的命令中,$ 表示以普通用户身份运行,# 表示以 root 身份运行。