使用 kubeadm 的 Kubernetes API 服务器健康检查地址

使用 kubeadm 的 Kubernetes API 服务器健康检查地址

我正在尝试使用 kubeadm v1.13.1 在具有两个 IP 地址的机器上启动 kubernetes 集群。我希望 kube-apiserver 进程专门绑定到其中一个。我已经成功地通过将以下配置传递给 来完成此操作kubeadm init,但 apiserver 清单的健康检查部分使用了另一个(默认路由)IP 地址。这导致 kubelet 因健康检查失败而拆除 kube-apiserver 容器。

kind: InitConfiguration
apiVersion: kubeadm.k8s.io/v1beta1
localApiEndpoint:
  advertiseAddress: 192.168.10.10
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
apiServer:
  certSANs:
  - 192.168.10.10
  extraArgs:
    advertise-address: 192.168.10.10
    bind-address: 192.168.10.10
controlPlaneEndpoint: 192.168.10.10:6443

似乎 localApiEndpoint 根本没有被使用,因为我可以在 advertiseAddress 字段中放入任何多余的内容而不会导致错误或警告。拼写错误的 localApiEndpoint 或 advertiseAddress 确实会导致警告,这意味着我没有拼写错误。

如何让 kubeadm 正确生成 apiserver 清单的健康检查部分?

答案1

我将 localAPIEndpoint 拼写错误为 localApiEndpoint。修正拼写后问题就解决了。

有趣的是:

  • localApiEndpoint - 似乎被默默忽略了
  • localAPIEndpoint-正常工作
  • localAPIEndpoints - 引发警告

相关内容