kubernetes api服务器在主机重新启动后不会自动启动
我已经用kubeadm安装了一个小型集群,它工作正常,6443端口已启动。但是在重新启动我的系统之后,集群就不再启动了 我该怎么办 以下是一些信息: 系统控制状态库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
● 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呢