如何向现有 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/