我正在努力建立一个多节点、多硬件服务器 Kubernetes 集群。我正在使用 Calico 和 Kubeadm。
单服务器版本在 windows 上运行,使用主机之间的专用网络。
我正面临一个网络问题,我正在尝试解决该问题以跨外部网络 (LAN) 连接节点。
因此,我尝试在虚拟机(节点)中使用网桥适配器“网卡虚拟化”,以允许使用混杂模式和静态 IP 地址通过网络访问远程服务器。我正在使用 Vagrant。
但我无法通过网络 (LAN) 创建静态公共(public) IP,也许我没有权限这样做。
故障排除:
开始时,我尝试创建一个随机 IP 公共(public)地址,它正在运行。但是当我尝试将工作节点加入主节点时,使用 kubeadm 失败了,“连接被拒绝”。 Kubeadm join 命令仅适用于专用网络, 我读到有额外的 Kubernetes 配置需要编辑以允许外部访问,但我不知道该怎么做。我尝试使用:
kubeadm join <public-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx
但是生成的文件/etc/kubernetes/bootstrapkubelet.conf 和/etc/kubernetes/kubelet.conf 仍在使用其中的 :6443。 我也尝试更新 --advertise-address。其中一个想法是创建网关以将特定端口的流量从第一个网络接口(interface)转发到第二个网络接口(interface),我在主机上使用 Ubuntu/xenial。
- 我认为最简单的解决方案是修复流量转发和 IP 地址分配。
我在问是否有人可以帮助我。
谢谢。
最佳答案
在执行 kubeadm init 时,将 PUBLIC IP 和 PORT 添加为 --control-plane-endpoint
参数的一部分。
sudo kubeadm init --control-plane-endpoint "PUBLIC_IP:PORT"
关于networking - 使用公共(public) IP 的 Kubeadm init/join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61543832/