kubernetes api服务器在主机重新启动后不会自动启动

kubernetes api服务器在主机重新启动后不会自动启动,kubernetes,ubuntu-18.04,kubectl,kubernetes-apiserver,kube-apiserver,Kubernetes,Ubuntu 18.04,Kubectl,Kubernetes Apiserver,Kube Apiserver,我已经用kubeadm安装了一个小型集群,它工作正常,6443端口已启动。但是在重新启动我的系统之后,集群就不再启动了 我该怎么办 以下是一些信息: 系统控制状态库 ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/syst

我已经用kubeadm安装了一个小型集群,它工作正常,6443端口已启动。但是在重新启动我的系统之后,集群就不再启动了

我该怎么办

以下是一些信息:

系统控制状态库

● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
        └─10-kubeadm.conf
Active: active (running) since Sun 2020-04-05 14:16:44 UTC; 6s ago
  Docs: https://kubernetes.io/docs/home/
  Main PID: 31079 (kubelet)
 Tasks: 20 (limit: 4915)
CGroup: /system.slice/kubelet.service
        └─31079 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet

 k8s.io/kubernetes/pkg/kubelet/kubelet.go:458: Failed to list *v1.Node: Get https://infra01.mydomainname.com:6443/api/v1/nodes?fieldSelector=metadata.name%3Dtest-infra01&limit=500&resourceVersion=0: dial tcp 116.66.187.210:6443: connect: connection refused
kubectl获取节点

The connection to the server infra01.mydomainname.com:6443 was refused - did you specify the right host or port?
kubeadm版本

kubeadm version: &version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate:"2020-02-11T18:12:12Z", GoVersion:"go1.13.6", Compiler:"gc", Platform:"linux/amd64"}
杂志-xeu kubelet

 6   18167 reflector.go:153] k8s.io/kubernetes/pkg/kubelet/kubelet.go:458: 
           Failed to list *v1.Node: Get https://infra01.mydomainname.com
 1   18167 reflector.go:153] 
           k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:46: Failed to list *v1.Pod: Get https://huawei-infra01.s
 4   18167 aws_credentials.go:77] while getting AWS credentials 
           NoCredentialProviders: no valid providers in chain. Deprecated.
           messaging see aws.Config.CredentialsChainVerboseErrors
 6   18167 kuberuntime_manager.go:211] Container runtime docker initialized, 
           version: 19.03.7, apiVersion: 1.40.0
 6   18167 server.go:1113] Started kubelet
 1   18167 kubelet.go:1302] Image garbage collection failed once. Stats 
           initialization may not have completed yet: failed to get imageF
 8   18167 server.go:144] Starting to listen on 0.0.0.0:10250
 4   18167 server.go:778] Starting healthz server failed: listen tcp 
           127.0.0.1:10248: bind: address already in use
 5   18167 fs_resource_analyzer.go:64] Starting FS ResourceAnalyzer
 4   18167 volume_manager.go:265] Starting Kubelet Volume Manager
 1   18167 desired_state_of_world_populator.go:138] Desired state populator 
           starts to run
 3   18167 server.go:384] Adding debug handlers to kubelet server.
 4   18167 server.go:158] listen tcp 0.0.0.0:10250: bind: address already in 
           use
码头工人

docker run hello-world
Hello from Docker!
ubuntu

lsb_release -a
Ubuntu 18.04.2 LTS
交换和kubeconfig

swap is turned off and kubeconfig was correctly exported
注意

可以通过重置集群来修复问题,但这应该是最后的选择

Kubelet未启动,因为端口已在使用,因此无法为api服务器创建pod。 使用以下命令找出哪个进程持有端口10250

root@master admin]# ss -lntp | grep 10250
LISTEN     0      128         :::10250                   :::*                   users:(("kubelet",pid=23373,fd=20))
它将为您提供该进程的PID和该进程的名称。如果持有端口的是不需要的进程,您可以随时终止该进程,该端口将可供kubelet使用

在终止进程后,再次运行上述命令,它不应返回任何值

为了安全起见,运行kubeadm reset,然后运行kubeadm init,它应该会通过

编辑:


使用
snap stop kubelet
完成了在节点上停止kubelet的技巧。

kubelet未启动,因为端口已在使用,因此无法为api服务器创建pod。 使用以下命令找出哪个进程持有端口10250

root@master admin]# ss -lntp | grep 10250
LISTEN     0      128         :::10250                   :::*                   users:(("kubelet",pid=23373,fd=20))
它将为您提供该进程的PID和该进程的名称。如果持有端口的是不需要的进程,您可以随时终止该进程,该端口将可供kubelet使用

在终止进程后,再次运行上述命令,它不应返回任何值

为了安全起见,运行kubeadm reset,然后运行kubeadm init,它应该会通过

编辑:


使用
snap stop kubelet
完成了在节点上停止kubelet的技巧。

我终止了进程,然后重新启动了kubelet,它仍然显示相同的消息。我现在不想重置群集,这应该是最后一个选项。你能试着运行systemctl stop kubelet.service吗?我调用了“systemctl stop kubelet.service”,然后终止了保存10250端口的进程,但几秒钟后,另一个进程/kublet使用了相同的端口。使用“systemctl status kubelet”检查状态,它说的是“不活跃”。因此,如何停止进程持有10250端口?systemctl kill-s SIGKILL kubelet.serviceI终止了进程,然后重新启动了kubelet,它仍然告诉我们相同的消息。我现在不想重置群集,这应该是最后一个选项。你能试着运行systemctl stop kubelet.service吗?我调用了“systemctl stop kubelet.service”,然后终止了保存10250端口的进程,但几秒钟后,另一个进程/kublet使用了相同的端口。使用“systemctl status kubelet”检查状态,它说的是“不活跃”。那么,如何停止进程持有10250端口的systemctl kill-s SIGKILL kubelet.service呢