EKS + Route53 + шлюз Istio + Cert-Manager + letsencrypt

У меня есть кластер EKS, настроенный с входным шлюзом Iitio, и мой домен DNS (test.com) размещен на route53. Я хочу сгенерировать сертификат Letsencrypt для своего домена. Я использую следующую версию certmanager (0.14.1), Istio (1.6), Kubernetes (1.17). Не могли бы вы предоставить мне список шагов, которые необходимо выполнить.


person techgiant    schedule 15.07.2020    source источник


Ответы (2)


Я не очень разбираюсь в том, как должна быть выполнена настройка istio, но для входа это следующий путь, надеюсь, то же самое должно работать и там.

Вы можете загрузить диаграмму управления диспетчера сертификатов из здесь, а затем вам нужно будет создать правила входящего трафика для маршрутизации трафика, а также для завершения TLS вы можете следовать ссылка на переполнение стека

Пожалуйста, используйте

apiVersion: cert-manager.io/v1alpha2

в clusterissuer, если apiVersion для clusterIssuer, присутствующий в этом сообщении stackoverflow, неприемлем

person Tushar Mahajan    schedule 15.07.2020
comment
это сработало для ppl, использующего istio в прошлом, я думаю, сработает и для вас - person Tushar Mahajan; 15.07.2020

Существует связанная документация об интеграции cert-menager и istio.

сертификат-менеджер

Конфигурация

Чтобы начать работу, обратитесь к документации по установке cert-manager. Никаких особых изменений для работы с Istio не требуется.

использование

Менеджер сертификатов Istio Gateway может использоваться для записи секрета в Kubernetes, на который затем может ссылаться шлюз. Для начала настройте ресурс сертификата, следуя документации по диспетчеру сертификатов. Сертификат должен быть создан в том же пространстве имен, что и развертывание istio-ingressgateway. Например, Сертификат может выглядеть так:

apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: ingress-cert
  namespace: istio-system
spec:
  secretName: ingress-cert
  commonName: my.example.com
  dnsNames:
  - my.example.com
  ...

После создания сертификата мы должны увидеть секрет, созданный в пространстве имен istio-system. Затем на это можно ссылаться в конфигурации tls для шлюза с именем credentialName:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      credentialName: ingress-cert # This should match the Certifcate secretName
    hosts:
    - my.example.com # This should match a DNS name in the Certificate

Kubernetes Ingress

cert-manager обеспечивает прямую интеграцию с Kubernetes Ingress путем настройки аннотации для объекта Ingress . Если используется этот метод, Ingress должен находиться в том же пространстве имен, что и развертывание istio-ingressgateway, поскольку секреты будут считываться только в том же пространстве имен.

Кроме того, сертификат можно создать, как описано в Istio Gateway, а затем ссылка на него в объекте Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    kubernetes.io/ingress.class: istio
spec:
  rules:
  - host: my.example.com
    http: ...
  tls:
  - hosts:
    - my.example.com # This should match a DNS name in the Certificate
    secretName: ingress-cert # This should match the Certifcate secretName

Дополнительно есть пример сделано @chrisnyc в обсуждении istio.


Надеюсь, вы найдете это полезным.

person Jakub    schedule 16.07.2020