GCP上の2つのK8Sクラスタの設定差異をdiffで確認する
はじめに
既存の GKE ( Google Kubernetes Engine )クラスタが 2 つありました。
両者とも前任者が手作業で作成していましたが、すでに設定に乖離があることが想定されていました。
乖離を埋めるために、両者にどれだけの違いがあるのか確認しておきたいと思いました。
差異を確認するために工夫した方法を掲載します。
検証環境
GCP 上の K8S クラスタの設定を抜き出す
GCP 上の Kubernetes クラスタの設定を抜き出すために、 gcloud
コマンドが利用できます。
例えば以下のような環境に Kubernetes クラスタが作成されていたとします。
- プロジェクト ID :
GCP_MY_PROJECT_ID
- ゾーン名 :
asia_northeast1_b
- Kubernetes クラスタ名 :
GCP_MY_CLUSTER_NAME
この Kubernetes クラスタの設定を抜き出すには、以下のコマンドを実行します。
ファイルは YAML 形式で出力されます。
環境が2つあれば、リダイレクト先のファイルをそれぞれ cluster-a-info.yaml
、 cluster-b-info.yaml
のように別のものに分けて出力しておきます。
YAML ファイルの要素をソート
出力された YAML ファイルをそのまま diff
すると、大量に差分が出てきてしまいます。
YAML の各属性情報がソートされていないためです。
YAML の属性情報をソートするために、 yaml-sorter
というコマンドが便利です。
過去に取り上げているので詳細はそちらを参照ください。
差分を確認
最後に 2 つのファイルを diff
します。
単純に diff
してもいいですが、僕は Vim が使い慣れているので Vim の機能である vimdiff
コマンドを使いました。
差分が左右に表示され、見やすいです。
結構、設定の違いがありますね(汗)
ひとこと
yaml-sorter
は YAML 形式のマニフェストファイルや設定ファイルなどを pretty するにも便利かと思います。
ディスカッション
コメント一覧
まだ、コメントがありません