Kubeadm使用公共IP进行initjoin。

问题描述 投票:0回答:1

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

一个服务器版本在windows上使用主机之间的私有网络工作。

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

因此,我试图在虚拟机(节点)中使用一个桥接适配器 "一个nic虚拟化",以允许通过网络的可见性,到一个远程服务器使用杂交模式和一个静态IP地址。我正在使用Vagrant。

但我不能在网络(局域网)上创建一个静态的公共IP,也许我没有权限这样做。

故障排除。

  1. 首先我尝试创建一个随机的IP公共地址,它的工作。但是当我尝试将工作节点加入到主节点时,使用kubeadm命令失败,"连接拒绝"。Kubeadm join命令只能在私有网络上工作,我读到有额外的Kubernetes配置需要编辑以允许外部访问,但我不知道如何做。我试着用: kubeadm join <public-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx 但生成的文件etckubernetesbootstrapkubelet.conf和etckuberneteskubelet.conf仍然在使用里面的:6443.我也尝试更新--广告地址。

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

  3. 我认为最简单的解决方法,就是解决流量转发和IP地址分配的问题。

我想请教一下,有没有人可以帮我。

谢谢你的帮助。

networking kubernetes kubeadm
1个回答
2
投票

当做kubeadm初始化添加公共IP和端口的一部分。--control-plane-endpoint 参数。

sudo kubeadm init --control-plane-endpoint "PUBLIC_IP:PORT"
© www.soinside.com 2019 - 2024. All rights reserved.