小编Moh*_*ari的帖子

Kubernetes:无法加入远程主节点

您好,我在远程服务器上遇到 kubeadm join 问题。

我想创建一个多服务器、多节点的 Kubernetes 集群。我创建了一个 vagrantfile 来创建一个主节点和 N 个工人。它适用于单个服务器。

主虚拟机是一个桥接虚拟机,以便网络上的其他可用虚拟机可以访问它。

我选择 Calico 作为网络提供商。

对于主节点,这就是我所做的:使用 ansible :

  1. 初始化 Kubeadm。

  2. 安装网络提供商。

  3. 创建连接命令。

对于 Worker 节点:

  1. 我执行 join 命令加入正在运行的 master。

我在一台硬件服务器上成功创建了集群。我正在尝试在同一 LAN 上的另一台服务器上创建常规工作节点,我成功 ping 到主节点。

使用生成的命令加入主节点。

kubeadm join 192.168.2.50:6443 --token ecqb8f.jffj0hzau45b4ro2   
--ignore-preflight-errors all  
--discovery-token-ca-cert-hash 
sha256:94a0144fe419cfb0cb70b868cd43pbd7a7bf45432b3e586713b995b111bf134b
Run Code Online (Sandbox Code Playgroud)

但它显示了这个错误:

error execution phase preflight: couldn't validate the identity of the API Server: 
could not find a JWS signature in the cluster-info ConfigMap for token ID "ecqb8f"
Run Code Online (Sandbox Code Playgroud)

我在问是否有任何特定的网络配置可以加入远程主节点。

kubernetes kubeadm

4
推荐指数
2
解决办法
3610
查看次数

使用公共 IP 的 Kubeadm init/join

我正在致力于建立一个多节点、多硬件服务器 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

networking kubernetes kubeadm

2
推荐指数
1
解决办法
5422
查看次数

未在 Kubernetes 工作节点上提供配置

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

我使用带有 ansible 和 virtualbox 的 vagrant 在许多硬件服务器上设置节点。它正在工作,节点使用 kubeadm 通过 join-command 加入主节点。主节点正在识别远程节点。

vagrant@Server-1-MASTER:~$ kubectl get nodes
NAME                STATUS   ROLES    AGE     VERSION
master              Ready    master   3h37m   v1.18.2
server-1-worker-1   Ready    <none>   3h23m   v1.18.2
server-2-worker-1   Ready    <none>   171m    v1.18.2
server-2-worker-2   Ready    <none>   41m     v1.18.2
Run Code Online (Sandbox Code Playgroud)

我正面临一个配置问题,我正在尝试修复该问题以设置工作节点的规则和访问权限。

问题: 在工作人员上,发生错误

no configuration has been provided, try setting KUBERNETES_MASTER environment variable

Run Code Online (Sandbox Code Playgroud)

使用 kubectl 命令时

vagrant@Server-1-WORKER-1:~$ kubectl get pods

error: no configuration has been provided, try setting KUBERNETES_MASTER 

environment variable

Run Code Online (Sandbox Code Playgroud)
vagrant@Server-1-WORKER-1:~$ kubectl get …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubeadm

1
推荐指数
1
解决办法
8671
查看次数

标签 统计

kubeadm ×3

kubernetes ×3

networking ×1