使用公共IP的Kubeadm init/join



我正在建立一个多节点、多硬件的服务器Kubernetes Cluster。我正在使用Calico和Kubeadm。

单服务器版本使用主机之间的专用网络在windows上工作。

我正面临一个网络问题,我正试图解决这个问题,以便通过外部网络(LAN(连接节点。

因此,我试图在虚拟机(节点(中使用桥接适配器"nic虚拟化",以允许通过网络使用混杂模式和静态IP地址访问远程服务器。我正在使用Vagrant。

但是我不能通过网络(LAN(创建一个静态的公共IP,也许我没有权限这样做。

故障排除:

  1. 首先,我尝试创建一个随机IP公共地址,它正在工作。但当我尝试将工作节点连接到主节点时,使用kubeadm失败了,"连接被拒绝"。Kubeadm join命令仅适用于专用网络,我读到有额外的Kubernetes配置需要编辑以允许外部访问,但我不知道如何做到这一点。我尝试使用: kubeadm join <public-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx但是生成的文件/etc/kubernetes/bootstrapkubelet.conf和/etc/kubernet es/kubelet.conf仍在使用其中的:6443。我还试着更新——广告地址。

  2. 其中一个想法是创建一个网关,将特定端口的流量从第一个网络接口转发到第二个网络接口,我在主机上使用Ubuntu/xenial。

  3. 我认为最简单的解决方案,是修复流量转发和IP地址分配

我在问是否有人能帮我。

谢谢。

在执行kubeadm init时,添加PUBLIC IP和PORT作为--control-plane-endpoint参数的一部分。

sudo kubeadm init --control-plane-endpoint "PUBLIC_IP:PORT"

当我使用calico和kubeadm 时,这对我来说效果很好

sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --control-plane-endpoint "PUBLIC_IP:PORT"

最新更新