无法打开kubernetes API服务器[已关闭]

bnl4lu3b  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(3)|浏览(181)

**关闭。**这个问题是not about programming or software development。目前不接受答复。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
4天前关闭。
社区在4天前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
Improve this question

实际发行:

无法启动kubernetes API,因此无法intite kube服务,如:kubectl版本kubect get节点

/home/ubuntu# kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}


   The connection to the server localhost:8080 was refused - did you specify the right host or port  ?

问题背景:

Docker已安装使用下面的方法,安装kube组件:

apt-get update && apt-get install -y kubeadm kubelet kubectl

但是,执行kubeadm init --apiserver-advertise-address=$myip --ignore-preflight-errors=all:

I0408 09:09:07.316109       1 client.go:352] scheme "" not registered, fallback to default scheme
I0408 09:09:07.319904       1 asm_amd64.s:1337] ccResolverWrapper: sending new addresses to cc: [{127.0.0.1:2379 0  <nil>}]
I0408 09:09:07.323010       1 asm_amd64.s:1337] balancerWrapper: got update addr from Notify: [{127.0.0.1:2379 <nil>}]
W0408 09:09:07.332669       1 clientconn.go:1251] grpc: addrConn.createTransport failed to connect to {127.0.0.1:2379 0  <nil>}. Err :connection error: desc = "transport: Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused". Reconnecting...
I0408 09:09:08.325625       1 client.go:352] parsed scheme: ""
I0408 09:09:08.325650       1 client.go:352] scheme "" not registered, fallback to default scheme
I0408 09:09:08.325707       1 asm_amd64.s:1337] ccResolverWrapper: sending new addresses to cc: [{127.0.0.1:2379 0  <nil>}]
I0408 09:09:08.325768       1 asm_amd64.s:1337] balancerWrapper: got update addr from Notify: [{127.0.0.1:2379 <nil>}]
W0408 09:09:08.326158       1 clientconn.go:1251] grpc: addrConn.createTransport failed to connect to {127.0.0.1:2379 0  <nil>}. Err :connection error: desc = "transport: Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused". Reconnecting...

在kube API容器日志中获取上述内容。这是一个新安装。也试过

sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf

预期结果:

kubectl版本:应该只给予版本详细信息,而不提供任何连接问题消息Kubectl get nodes:应给予主节点和状态的详细信息

gev0vcfq

gev0vcfq1#

我花了几个小时在这上面。
我用的是Ubuntu 22。04和Kubernetes 1.24.
API一直在重启,我在kubelet日志中没有发现:

service kubelet status 
journalctl -xeu kubelet

我检查了API日志:

/var/log/containers/kube-apiserver-XXXX

我看到了同样的错误:
grpc:addrConn.createTransport无法连接到{127。0.0.1:2379

解决方案:

containerd config default | tee /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml  
service containerd restart
service kubelet restart

说明:

问题是Ubuntu 21引入的cgroupv2。04及以上版本(Debian自版本11起)。
您需要通过配置文件(/etc/containerd/config.toml)告诉containerd使用systemdCgroup驱动程序。
我使用containerd提供的默认配置文件(containerd config default | sudo tee /etc/containerd/config.toml)。
不要在“io”中启用systemd_cgroup。containerd.grpc.v1.cri”部分,因为插件似乎不再支持此功能(服务状态将打印以下日志:
“未能加载插件io。containerd.grpc.v1.cri”error=“invalid pluginconfig:systemd_cgroup仅适用于运行时io。containerd.runtime.v1.linux”)
您需要在节中启用SystemdCgroup(=true)标志:

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]"

重新启动containerd-servicekubelet-service,或者重新启动您的机器,然后它应该可以正常工作。
图片来源:Dennis from Slack

ryoqjall

ryoqjall2#

下面的实际上已经解决了我的问题,不确定这是否是实际发现:

apt-get update && \
 apt-get install -y apt-transport-https add-apt-repository "deb [arch=amd64] download.docker.com/linux/ubuntu bionic stable" curl -s packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - echo "deb apt.kubernetes.io kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list apt update && \
 apt install -qy docker.io apt-get update && \
 apt-get install -y kubeadm kubelet kubectl kubernetes-cni kubeadm init --ignore-preflight-errors=all –

安装Dockerce作为kubernetes安装的一部分。现在我尝试了www.example www.example.com 。它现在像预期的那样工作。

voj3qocg

voj3qocg3#

您正在使用云示例,请使用示例内网IP运行

kubeadm init

相关问题