Секрет - это объект, который содержит небольшое количество конфиденциальных данных, таких как пароль, токен или ключ. Существует официальная документация о 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 .
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы по этому поводу.