【问题标题】:kubectl running problem in master node while creating Kubernetes cluster using kubespray使用 kubespray 创建 Kubernetes 集群时,主节点中的 kubectl 运行问题
【发布时间】:2020-02-12 02:00:44
【问题描述】:

我正在尝试使用具有单个主节点和 3 个工作节点的 kubespray 创建 Kubernetes 集群。我克隆了 github kubespray 存储库并从我的控制节点运行 ansible playbook 以形成集群。

我正在尝试以下命令:

ansible-playbook \
  -i inventory/sample/hosts.ini \
  cluster.yml \
  --become \
  --ask-become-pass

当我运行命令时,2 个工作节点的最终状态正常。但是对于主节点,它显示失败并出现如下错误:

fatal: [mildevkub020]: FAILED! => {
  "changed": false, 
  "msg": "error running kubectl (/usr/local/bin/kubectl apply 
  --force --filename=/etc/kubernetes/k8s-cluster-critical-pc.yml) 
  command (rc=1), out='', err='error: unable to recognize 
  \"/etc/kubernetes/k8s-cluster-critical-pc.yml\": Get 
  http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: 
  connect: connection refused\n'"
}

我正在为下面的错误添加屏幕截图:

修改

我删除了旧的 kubespray 存储库,并从以下链接克隆了新的,

https://github.com/kubernetes-sigs/kubespray.git

并更新了我的库存。但仍然得到同样的错误。当我为日志运行“journalctl”命令时,我得到如下:

Oct 15 09:56:17 mildevdcr01 kernel: NX (Execute Disable) protection: active
Oct 15 09:56:17 mildevdcr01 kernel: SMBIOS 2.4 present.
Oct 15 09:56:17 mildevdcr01 kernel: DMI: VMware, Inc. VMware Virtual 
Platform/440BX Desktop Reference Platform, BIOS 6.00 09/22/2009
Oct 15 09:56:17 mildevdcr01 kernel: Hypervisor detected: VMware
Oct 15 09:56:17 mildevdcr01 kernel: Kernel/User page tables isolation: disabled
Oct 15 09:56:17 mildevdcr01 kernel: e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
Oct 15 09:56:17 mildevdcr01 kernel: e820: remove [mem 0x000a0000-0x000fffff] usable
Oct 15 09:56:17 mildevdcr01 kernel: AGP: No AGP bridge found
Oct 15 09:56:17 mildevdcr01 kernel: e820: last_pfn = 0x240000 max_arch_pfn = 0x400000000
Oct 15 09:56:17 mildevdcr01 kernel: MTRR default type: uncachable
Oct 15 09:56:17 mildevdcr01 kernel: MTRR fixed ranges enabled:
Oct 15 09:56:17 mildevdcr01 kernel:   00000-9FFFF write-back
Oct 15 09:56:17 mildevdcr01 kernel:   A0000-BFFFF uncachable
Oct 15 09:56:17 mildevdcr01 kernel:   C0000-CBFFF write-protect

错误,

fatal: [mildevkub020]: FAILED! => {"attempts": 10, "changed": false, "msg": "error running kubectl (/usr/local/bin/kubectl apply --force --filename=/etc/kubernetes/node-crb.yml) command (rc=1), out='', err='W1016 06:50:31.365172   22692 loader.go:223] Config not found: etc/kubernetes/admin.conf\nerror: unable to recognize \"/etc/kubernetes/node-crb.yml\": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused\n'"}

【问题讨论】:

标签: kubernetes ansible kubespray


【解决方案1】:

确保您在安装集群之前已关注所有requirements。 尤其是将 ssh 密钥复制到库存中的所有服务器。

上次安装后重置环境:

$ sudo ansible-playbook -i inventory/mycluster/hosts.yml reset.yml -b -v \
  --private-key=~/.ssh/private_key

记得更改cluster configuration 文件并对其进行个性化设置。 您可以更改网络插件 - 默认为 Calico。

然后使用此命令再次运行 ansible playbook:

$ sudo ansible-playbook -i inventory/sample/hosts.ini cluster.yml -b -v \ 
  --private-key=~/.ssh/private_key

尝试复制/sample文件夹并重命名,然后更改k8s-cluster和hosts文件。

检查主机文件: 切记不要修改 k8s-cluster 的子节点,例如将 etcd 组放入 k8s-cluster,除非您确定要这样做。

k8s-cluster ⊂ etcd => kube-node ∩ etcd = etcd

您可以在此处找到示例库存文件:inventory

如果问题仍然存在,请执行命令 journalctl 并检查显示的日志。

编辑:

正如您提供的更多信息。从您的日志看来您必须 将 VM 硬件版本设置为 VMware 设置中可用的最高版本,并在此系统上安装所有可用更新。

【讨论】:

  • 感谢您的回复。我试过这些。但不工作,仍然是同样的错误。我需要在这里继续吗?
  • 是的。谢谢您的答复。我删除了旧的 kubespray 存储库并克隆了新的 kubespray git 存储库。并添加了我的库存。但收到错误“”msg”:“运行 kubectl (/usr/local/bin/kubectl apply --force --filename=/etc/kubernetes/node-crb.yml) 命令 (rc=1) 时出错”。并运行 journalctl 命令。我正在编辑的日志有问题。你能看看吗?
猜你喜欢
  • 2019-10-07
  • 2018-10-19
  • 2019-04-22
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多