はじめに
既存の 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 するにも便利かと思います。