networking - 使用公共(public) IP 的 Kubeadm init/join

标签 networking kubernetes kubeadm

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

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

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

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

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

故障排除:

  1. 开始时,我尝试创建一个随机 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。

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

  3. 我认为最简单的解决方案是修复流量转发和 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/

相关文章:

kubernetes - 在这个 k8s yaml 中哪些名称应该相同

kubeadm - 是否有重启集群的最佳实践

python - Pygame 的基本网络

用于简单纸牌游戏的 Python 网络库

linux - 如何使用 Wireshark 解密 TCP 流量?

kubernetes - 删除默认 token 后无法访问kubernetes API

linux - 如何永久更改 MTU 设置

kubernetes - 如何使用 kubernetes NodePort 从外部访问服务?

kubernetes - 如何启动和停止 Kubernetes 1.8.5 集群?

kubernetes - kubeadm v1.18.2 和 crio 版本 1.18.2 无法从 Centos7/RH7 上的私有(private)仓库启动主节点