Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes 便利情報 2020 / Kubernetes Useful Information 2020

9f9df80ab6551776b49c4ad9432ba1b7?s=47 Kazuki Suda
December 22, 2020

Kubernetes 便利情報 2020 / Kubernetes Useful Information 2020

9f9df80ab6551776b49c4ad9432ba1b7?s=128

Kazuki Suda

December 22, 2020
Tweet

Transcript

  1. Kubernetes Meetup Tokyo #37 / Lightning Talk (2020/12/22) SUDA Kazuki,

    Preferred Networks, Inc. @superbrothers Kubernetes 便利情報 2020
  2. @superbrothers SUDA Kazuki / @superbrothers ▶ Preferred Networks, Inc /

    エンジニア ▶ Kubernetes Meetup Tokyo, Prometheus Meetup Tokyo ほか、共同主催者 ▶ Cloud Native Ambassador (CNCF) ▶ 「Kubernetes実践⼊⾨」、「みんなのDocker/Kubernetes」共著書 ▶ 「⼊⾨ Prometheus」、「Kubernetes で実践するクラウドネイティブ DevOps」監訳書 2
  3. @superbrothers kubectl logs: デフォルトでログ出⼒するコンテナを指定する ▶ Pod に複数のコンテナが含まれる場合に、kubectl logs コマンドを実⾏すると次のように1つの コンテナを選択するようにとエラーになる

    ▶ メインのコンテナとサイドカーコンテナという構成の場合、おそらく多くの場合で確認したいログ は、メインのコンテナなので、これをいちいち毎回指定しないといけないというのが⾯倒 3 $ kubectl logs nginx error: a container name must be specified for pod nginx, choose one of: [app sidecar] 1.18
  4. @superbrothers kubectl logs: デフォルトでログ出⼒するコンテナを指定する 4 1.18 apiVersion: v1 kind: Pod

    metadata: name: nginx annotations: kubectl.kubernetes.io/default-logs-container: app spec: containers: - name: app image: nginx - name: sidecar image: busybox command: - sh - -c - 'while true; do echo $(date); sleep 1; done' “app” コンテナがデフォルトに指定されています ▶ Pod の annotation でデフォルトで 対象とするコンテナを指定できるようになりました!
  5. @superbrothers kubectl diff: 任意の diff ツールを代わりに使う+ ▶ kubectl diff コマンドは、v1.13

    から KUBECTL_EXTERNAL_DIFF 環境変数で任意の diff コマンドを代わりに使⽤できたが、フラグが使えなかった(デフォルトは “diff -u -N” ) ▶ v1.20 からフラグが使えるようになった 5 1.20 1.13 $ export KUBECTL_EXTERNAL_DIFF=“colordiff -u -N” $ kubectl diff -f nginx.yaml
  6. @superbrothers kubectl-convert プラグイン ▶ Kubernetes v1.20 で kubectl convert コマンドが削除されたが、

    この機能を引き続き使いたいという要望が多いためプラグインとして提供されている 6 1.20 $ go get -u k8s.io/kubernetes/cmd/kubectl-convert 廃止理由は、マニフェストの変換のために内部 API に依存する必要があるが、
 API サーバ外のコンポーネントはそれらに依存すべきではないという方針のためです。 API サーバに機能を実装するという案もありましたが、プラグインでの配布に決まりました。
  7. @superbrothers stern ツールのメンテナンスが再開! ▶ 複数 Pod のログをいい感じに⾒れる stern ツールは⻑い間メンテナンスされてなかったが、 コミュニティによりメンテンスが再開!

    7 # Build from source $ go get -u github.com/stern/stern # asdf tool $ asdf install stern latest # Homebrew $ brew install stern https://github.com/stern/stern でやってます! kubernetes使いは全員 stern を導⼊すべき | by Daisuke Maki