gpt4 book ai didi

amazon-web-services - 带有 Kops 的 AWS 上的 Kubernetes 集群 - NodePort 服务不可用

转载 作者:行者123 更新时间:2023-12-04 00:29:59 32 4
gpt4 key购买 nike

我在访问 Kubernetes 集群上的 NodePort 服务时遇到困难。

目标

设置 ALB Ingress Controller ,以便我可以使用 websockets 和 http/2

根据该 Controller 的要求设置 NodePort 服务

采取的步骤

之前在 AWS eu-west-1 上创建了一个 Kops(版本 1.6.2)集群。添加了 nginx ingress 的 kops 插件以及 Kube-lego。 ELB 入口工作正常。

使用该项目指定的 IAM 配置文件使用自定义 AWS key 设置 ALB 入口 Controller 。

使用 kubectl replace --force 将服务类型从 LoadBalancer 更改为 NodePort

> kubectl describe svc my-nodeport-service
Name: my-node-port-service
Namespace: default
Labels: <none>
Selector: service=my-selector
Type: NodePort
IP: 100.71.211.249
Port: <unset> 80/TCP
NodePort: <unset> 30176/TCP
Endpoints: 100.96.2.11:3000
Session Affinity: None
Events: <none>

> kubectl describe pods my-nodeport-pod
Name: my-nodeport-pod
Node: <ip>.eu-west-1.compute.internal/<ip>
Labels: service=my-selector
Status: Running
IP: 100.96.2.11
Containers:
update-center:
Port: 3000/TCP
Ready: True
Restart Count: 0

(ssh into node)
$ sudo netstat -nap | grep 30176
tcp6 0 0 :::30176 :::* LISTEN 2093/kube-proxy

结果

来自 ALB 的 curl 挂起

curl 来自 <public ip address of all nodes>:<node port for service>挂起

预期

从 ALB 和直接到节点的 curl :节点端口应该返回 200“Ok”(服务对根的 http 响应)

更新:
在 github 上创建的问题在某些情况下引用了上面的一些进一步的细节:
  • https://github.com/kubernetes/kubernetes/issues/50261
  • https://github.com/coreos/alb-ingress-controller/issues/169
  • https://github.com/kubernetes/kops/issues/3146
  • 最佳答案

    默认情况下,Kops 不会将 EC2 实例配置为允许来自外部的 NodePort 流量。

    为了让集群外的流量到达 NodePort,您必须在 AWS 上的 EC2 控制台中编辑作为 Kubernetes 节点的 EC2 实例的配置。

    进入 EC2 控制台后,单击“安全组”。 Kops 应该将它为您的集群创建的原始安全组注释为 nodes.<your cluster name>master.<your cluster name>
    我们需要修改这些安全组以将流量从 NodePorts 的默认端口范围转发到实例。

    单击安全组,单击规则并添加以下规则。

    在节点和主服务器上打开的端口范围 : 30000-32767

    security group rule

    这将允许互联网上的任何人访问您集群上的 NodePort,因此请确保您希望这些公开。

    或者,您可以只允许来自 alb-ingress-controller 为 ALB 创建的安全组,而不是允许它来自任何来源。但是,由于这些可以重新创建,因此可能需要修改有关修改 kubernetes 服务的规则。我建议明确指定 NodePort 是预先确定的已知 NodePort,而不是随机分配的 NodePort。

    关于amazon-web-services - 带有 Kops 的 AWS 上的 Kubernetes 集群 - NodePort 服务不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45543694/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com