120

プロパティを管理するために K8S ConfigMap と Secret を使用しています。私の設計は非常にシンプルで、プロパティ ファイルを git リポジトリに保持し、Thoughtworks GO などのビルド サーバーを使用して、それらを ConfigMaps または Secrets (選択条件に応じて) として k8s クラスターに自動的にデプロイします。

現在、既存の ConfigMap と Secret を常に削除し、次のように更新するために新しいものを作成する必要があるのは、あまり効率的ではないことがわかりました。

  1. kubectl delete configmap foo

  2. kubectl create configmap foo --from-file foo.properties

現在のファイルを削除するよりも効率的で、1 つのステップを超える簡単な方法はありますか? 古い構成マップが削除され、新しい構成マップが作成されていない間にマウントしようとすると、これらの構成マップを使用するコンテナが危険にさらされる可能性があります。

4

5 に答える 5

7

既存の configmap のコピーを取得します。

kubectl get configmap foo -o yaml > foo.yaml

そして、変更を加えて適用コマンドを使用すると、これが機能するはずです。

kubectl apply -f foo.yaml

注: 次の問題のいずれかが発生した場合は、既存の構成マップから最新の「resourceVersion」を含めて、再試行してください。

「 configmaps "foo" で操作を実行できません: オブジェクトが変更されています。変更を最新バージョンに適用して、もう一度やり直してください」

于 2020-11-12T15:30:34.483 に答える