繁体   English   中英

将外部 IP 分配给 Kubernetes 节点 (AWS EKS)

[英]Assign external IP to Kubernetes nodes (AWS EKS)

我有一个 UDP 服务,我需要从 AWS EKS 集群向 Internet 公开。 AWS负载均衡器(经典或NLB)不做UDP,所以我想用一个NodePort与Route53的多值获得UDP循环赛负载平衡,以我的节点。

我在 AWS EKS 上的节点没有分配给它们的ExternalIP 虽然运行节点的 EC2 实例具有公共 IP,但在创建集群时尚未将这些 IP 分配给节点。

如何将 EC2 公共 IP 分配给我的 k8s 节点?

NAME                                          STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE                                         KERNEL-VERSION               CONTAINER-RUNTIME
x.us-west-2.compute.internal   Ready     <none>    7d        v1.10.3   <none>        Amazon Linux 2 (2017.12) LTS Release Candidate   4.14.42-61.37.amzn2.x86_64   docker://17.6.2
x.us-west-2.compute.internal      Ready     <none>    7d        v1.10.3   <none>        Amazon Linux 2 (2017.12) LTS Release Candidate   4.14.42-61.37.amzn2.x86_64   docker://17.6.2
x.us-west-2.compute.internal   Ready     <none>    7d        v1.10.3   <none>        Amazon Linux 2 (2017.12) LTS Release Candidate   4.14.42-61.37.amzn2.x86_64   docker://17.6.2

为方便起见,我目前正在针对 HTTP 服务进行测试,这是我的测试服务的样子:

apiVersion: v1
kind: Service
metadata:
  name: backend-api
  labels:
    app: backend-api
spec:
  selector:
    app: backend-api
  type: NodePort
  ports:
  - name: back-http
    port: 81
    targetPort: 8000
    protocol: TCP
  externalIPs:
  - x.x.x.x
  - x.x.x.x
  - x.x.x.x

对于此示例,我的curl请求从未命中节点上运行的 HTTP 服务。 我的预感是因为节点没有externalIP

我还没有尝试过 HostPort 或 UDP,但我在公共 NodePorts 上取得了成功。

只要实例具有公共 IP,其安全策略会打开端口,没有操作系统防火墙,并且您没有不兼容的 NetworkPolicies,那么 HostPort 就可以正常工作。 NodePort 将操作系统的端口转发到 Kubernetes。 ExternalIP 和其他内部 Kubernetes 设置无关紧要。

您可以使用外部IP控制器为节点分配IP。 它设计用于裸机群集,但我认为它也适用于您的情况。

外部IP控制器是一个k8s应用程序,它部署在k8s集群之上,它在k8s工作节点上配置外部IP以提供IP连接。

描述:

外部IP控制器kubernetes应用程序正在其中一个节点上运行(副本= 1)。

  • 在开始时,它从kube-api中提取有关服务的信息,并在指定的接口上显示所有外部IP(在上面的示例中为eth0)。
  • 它通过外部IP监视kube-api的服务更新,并且:
    • 当出现新的外部IP时,它会启动它们。
    • 删除服务后,它会从界面中删除相应的外部IP。
  • Kubernetes为外部IP控制器提供故障转移。 由于我们将副本设置为1,因此我们将只在群集中运行一个实例以避免IP重复。 当k8s节点出现问题时,将在新的k8s工作节点上生成外部IP控制器,并在该节点上启动外部IP。

查看演示以了解它是如何工作的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM