要解决"AWS EKS NLB - 异构入口和单个 Ingress-Nginx 控制器"的问题,您可以按照以下步骤进行操作:
配置 AWS EKS 集群:
安装 Ingress-Nginx 控制器:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.44.0/deploy/static/provider/aws/deploy.yaml
创建一个 Ingress 资源:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
spec:
rules:
- host: my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: standard-service
port:
number: 80
- path: /gpu
pathType: Prefix
backend:
service:
name: gpu-service
port:
number: 80
在上面的示例中,standard-service
是标准服务的名称,gpu-service
是 GPU 服务的名称。您可以根据自己的实际情况进行修改。创建一个 Network Load Balancer(NLB):
apiVersion: v1
kind: Service
metadata:
name: my-app-nlb
spec:
type: LoadBalancer
externalTrafficPolicy: Local
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/component: controller
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
在上面的示例中,我们使用了 externalTrafficPolicy: Local
来确保只有请求的流量才会路由到正确的节点组。验证:
ACTIVE
。通过按照上述步骤,您应该能够成功地在 AWS EKS 上实现异构入口和单个 Ingress-Nginx 控制器。请注意,这只是一个基本示例,您可能需要根据自己的实际需求进行修改和调整。