在其他IP上设置Kubernetes主服务器

问题描述

我试图在除分配给认接口的IP之外的IP上设置Kubernetes主服务器。这些是我对kubeadm-config.yml所做的更改:

---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
controlPlaneEndpoint: x.x.x.x
apiServer:
  extraArgs:
    advertise-address: x.x.x.x
  certSANs:
    - x.x.x.x
etcd:
  local:
    dataDir: /var/lib/etcd
    extraArgs:
      advertise-client-urls: https://x.x.x.x:2379
      initial-advertise-peer-urls: https://x.x.x.x:2380
      initial-cluster: my-hostname=https://x.x.x.x:2380
      listen-client-urls: https://127.0.0.1:2379,https://x.x.x.x:2379
      listen-peer-urls: https://x.x.x.x:2380
      initial-cluster-state: new
    serverCertSANs:
      - x.x.x.x
    peerCertSANs:
      - x.x.x.x

其中x.x.x.x是非认IP。 除了api服务器的活动性探针外,其他所有东西似乎都设置正确。在/etc/kubernetes/manifests/kube-apiserver.yaml,我仍然看到

livenessProbe:
  failureThreshold: 8
  httpGet:
    host: y.y.y.y
    path: /healthz
    port: 6443
    scheme: HTTPS

y.y.y.y是旧IP。

有人知道我需要添加kubeadm-config.yml上的什么键来设置此权限吗?

山姆

解决方法

再现您的配置,我发现InitConfiguration的{​​{1}}部分是必需的。

以下kubeadm-config部分应指示kubeadm-config.yaml根据您的需要配置kubeadm

kube-apiserver

有关详细信息,请阅读相关的GoDoc页面: