Istio RouteRules v1alpha3.Где хранить сертификаты.k8s секреты? - PullRequest
0 голосов
/ 02 июня 2018

Разве нельзя использовать секретные объекты k8s для хранения сертификатов?

В документе (https://istio.io/docs/reference/config/istio.networking.v1alpha3/):

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: my-tls-ingress
spec:
  selector:
    app: my-tls-ingress-gateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - "*"
    tls:
      mode: SIMPLE
      serverCertificate: /etc/certs/server.pem
      privateKey: /etc/certs/privatekey.pem

В документе serverCertificate указано:

ТРЕБУЕТСЯ, если режим ПРОСТОЙ или ВЗАИМНЫЙ. Путь к файлу, содержащему сертификат TLS на стороне сервера, который нужно использовать.

Так что кажется, что невозможно использовать секреты k8s для хранения сертификатовно необходим путь исправления (в рабочем узле?). Это верно?

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Возможно, вы захотите прочитать https://istio.io/docs/tasks/traffic-management/ingress/#add-a-secure-port-https-to-our-gateway

Создайте секретные сертификаты istio-ingressgateway в системе имен пространства имен с помощью kubectl.Шлюз Istio автоматически загрузит секрет

Секрет ДОЛЖЕН называться istio-ingressgateway-certs в пространстве имен istio-system, иначе он не будет установлен и недоступен для шлюза Istio.

Расположение сертификата и закрытого ключа ДОЛЖНО быть / etc / istio / ingressgateway-certs, иначе шлюз не сможет их загрузить.

РЕДАКТИРОВАТЬ: https://istio.io/docs/tasks/traffic-management/secure-ingress/#configure-a-tls-ingress-gateway содержит упомянутые фразыв блоке цитаты.Скорее всего, документация была обновлена, и приведенная выше ссылка стала менее актуальной.

0 голосов
/ 03 июня 2018

Нет, это неверно.

Этот путь является внутренним путем для istio прокси.

Например, при установке диаграммы Istio он создает прокси istio по умолчанию.Если вы перечислите развертывания, есть один, называемый istio-ingressgateway.

Если вы отредактируете / опишите его, вы получите:

  template:
    metadata:
      ....
      labels:
        istio: ingressgateway
....

volumeMounts:
        - mountPath: /etc/certs
          name: istio-certs
          readOnly: true
        - mountPath: /etc/istio/ingressgateway-certs
          name: ingressgateway-certs
          readOnly: true

....

volumes:
      - name: istio-certs
        secret:
          defaultMode: 420
          optional: true
          secretName: istio.default
      - name: ingressgateway-certs
        secret:
          defaultMode: 420
          optional: true
          secretName: istio-ingressgateway-certs

Теперь в объектах Gateway Istio вы привязываете свой шлюз к "Прокси ":

spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation

Внутри того прокси, где находятся сертификаты, и эти сертификаты происходят из секретных объектов.Как вы можете видеть в примере, который я вставил, раздел «тома» использует «секретные» объекты k8s.

...