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

Kubernetes 便利情報 2020 / Kubernetes Useful Information 2020

Kazuki Suda
December 22, 2020

Kubernetes 便利情報 2020 / Kubernetes Useful Information 2020

Kazuki Suda

December 22, 2020
Tweet

More Decks by Kazuki Suda

Other Decks in Technology

Transcript

  1. Kubernetes Meetup Tokyo #37 / Lightning Talk (2020/12/22)
    SUDA Kazuki, Preferred Networks, Inc.
    @superbrothers
    Kubernetes 便利情報 2020

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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 でデフォルトで
    対象とするコンテナを指定できるようになりました!

    View full-size slide

  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

    View full-size slide

  6. @superbrothers
    kubectl-convert プラグイン
    ▶ Kubernetes v1.20 で kubectl convert コマンドが削除されたが、
    この機能を引き続き使いたいという要望が多いためプラグインとして提供されている
    6
    1.20
    $ go get -u k8s.io/kubernetes/cmd/kubectl-convert
    廃止理由は、マニフェストの変換のために内部 API に依存する必要があるが、

    API サーバ外のコンポーネントはそれらに依存すべきではないという方針のためです。
    API サーバに機能を実装するという案もありましたが、プラグインでの配布に決まりました。

    View full-size slide

  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

    View full-size slide