Как я могу добавить root сертификаты в мой существующий файл truststore.jks, используя kubectl? - PullRequest
0 голосов
/ 18 февраля 2020

Я новичок в kubernetes и пытаюсь добавить root сертификаты в мой существующий файл truststore.jks секретов. Использование get secret mysecret -o yaml. Я могу просмотреть подробную информацию о файле склада доверенных сертификатов в mysecret, но не уверен, как заменить его новым файлом склада доверенных сертификатов или отредактировать существующий с последними сертификатами root. Может кто-нибудь помочь мне получить правильную команду, чтобы сделать это, используя kubectl?

Спасибо

1 Ответ

1 голос
/ 20 февраля 2020

Секрет - это объект, который содержит небольшое количество конфиденциальных данных, таких как пароль, токен или ключ. Существует официальная документация о Kubernetes.io: секреты .

Предполагается, что вы создали свой секрет:

$ kubectl create secret generic NAME_OF_SECRET --from-file=keystore.jks

Вы можете редактировать Ваш секрет, вызвав команду:

$ kubectl edit secret NAME_OF_SECRET

Он покажет вам YAML определение, подобное этому:

apiVersion: v1
data:
  keystore.jks: HERE_IS_YOUR_JKS_FILE
kind: Secret
metadata:
  creationTimestamp: "2020-02-20T13:14:24Z"
  name: NAME_OF_SECRET
  namespace: default
  resourceVersion: "430816"
  selfLink: /api/v1/namespaces/default/secrets/jks-old
  uid: 0ce898af-8678-498e-963d-f1537a2ac0c6
type: Opaque

Чтобы изменить его на новый keystore.jks вам нужно было бы закодировать его base64 и вставить вместо старого (HERE_IS_YOUR_JKS_FILE)

Вы можете получить строку в кодировке base64: cat keystore.jks | base64

После успешного редактирования вашего секрета дать вам сообщение: secret/NAME_OF_SECRET edited


Также вы можете посмотреть на этот StackOverflow ответ

Он показывает способ замены существующего configmap, но с небольшим количеством Модификация также может заменить секрет!

Пример ниже:

  • Создать секрет с keystore-old.jks:

    $ kubectl create secret generic my-secret --from-file=keystore-old.jks

  • Обновите его с помощью keystore-new.jks:

    $ kubectl create secret generic my-secret --from-file=keystore-new.jks -o yaml --dry-run | kubectl replace -f -


Обработка keystore.jks как файла позволяет использовать монтирование тома для смонтировать его в указанное c расположение внутри модуля.

Пример YAML ниже создает модуль с секретным ключом, смонтированным как том:

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
spec:
  containers:
  - name: ubuntu
    image: ubuntu
    command:
      - sleep
      - "360000"
    volumeMounts:
    - name: secret-volume
      mountPath: "/etc/secret"
  volumes:
  - name: secret-volume
    secret:
      secretName: NAME_OF_SECRET

Обратите особое внимание на c:

    volumeMounts:
    - name: secret-volume
      mountPath: "/etc/secret"
  volumes:
  - name: secret-volume
    secret:
      secretName: NAME_OF_SECRET

Эта часть будет смонтировать ваш секрет в директории / etc / secret /. Там он будет доступен с именем keystore.jks

Слово о смонтированных секретах:

Монтируемые секреты обновляются автоматически

Когда секрет, используемый в настоящее время в томе, обновляется, в конечном итоге также обновляются проецируемые ключи. Кубеле проверяет, является ли установленный секрет fre sh на каждом периоде c syn c.

- Kubernetes.io: Secrets .

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы по этому поводу.

...