【发布时间】:2019-01-14 14:12:43
【问题描述】:
我有一个 UDP 服务,我需要从 AWS EKS 集群向 Internet 公开。 AWS 负载均衡器(经典或 NLB)不执行 UDP,因此我想使用带有 Route53 多值的 NodePort 来为我的节点获取 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 服务。我的预感是因为节点没有externalIPs。
【问题讨论】:
标签: amazon-web-services kubernetes amazon-eks