如何向现有 Kubernetes 1.14 集群的控制平面添加第二个主节点?
available documentation 显然假设两个主节点(在堆叠控制平面和 etcd 节点中)是同时创建的。不久前我已经用 kubeadm init --pod-network-cidr=10.244.0.0/16 创建了我的第一个 master ,所以我没有本文档中提到的 kubeadm-config.yaml

我尝试了以下方法:

kubeadm join ... --token ... --discovery-token-ca-cert-hash ... \
  --experimental-control-plane --certificate-key ...
kubeadm join ... --token ... --discovery-token-ca-cert-hash ... 部分是在第一个 master 上运行 kubeadm token create --print-join-command 时的建议;它通常用于添加另一个 worker 。 --experimental-control-plane 用于添加另一个主人。 --certificate-key ... 中的 key 是通过在第一个 master 上运行 kubeadm init phase upload-certs --experimental-upload-certs 所建议的。

我收到以下错误:
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver.
The recommended driver is "systemd". Please follow the guide at
https://kubernetes.io/docs/setup/cri/
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
error execution phase preflight:
One or more conditions for hosting a new control plane instance is not satisfied.

unable to add a new control plane instance a cluster that doesn't have a stable
controlPlaneEndpoint address

Please ensure that:
* The cluster has a stable controlPlaneEndpoint address.
* The certificates that must be shared among control plane instances are provided.

我的集群没有稳定的 controlPlaneEndpoint 地址意味着什么?这可能与 controlPlaneEndpoint 当前为空字符串的 kubectl -n kube-system get configmap kubeadm-config -o yaml 输出中的 ojit_code 有关吗?我怎样才能克服这种情况?

最佳答案

根据 HA - Create load balancer for kube-apiserver :



要设置 ControlPlaneEndpoint 配置,您应该使用 kubeadm--config 标志。看看 here 的配置文件示例:

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: stable
controlPlaneEndpoint: "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT"

Kubeadm 配置文件示例分散在许多文档部分。我建议您阅读 /apis/kubeadm/v1beta1 GoDoc,其中包含多个 kubeadm 配置类型使用的 YAML 文件的完整示例。

如果您要配置自托管控制平面,请考虑使用 kubeadm alpha selfhosting 功能:



此 PR ( #59371 ) 可能会阐明使用自托管配置的差异。

关于kubernetes - 将 master 添加到 Kubernetes 集群 : cluster doesn't have a stable controlPlaneEndpoint address,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55867216/

10-15 20:27