public 中的 Kubernetes 集群和私有拓扑

Kubernetes cluster in public and private topology

我正在尝试使用 Kops 在 aws 中设置一个 kubernetes 集群。但是我有这样的要求,比如在 public 子网中部署主节点,在 public 中部署一些工作节点,在私有子网中部署一些工作节点。

我需要如下网络:

那么,是否可以使用 kops 创建此网络?

Kubernetes 节点不应该直接连接到互联网。

我假设您想通过 NodePort 公开服务,这通常不是一个好主意。因为 NodePort 服务在 ALL 节点上公开,而不仅仅是 pods 是 运行 的节点。

您应该将所有节点和主节点放在私有子网中,并通过弹性负载平衡器和 ingress 管理外部访问。这样您就可以明确地将前端服务暴露给互联网。

相关的 kops-spec.yaml 片段是:

topology:
  dns:
    type: Public
  masters: private
  nodes: private