使用公共 IP 的 Kubeadm init/join

Moh*_*ari 2 networking kubernetes kubeadm

我正在致力于建立一个多节点、多硬件服务器 Kubernetes 集群。我正在使用 Calico 和 Kubeadm。

\n\n

单服务器版本在 Windows 上运行,在主机之间使用专用网络。

\n\n

我面临一个网络问题,我正在尝试修复该问题以跨外部网络 (LAN) 连接节点。

\n\n

因此,我尝试在虚拟机(节点)内使用桥接适配器\xe2\x80\x98a nic virtualization\xe2\x80\x99,以允许使用混杂模式和静态IP地址通过网络看到远程服务器。我正在使用 Vagrant。

\n\n

但我无法通过网络(LAN)创建静态公共IP,也许我没有\xe2\x80\x99t有权限这样做。

\n\n

故障排除:

\n\n
    \n
  1. 首先,我\xe2\x80\x99尝试创建一个随机IP公共地址,它\xe2\x80\x99s工作。但是,当我尝试将工作节点加入到主节点时,使用 kubeadm 失败了,\xe2\x80\x9c连接拒绝\xe2\x80\x9d。Kubeadm join 命令仅适用于专用网络,\n我读到\xe2\x80\x99s 额外的 Kubernetes 配置需要编辑以允许外部访问,但我不知道该怎么做。我尝试使用:\nkubeadm join <public-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx\n但生成的文件 /etc/kubernetes/bootstrapkubelet.conf 和 /etc/kubernetes/kubelet.conf 仍在使用其中的 :6443。\n我还尝试更新 --advertise-address。

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

  4. \n
  5. 我认为最简单的解决方案是修复流量转发和 IP 地址分配。
  6. \n
\n\n

我问是否有人可以帮助我。

\n\n

谢谢。

\n

Arg*_*dhu 7

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

sudo kubeadm init --control-plane-endpoint "PUBLIC_IP:PORT"
Run Code Online (Sandbox Code Playgroud)