Kubeadm加入使用特定的广告IP地址

时间:2019-01-11 11:26:21

标签: kubernetes kubeadm

我正在使用kubeadm创建一个版本为1.11.5的单个主Kubernete。我有一个像这样的kubeadm配置:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: <internal-ip>
apiServerCertSANs:
- <public-ip>
- <internal-ip>
kubernetesVersion: v1.11.5
networking:
  podSubnet: 10.244.0.0/16

该计算机是ec2,并且在<public-ip>中添加了apiServerCertSANs,从而使使用kubectl的笔记本电脑可以访问群集。但是不好的是,在kubeadm join中运行的worker node命令将默认使用<public-ip>而不是<internal-ip>

我尝试手动使用kubeadm join <internal-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx,但是生成的文件/etc/kubernetes/bootstrap-kubelet.conf/etc/kubernetes/kubelet.conf仍在其中使用<public-ip>:6443。并且步骤“从kube-system命名空间中的“ kubelet-config-1.11” ConfigMap下载kubelet的配置”仍从<public-ip>访问主节点。

我需要通过内部IP进行所有kubernetes访问,如何更改IP进行访问?

1 个答案:

答案 0 :(得分:0)

如果只想使用内部网络在群集中进行通信。只需在您的母版上更新--advertise-address。 它通常存储在这里: /etc/systemd/system/kube-apiserver.service

--advertise-address=<internal-ip>

,然后重新启动api-server守护程序:

systemctl status kube-apiserver

您还可以检查其他kubernetes守护程序以仅侦听内部IP地址。