Автоматизируйте создание сертификатов AWS ACM в Kubernetes

В настоящее время я настраиваю Ingress в Kubernetes для работы с AWS ALB, и мне нужно управлять сертификатами TLS через диспетчер сертификатов AWS (ACM). Мне пришлось создать сертификат ACM вручную, чтобы вход работал, но я ищу способ автоматизировать этот процесс непосредственно из Kubernetes.

Вот моя текущая конфигурация Ingress:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: game-2048
  name: ingress-2048
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/group.name: "application-shared-lb"
spec:
  tls:
  - hosts:
    - snpv.cclab.cloud-castles.com
    secretName: game-2048-tls
  ingressClassName: alb
  rules:
    - host: snpv.cclab.cloud-castles.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: service-2048
              port:
                number: 80

Я нашел эту документацию об AWSPCAClusterIssuer, который создает частный сертификат ACM, но его действие прекращается только тогда, когда ingressclass является nginx и не соответствует моим потребностям.

Существует ли рекомендуемый способ или существующий инструмент для автоматизации предоставления сертификатов ACM и интеграции с Kubernetes, особенно для таких сценариев, как мой, где Ingress необходимо напрямую взаимодействовать с ресурсами AWS?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
0
157
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создание общедоступного SSL-сертификата ACM на основе запроса функции EKS отслеживается здесь https://github.com/aws-controllers-k8s/community/issues/482

Контроллер AWS Loadbalancer может автоматически обнаруживать сертификат на хосте https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.5/guide/ingress/cert_discovery/#discover-via-ingress-rule -ведущий

ниже прикрепляет сертификат для dev.example.com или *.example.com к ALB

apiVersion: networking.k8s.io/v1 
kind: Ingress 
metadata:
  namespace: default 
  name: ingress 
annotations:  
  alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' 
spec:  
  ingressClassName: alb   
  rules:
  - host: dev.example.com
    http:
      paths:
      - path: /users
        pathType: Prefix
        backend:
          service:
            name: user-service
            port:
              number: 80 

Я решил принять это как ответ, поскольку в настоящее время нет способа реализовать такую ​​вещь. вместо этого мы решили сделать это с помощью terraform.

Elazar 07.05.2024 12:21

Другие вопросы по теме