Ответ 1
Вы можете получить yaml из команды kubectl create configmap
и передать его в kubectl replace
, например:
kubectl create configmap foo --from-file foo.properties -o yaml --dry-run | kubectl replace -f -
Я использовал K8S ConfigMap и Secret для управления нашими свойствами. Мой дизайн довольно прост, он хранит файлы свойств в git-репо и использует сервер сборки, такой как Thoughtworks GO, для автоматического развертывания их в ConfigMaps или Secrets (при условии выбора) в моем кластере k8s.
В настоящее время я считаю неэффективным, что мне всегда нужно удалять существующие ConfigMap и Secret и создавать новые для обновления, как показано ниже:
kubectl delete configmap foo
kubectl create configmap foo --from-file foo.properties
Есть ли хороший и простой способ сделать шаг выше и эффективнее удаления текущего? потенциально то, что я делаю сейчас, может поставить под угрозу контейнер, который использует эти конфигурации, если он попытается смонтировать, когда старый файл конфигурации удален, а новый еще не создан.
Заранее спасибо.
Вы можете получить yaml из команды kubectl create configmap
и передать его в kubectl replace
, например:
kubectl create configmap foo --from-file foo.properties -o yaml --dry-run | kubectl replace -f -
Для дальнейшего использования kubectl replace
теперь очень удобный способ для достижения этой цели.
kubectl replace -f some_spec.yaml
обновить полный файл конфигурации (или другие объекты)
Смотрите документацию и примеры прямо здесь
Скопируйте/вставьте из справки:
# Replace a pod using the data in pod.json.
kubectl replace -f ./pod.json
# Replace a pod based on the JSON passed into stdin.
cat pod.json | kubectl replace -f -
# Update a single-container pod image version (tag) to v4
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
# Force replace, delete and then re-create the resource
kubectl replace --force -f ./pod.json
Для небольших изменений в configMap
используйте edit
kubectl edit configmap <cfg-name>
Это откроет configMap в редакторе vi
. Внесите изменения и сохраните их.