1
2

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 5 years have passed since last update.

kubectl get/delete all は"全"ではない

Last updated at Posted at 2019-10-24

#背景

kubectlって意外と長い。。。こんなすごく省略したものもあるけど https://containerized.me/600-kubectl-aliases-for-devops-ninjas/
うちではkubectlをkubeに+カスタムコマンドでデプロイとデストロイを使ってマネージしてます。
最近cronjobsを追加したりモニタリングを入れてfalse alertが出るようになってしまったので今まで使っていたコマンドを見直すことに。この過程でkubectl get/delete allが全部じゃないことに気付いたのでメモ。

##original destroy/deploy command

  1. "kube destroy namespace" - namespaceごと消す
kubectl delete -R -f path/to/the/file/
  1. "kube destroy namespace app" - アプリだけ消す
kubectl delete -R -f path/to/the/file/(appN)/
  1. "kube deploy namespace" - アプリの起動する順番を考慮してるのかとりあえずsleepしてたが、
    最近入れたモニタリングでこれだけではうまくいかずアプリNのfalse alertが出てしまうようになり見直すことに
kubectl apply -R -f path/to/the/file/namespace/
kubectl apply -R -f path/to/the/file/(appA)/
kubectl apply -R -f path/to/the/file/(appB)/
time.sleep(5)
kubectl apply -R -f path/to/the/file/(appN)/
...

##improved destroy command

destroyにing追加

1) kubectl delete namespace/
2) kubectl delete all,ing -l name=appN -n <namespace>

さらにdestroyにcm追加

2) kubectl delete all,ing,cm -l name=appN -n <namespace>

最終的に"kube destroy namespace app"はbackend appにlabelをつけて先に消すことに。これでfalse alertが出なくなった。

2) kubectl delete all,ing,cm -l type=backend -n <namespace>

##improved deploy command

deployにwait追加、これによってappB podのconditionがreadyになるまで待機させる。

3) kubectl wait --for=condition=ready --timeout=1h -l name=appB'

上だけでは不十分だったのでさらにdeployにuntil追加。

3) until kubectl wait -n <namespace> --for=condition=ready --timeout=1h -l name=appB ; do echo "waiting for pod" && sleep 5; done

##参考にしたもの

kubectl get/delete all ではなくkubectl api-resourcesを使う以下の方法が薦められてます。

kubectl api-resources --verbs=list --namespaced -o name \
  | xargs -n 1 kubectl get --show-kind --ignore-not-found -l <label>=<value> -n <namespace>

##学んだこと

  • kubectl get/delete all
  • kubectl api-resources
  • kubectl wait
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?