我正在使用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进行访问?
答案 0 :(得分:0)
如果只想使用内部网络在群集中进行通信。只需在您的母版上更新--advertise-address
。
它通常存储在这里:
/etc/systemd/system/kube-apiserver.service
--advertise-address=<internal-ip>
,然后重新启动api-server守护程序:
systemctl status kube-apiserver
您还可以检查其他kubernetes守护程序以仅侦听内部IP地址。