AWS EKS 配置 HTTPS 侦听器

AWS EKS configure HTTPS listener

我想在 Kubernetes (EKS) 上保护我的 Web 服务 运行ning。它在端口 80 上 运行ning。我想在端口 443 上 运行 这个。

当我在 AWS 控制台上应用 YAML 文件(用于服务和入口)时,我仍然让它在端口 80 上侦听(而不是在 443 上):

这是我的 YAML 文件: 我怎样才能让它发挥作用?谢谢你的时间!

   #SERVICE LOGGER
   apiVersion: v1
   kind: Service
   metadata:
     name: load-balancer-api-logger
     namespace: servicename-core-ns
     annotations:
       service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-central-1:786543355018:certificate/acdff29d4-7a32-42f1-8f11-1d4f495a5c77
       service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
       service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
       service.beta.kubernetes.io/force-ssl-redirect: "true"
   spec:
     selector:
       app: api-logger
     type: NodePort
     ports:
     - protocol: TCP
       port: 443
       targetPort: 5000
     selector:
       app.kubernetes.io/name: api-logger
   ---
   
   apiVersion: networking.k8s.io/v1
   kind: Ingress
   metadata:
     name: ingress-articor
     namespace: servicename-core-ns
     annotations:
       kubernetes.io/ingress.class: alb
       alb.ingress.kubernetes.io/scheme: internet-facing
       alb.ingress.kubernetes.io/target-type: instance
       alb.ingress.kubernetes.io/healthcheck-path: "/healthcheckep"
       alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
       alb.ingress.kubernetes.io/ssl-redirect: '443'
   spec:
     rules:
       - host: logger.domainname.com
         http:
           paths:
             - path: "/"
               pathType: Prefix
               backend:
                 service:
                   name: load-balancer-api-logger
                   port: 
                     number: 80

请注意,如果我尝试手动将 ALB 设置为使用 HTTPS,它工作正常。我在这里想要实现的是通过 YAML 文件对其进行配置。

您应该在 Ingress 对象中配置所有设置。以下规范也不重复控制器设置的默认值:

apiVersion: v1
kind: Service
metadata:
 name: load-balancer-api-logger
 namespace: servicename-core-ns
spec:
 selector:
   app: api-logger
 type: NodePort
 ports:
 - protocol: TCP
   port: 443
   targetPort: 5000
 selector:
   app.kubernetes.io/name: api-logger
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
 name: ingress-articor
 namespace: servicename-core-ns
 annotations:
   kubernetes.io/ingress.class: alb
   alb.ingress.kubernetes.io/scheme: internet-facing
   alb.ingress.kubernetes.io/healthcheck-path: "/healthcheckep"
   alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:eu-central-1:786543355018:certificate/acdff29d4-7a32-42f1-8f11-1d4f495a5c77
spec:
 rules:
 - host: logger.domainname.com
   http:
     paths:
     - path: "/"
       pathType: Prefix
       backend:
         service:
           name: load-balancer-api-logger
           port: 
             number: 443