首页 > 解决方案 > 如何使用内部网络设置 k8s IP?

问题描述

最近我决定在几个虚拟机上建立一个 k8s 集群。
我过去使用过 K8s,但已经很久了。
我想在集群中运行的一件事是带有 Nginx 的 Web 服务器。

我有 3 个 VM 的 1 个主人,2 个工人。他们每个人都有一个外部和内部IP。

我想知道我应该如何设置k8s。
所以我想使用外部 IP 作为我的集群 IP,但节点应该与内部网络通信。

我需要如何配置它?
我想我需要命令的这些选项之一,kubeadm init但我不确定?

--control-plane-endpoint
--apiserver-advertise-addres

如果有人可以用一个例子来解释,那就太好了!

标签: kubernetesnetworking

解决方案


我希望我理解正确,如果没有请更新我。

所以我想使用外部 IP 作为我的集群 IP,但节点应该与内部网络通信。

首先你的外部IP需要是

apiVersion: v1
kind: Service
....
type: LoadBalancer

但节点应该与内部网络通信

为此,您应该使用StaefulSet而不是部署。

从您的角度来看(为了回答您的问题)的主要区别是StatefulSet将唯一的 FQDN 附加到您的 pod,并且当您重新安排它时,该地址保证“附加”到 pod。

所以你应该有这样的东西:

  • nginx - 通过 LoadBalancer 暴露(外部 IP)
  • 应用程序 - 具有唯一 IP 的 StatefulSet 应用程序,Nginx 可以使用此 IP 与它们通信。

在此处输入图像描述


推荐阅读