Let's Encrypt — это бесплатный сервис TLS/SSL, который вы можете использовать с вашим кластером Kubernetes, и большая часть работы автоматизирована. Вы можете настроить кластер Kubernetes, чтобы он связался с Let's Encrypt и подтвердил, что вы являетесь владельцем доменного имени, и выдал вам сертификат.
Let's Encrypt не поверит на слово вашему кластеру Kubernetes, а вместо этого сделает запрос к тому доменному имени, которым вы предположительно владеете, и, если оно действительно принадлежит вам, вы ответите. Когда вы ответите на этот маршрут, вы автоматически получите сертификат от Let's Encrypt, который сохранит его в секрете и сделает доступным для вашего приложения. Обычно он действителен в течение 90 дней, а затем этот процесс автоматически повторяется.
Ваша задача — создать инфраструктуру, чтобы это произошло.
Шаг 1. Вам необходимо приобрести доменное имя. Вы можете использовать множество разных сервисов, но я бы рекомендовал домены.google.com.
Шаг 2. Вы хотите настроить свое доменное имя, перейдя на панель управления кластера Kubernetes в Услуги а затем найти Входная служба и это IP-адрес, который вы будете использовать для указания вашего доменного имени. Вы собираетесь нажать на DNS приобретенного вами доменного имени, найдите Пользовательские записи ресурсов и настроить пользовательские записи. Первый гарантирует, что пользователь, перешедший на mycluster.com, будет перенаправлен на указанный IP-адрес, второй гарантирует, что пользователь, перешедший на www.mycluster.com, будет перенаправлен на тот же указанный IP-адрес.
Итак, вы добавляете www
symbol with an C
запись и время жизни в 1 час, то есть время, необходимое для вступления записи в силу, и IP-адрес, назначенный вашему балансировщику нагрузки. Нет порта, только IP-адрес.
Второй тип записи A
name with @
, 1 час жизни и, очевидно, это для вашего apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.class: "gce"
spec:
backend:
serviceName: backend-service
servicePort: 80
tls:
- hosts:
- example.com
- api.example.com
secretName: app-ingress-tls
rules:
- host: example.com
http:
path:
- path: /*
backend:
serviceName: backend-service
servicePort: 443
- host: api.example.com
http:
path:
- path: /*
backend:
serviceName: backend-service
servicePort: 443
and thats pretty much it for that.
Шаг 3. Настраивается кластер Kubernetes для получения сертификата TLS.
Шаг 4. Вам необходимо будет заполнить файлы конфигурации эмитента и сертификата.
Шаг 5. Разверните новые изменения
Шаг 6. Проверьте сертификат