構成ファイルがなく、helm でセットアップされていない Kubernetes クラスターを渡されました。作成者は、すべてを cmd ラインから作成しただけだと言っています。これは、nginx イングレス コントローラーを備えた単一の API サーバー用の小規模/新しいクラスターです。Kubernetes については十分に理解しており、新しい Web サーバーを追加することはできましたが、さらに深く理解して既存の構成を更新する必要があります。具体的には、nginx コントローラーで Prometheus メトリックを有効にしたいのですが、何も壊したくありません。
クラスターから既存の構成 (デプロイメント、サービスなど) を取得し、変更を加えて適用する標準的な方法はありますか? または、新しい yaml ファイルを作成せずに、既存の構成の個々の部分に更新をパッチする方法はありますか?
現在の構成は次のようにして取得できると理解しています。
kubectl get services -n nginx -o yaml
この出力には、creationTimestamp、uid などの追加フィールドがあり、削除する必要があると思います。または、出力をそのまま yaml ファイルに保存し、変更を加えて Prometheus を有効にしてから、構成をコントローラーに適用し直すことはできますか? kube-created フィールドは無視されますか? 検討すべき別のアプローチはありますか?
次に、これらの構成をリポジトリに保存する必要がありますか、それともこれが通常の方法ですか?
答え1
必要なものはほとんど揃っているようです。考慮すべき点はほんのわずかです:
kubectl -n <ns> get <CRD> -o yaml
出力には読み取り専用の識別子がいくつか含まれますが、それらの値を保持していても再定義することはできないため、プレーン ファイルとして保持するには適していません。- 使用
kubectl edit instead
- これらを任意の VCS に保持するべきか、それともその場で変更を加えるべきかについては、完全にあなた次第です。これについて議論しようとすると、おそらく炎上するでしょう。