Bob*_*vic 4 kubernetes kubelet
我想在本地设置一个 kubernetes 集群,其中我希望有 1 个主节点和 2 个工作节点。我已经设法做到了这一点,但我无法访问 Pod 或查看特定 Pod 的任何日志,因为所有节点的内部 IP 地址都是相同的。
vagrant@k8s-head:~$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-head Ready master 5m53s v1.15.0 10.0.2.15 <none> Ubuntu 16.04.6 LTS 4.4.0-151-generic docker://18.6.2
k8s-node-1 Ready <none> 4m7s v1.15.0 10.0.2.15 <none> Ubuntu 16.04.6 LTS 4.4.0-151-generic docker://18.6.2
k8s-node-2 Ready <none> 2m28s v1.15.0 10.0.2.15 <none> Ubuntu 16.04.6 LTS 4.4.0-151-generic docker://18.6.2
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我发现应该做以下事情:
- 添加KUBELET_EXTRA_ARGS=--node-ip=<IP_ADDRESS>到/etc/default/kubelet文件
- 通过运行重新启动 kubelet:sudo systemctl daemon-reload && sudo systemctl restart kubelet
问题是此位置缺少/etc/default/kubelet文件,我无法添加此附加参数。尝试手动创建文件,但当我重新启动 kubelet 时,它看起来不起作用,IP 地址仍然相同。
有人遇到过缺少 /etc/default/kubelet 文件的问题,或者是否有其他更简单的方法来设置不同的内部 IP 地址?
小智 7
对于 VirtualBox 中运行的 Kubernetes 集群,每个节点具有相同的 IP 是正常的,原因是它不是NAT newtork用于虚拟机之间通信的,访问外界时 10.0.2.15 IP 进行了 NAT。
下图显示了在 VirtualBox 之上的 Kubernetes 集群中创建的网络,如您所见,每个节点在NAT newtork其他网络上具有相同的 IP,但在其他网络上具有不同的 IP:
为了访问 POD,您可以使用 NodePort 和HOST ONLY网络。
请参阅使用 Vagrant 和 Ansible(不带 Minikube)构建 Kubernetes 集群查看完整示例并下载代码。该教程解释了如何使用 Ansible playbook、Vagrant 和 VirtualBox 启动 Kubernetes 集群。
它使用 Calico 进行网络连接,如果您需要微服务网格,它还包含另一个安装Istio的教程。
| 归档时间: |
|
| 查看次数: |
3216 次 |
| 最近记录: |