Сертификаты Let's Enсrypt
Для создания сертификатов с помощью Let’s Enсrypt необходимо, чтобы ingress контроллер был доступен из сети Интернет. Для реализации этого требования должно выполняться хотя бы одно из следующих условий:
- Внешний балансировщик должен иметь белый (публичный) IP адрес;
- Должен быть указан белый (публичный) IP адрес для IngressVIP.
Инструкция по созданию и установке сертификата с помощью Let’s Enсrypt
- Создайте YAML-файл acme-issuer.yaml с манифестом объекта ClusterIssuer.
Манифест
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt
namespace: cert-manager
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: <ваш email>
privateKeySecretRef:
name: letsencrypt
solvers:
- http01:
ingress:
class: nginx
- Примените созданный манифест.
Команда
kubectl apply -f acme-issuer.yaml
- Для присвоения секрета для backend.
Команда
kubectl edit ssc/shturval-backend
В spec.customvalues пропишите наименование секрета для backend и auth.
Пример
global:
tls:
enabled: true
backend_tls_secretname: <ваше значение параметра>
auth_tls_secretname: <ваше значение параметра>
cluster_issuer_name: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
backend_tls_secretname |
Имя секрета для установления TLS-соединения | string | shturval-tls |
auth_tls_secretname |
Имя секрета для установления TLS-соединения | string | shturval-tls |
cluster_issuer_name |
Имя созданного ClusterIssuer | string | letsencrypt |
- Для присвоения секрета для frontend.
Изменения customvalues
kubectl edit ssc/shturval-frontend
В spec.customvalues пропишите наименования секретов для frontend и docs.
Пример customvalues
tls:
enabled: true
front_tls_secretname: <ваше значение параметра>
docs_tls_secretname: <ваше значение параметра>
cluster_issuer_name: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
front_tls_secretname |
Имя секрета для установления TLS-соединения | string | shturval-tls |
docs_tls_secretname |
Имя секрета для docs | string | docs-tls |
cluster_issuer_name |
Имя созданного ClusterIssuer | string | letsencrypt |
- Для подключения дашборда мониторинга со страницы кластера внесите изменения в SSC shturval-dashboards
Команда
kubectl edit ssc/shturval-dashboards
Изменения customvalues
grafana.ini:
security:
cookie_secure: true
auth.generic_oauth:
tls_skip_verify_insecure: true
ingress:
annotations:
cert-manager.io/cluster-issuer: <ваше значение параметра>
tls:
- hosts:
- <ваше значение параметра>
secretName: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
annotations.cert-manager.io/cluster-issuer |
Аннотация с именем созданного ClusterIssuer | string | letsencrypt |
tls.hosts |
Список хостов, для которых устанавливается TLS-соединение | array | dashboards.apps.ip-10-11-11-13.shturval.link |
tls.secretName |
Имя секрета для установления TLS-соединения, в котором будет сохранен сертификат для Grafana | string | dashboards-ingress-tls |