Как я могу подать статический файл в локальную развернутую службу Kubernetes из моего файла контроллера? - PullRequest
0 голосов
/ 13 ноября 2018

Я определил файл развертывания:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ ... }}
  labels:
    app.kubernetes.io/name: {{ ... }}
    helm.sh/chart: {{ ... }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
    ...

Мой сервис реализует проверку JWT и, следовательно, требует открытого ключа. Могу ли я как-то указать в файле развертывания, чтобы локально сгенерированный файл ключа публикации предоставлялся моей службе?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

В результате я использовал секреты , предложенные @Crou для создания ключа:

$ kubectl create secret generic pub-key --from-file=./jwt-key.pub

, а затем подключил его к тому в моем развертывании yaml:

spec:
  volumes:
    - name: secret
      secret:
        secretName: pub-key
        defaultMode: 256
...
  containers:
      volumeMounts:
        - name: secret
          readOnly: true
          mountPath: /secret

и смог получить доступ к моему ключу на /secret/jwt-key.pub

0 голосов
/ 13 ноября 2018

Вы можете сделать это с configmaps. Карты конфигурации - это ресурсы, которые используются для развертывания отдельных файлов (в основном). В настоящее время я использую один для моей конфигурации кластеров nginx.

В вашем конфигурационном файле запишите содержимое вашего открытого ключа в поле данных, а затем скажите, что ваше развертывание использует этот конфигурационный файл и считывает его. Это очень похоже на монтирование тома только для одного файла. Возможно, вам придется обновить развернутый образ для чтения из смонтированного местоположения.

Найдите в nginx in kubernetes примеры того, как люди используют конфигурационные карты для развертывания своих конфигураций (в вашем случае - открытого ключа) в кластерах.

Для тестирования вы можете создать свою карту конфигурации с помощью этой команды kubectl create configmap public-conf --from-file=./your-public-key. Это создаст конфигурационную карту с именем public-conf. Вы можете запустить kubectl get configmap, чтобы увидеть только что созданный файл конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...