Сертификаты Let's Enсrypt

Для создания сертификатов с помощью Let’s Enсrypt необходимо, чтобы ingress контроллер был доступен из сети Интернет. Для реализации этого требования должно выполняться хотя бы одно из следующих условий:

  1. Внешний балансировщик должен иметь белый (публичный) IP адрес;
  2. Должен быть указан белый (публичный) IP адрес для IngressVIP.

Инструкция по созданию и установке сертификата с помощью Let’s Enсrypt

  1. Создайте 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
  1. Примените созданный манифест.
Команда
kubectl apply -f acme-issuer.yaml
  1. Для присвоения секрета для 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
  1. Для присвоения секрета для 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
  1. Для подключения дашборда мониторинга со страницы кластера внесите изменения в 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
×