gpt4 book ai didi

amazon-web-services - 如何将Kubernetes与现有的AWS ALB集成?

转载 作者:行者123 更新时间:2023-12-02 11:45:21 25 4
gpt4 key购买 nike

我想在Kubernetes设置中使用现有的AWS ALB。即我不希望alb-ingress-controller创建或更新任何现有的AWS资源,即目标群体,角色等

如何使ALB与Kubernetes集群通信,从而将请求传递给现有服务并将响应返回给ALB以显示在前端?

我尝试了this,但是它将为新的入口资源创建新的ALB。我想使用现有的。

最佳答案

基本上,您必须在运行Kubernetes Pods的实例上打开一个节点端口。然后,您需要让ALB指向那些实例。有两种配置方法。通过Pod或通过Services。

要通过服务对其进行配置,您需要指定.spec.ports[].nodePort。在默认设置中,端口必须介于3000032000之间。该端口在每个节点上均打开,并将被重定向到指定的Pod(可能在其他任何节点上)。缺点是还有另一跳,使用多可用区设置时也会花费金钱。一个示例服务可能如下所示:

---
apiVersion: v1
kind: Service

metadata:
name: my-frontend
labels:
app: my-frontend

spec:
type: NodePort
selector:
app: my-frontend
ports:
- port: 8080
nodePort: 30082

要通过 Pod 配置它,您需要指定 .spec.containers[].ports[].hostPort。该端口号可以是任何端口号,但是在Pod被调度的节点上必须是免费的。这意味着每个节点只能有一个Pod,并且可能与其他应用程序的端口冲突。不利之处在于,从ALB的 Angular 来看,并非所有实例都可以正常运行,因为只有具有该Pod的节点才能接受流量。您可以添加一个sidecar容器,该容器在ALB上注册当前节点,但这将意味着额外的复杂性。一个示例可能如下所示:
---
apiVersion: extensions/v1beta1
kind: Deployment

metadata:
name: my-frontend
labels:
app: my-frontend

spec:
replicas: 3

selector:
matchLabels:
app: my-frontend

template:
metadata:
name: my-frontend
labels:
app: my-frontend

spec:
containers:
- name: nginx
image: "nginx"

ports:
- containerPort: 80
hostPort: 8080

关于amazon-web-services - 如何将Kubernetes与现有的AWS ALB集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48384182/

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