在不同的 IP 上设置 Kubernetes master
Setting up a Kubernetes master on a different IP
我正在尝试在分配给默认接口的 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-server 的 liveness 探测器外,一切似乎都设置正确。在 /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
中添加什么密钥才能设置正确?
山姆
重现您的配置,我发现 kubeadm-config
的 InitConfiguration
部分是必需的。
以下 kubeadm-config.yaml
部分应该指示 kubeadm
根据您的需要配置 kube-apiserver
:
---
kind: InitConfiguration
apiVersion: kubeadm.k8s.io/v1beta2
localAPIEndpoint:
advertiseAddress: "x.x.x.x"
bindPort: 6443
# the next section is optional, but could be useful also
nodeRegistration:
kubeletExtraArgs:
cgroup-driver: "systemd"
有关完整的详细信息,请阅读相关的 GoDoc 页面:
我正在尝试在分配给默认接口的 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-server 的 liveness 探测器外,一切似乎都设置正确。在 /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
中添加什么密钥才能设置正确?
山姆
重现您的配置,我发现 kubeadm-config
的 InitConfiguration
部分是必需的。
以下 kubeadm-config.yaml
部分应该指示 kubeadm
根据您的需要配置 kube-apiserver
:
---
kind: InitConfiguration
apiVersion: kubeadm.k8s.io/v1beta2
localAPIEndpoint:
advertiseAddress: "x.x.x.x"
bindPort: 6443
# the next section is optional, but could be useful also
nodeRegistration:
kubeletExtraArgs:
cgroup-driver: "systemd"
有关完整的详细信息,请阅读相关的 GoDoc 页面: