У меня есть кластер EKS, настроенный с входным шлюзом Iitio, и мой домен DNS (test.com) размещен на route53. Я хочу сгенерировать сертификат Letsencrypt для своего домена. Я использую следующую версию certmanager (0.14.1), Istio (1.6), Kubernetes (1.17). Не могли бы вы предоставить мне список шагов, которые необходимо выполнить.
EKS + Route53 + шлюз Istio + Cert-Manager + letsencrypt
Ответы (2)
Я не очень разбираюсь в том, как должна быть выполнена настройка istio, но для входа это следующий путь, надеюсь, то же самое должно работать и там.
Вы можете загрузить диаграмму управления диспетчера сертификатов из здесь, а затем вам нужно будет создать правила входящего трафика для маршрутизации трафика, а также для завершения TLS вы можете следовать ссылка на переполнение стека
Пожалуйста, используйте
apiVersion: cert-manager.io/v1alpha2
в clusterissuer, если apiVersion для clusterIssuer, присутствующий в этом сообщении stackoverflow, неприемлем
Существует связанная документация об интеграции 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
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.
Надеюсь, вы найдете это полезным.