0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Kubernetes】開発中に知ってると便利な適用中のマニフェストを書き換えて適用する方法4つ + おまけ

Posted at

Kubernetesを使った開発やCI等で適用中のマニフェストの一部を変更する方法を4つまとめました。

1. kubectl editで直接書き換える

kubectl edit ~~~でエディタを開いて直接適用中のものを書き換えることができる

例: nginx-deploymentという名前のdeploymentの中のimagePullPolicyをAlwaysに書き換える。

kubectl edit deployments.apps nginx-deployment

でエディタが開くのでimagePullPolicyをAlwaysに書き換えて保存

2. 適用中のマニフェストを取得してきて、ローカルで書き換えたうえでapplyする方法

kubectl get ~~~ -o yamlでローカルに適用中のマニフェストを保存して書き換えた後、再適用する方法

例: nginx-deploymentという名前のdeploymentの中のimagePullPolicyをAlwaysに書き換える

# 適用中のマニフェストを取得
kubectl get deployments.apps nginx-deployment -o yaml > nginx-deployment.yaml

# バックアップを作成
cp nginx-deployment.yaml nginx-deployment-backup.yaml

nginx-deployment.yamlの中のimagePullPolicyをimagePullPolicy: Alwaysに書き換える

kubectl apply -f nginx-deployment.yaml

元に戻すときはバックアップを適用しなおす

kubectl apply -f nginx-deployment-backup.yaml

3. kubectl patchを使う

kubectl patch ~~~で上書きしたい設定をjsonで渡して書き換える。ワンライナーで書き換えることができる。

例: deployment/nginx-deploymentのnginxイメージをnginx:1.9.1に変える

kubectl patch deployment nginx-deployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"nginx","image":"nginx:1.9.1"}]}}}}'

4. kubectl setを使う

kubectl set image ~~~のように使い、image以外にはenv、resources、selector、serviceaccount、subjectが指定できる

例: deployment/nginx-deploymentのnginxイメージをnginx:1.9.1に変える

kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1

おまけ: 適当なenvを追加して強制再作成させる

Podの環境変数を書き換えることで強制的に再作成させる小技。

kubectl set env deployment/nginx-deployment RELOAD_DATE="$(date)"

imagePullPolicy: Alwaysになってないとimageをpullしなおさないので注意。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?