【Kubernetes】kubectl diffで差分チェック

スポンサーリンク

はじめに

Kubernetesで現在のリソースと適用したいマニフェストの差分を確認する方法を紹介します。

差分チェック

現在のリソースとの差分チェックはkubectl diffを利用します。

ファイルを指定して、現在のリソースとの差分を確認する場合は下記のコマンドになります。

kubectl diff -f <manifest file>

実際に使ってみると下記のようになります。

❯ kubectl diff -f deployment.yml
diff -u -N /var/folders/v7/jvzb8y655l37rx9g_tgmb3p80000gn/T/LIVE-225846615/apps.v1.Deployment.default.myapp /var/folders/v7/jvzb8y655l37rx9g_tgmb3p80000gn/T/MERGED-496287946/apps.v1.Deployment.default.myapp
--- /var/folders/v7/jvzb8y655l37rx9g_tgmb3p80000gn/T/LIVE-225846615/apps.v1.Deployment.default.myapp    2022-02-15 23:06:47.000000000 +0900
+++ /var/folders/v7/jvzb8y655l37rx9g_tgmb3p80000gn/T/MERGED-496287946/apps.v1.Deployment.default.myapp  2022-02-15 23:06:47.000000000 +0900
@@ -6,7 +6,7 @@
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp"},"name":"myapp","namespace":"default"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"myapp"}},"template":{"metadata":{"labels":{"app":"myapp"}},"spec":{"containers":[{"image":"nginx","name":"web-container","ports":[{"containerPort":80}],"resources":{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"250m","memory":"64Mi"}}}]}}}}
   creationTimestamp: "2022-02-15T14:04:48Z"
-  generation: 1
+  generation: 2
   labels:
     app: myapp
   managedFields:
@@ -109,7 +109,7 @@
   uid: f483bd8e-7f6a-4298-8253-022e7d32aee8
 spec:
   progressDeadlineSeconds: 600
-  replicas: 3
+  replicas: 5
   revisionHistoryLimit: 10
   selector:
     matchLabels:
@@ -137,8 +137,8 @@
             cpu: 500m
             memory: 128Mi
           requests:
-            cpu: 250m
-            memory: 64Mi
+            cpu: 500m
+            memory: 128Mi
         terminationMessagePath: /dev/termination-log
         terminationMessagePolicy: File
       dnsPolicy: ClusterFirst

本番クラスタなどに適用する前には、kubectl diffで差分を確認するのがいいと思います。

参考

タイトルとURLをコピーしました