【问题标题】:Kubernetes Deployment: Error: failed to create deployment:Kubernetes 部署:错误:未能创建部署:
【发布时间】:2021-02-09 10:05:03
【问题描述】:

环境详情:

Kubernetes version: `v1.20.2`
Master Node: `Bare Metal/Host OS: CentOS 7`
Worker Node: `VM/Host OS: CentOS 7`

我已经安装并配置了 Kubernetes 集群、裸机服务器上的主节点和 windows server 2012 HyperV VM 上的工作节点。主节点和工作节点都具有相同的 Kubernetes 版本(v1.20.2)和 centos7。成功加入worker节点到master,下面是get节点状态。

$ kubectl get nodes

**NAME             STATUS ROLES               AGE  VERSION

k8s-worker-node1 Ready  <none>              2d2h v1.20.2

master-node      Ready control-plane,master 3d4h v1.20.2**

在工作节点上创建部署时,我收到以下错误消息。

在工作节点上,我发出了以下命令。

$ kubectl create deployment nginx-depl --image=nginx

Error message is:
error: failed to create deployment: Post “http://localhost:8080/apis/apps/v1/namespaces/default/deployments?fieldManager=kubectl-create”: dial tcp: lookup localhost on 8.8.8.8:53: no such host

请帮我解决这个问题,因为我无法理解问题所在。

【问题讨论】:

  • 首先尝试从主节点运行kubectl 命令,但如果您仍然遇到此问题,请回答我的问题:您是否修改了您的/etc/hosts 文件? /etc/hosts 文件中有 localhost 条目吗?您可以从有问题的节点运行命令:ping localhost 吗?
  • 嗨,实际上我是从工作节点而不是主节点执行的。是的,我已经在 /etc/hosts 文件中输入了条目。正如用户 skogul1997 所建议的,我在主节点上执行了 kubectl create 部署并创建了部署。顺便说一句,感谢您的评论。

标签: kubernetes kubernetes-pod


【解决方案1】:

您似乎在工作节点上发出kubectl create deployment 命令。这不起作用,因为 kubectl 命令与 kub-apiserver 进行通信以进行集群通信。由于 apiserver 不在工作节点上运行,因此在其上执行命令会引发错误。

作为非root用户主节点上执行相同的kubectl命令,并使用以下附加命令,

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl create deployment nginx-depl --image=nginx

【讨论】:

  • 是的,我在工作节点上这样做了。我在主节点上执行了 kubectl create deployment 并创建了 pod。非常感谢你解决了我的问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
  • 2018-05-21
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 2020-12-02
  • 2019-05-06
相关资源
最近更新 更多