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

Kubeadmによるクラスタアップグレード・その光と闇

jyoshise
March 26, 2020

 Kubeadmによるクラスタアップグレード・その光と闇

11ページの動画URLはこちら
・Control plane nodeのアップグレード
 1台目
 https://asciinema.org/a/dfPtCHyOwemp1mhCX1NWnBNNC
 2台目・3台目
 https://asciinema.org/a/jh61g4ByKeZuvzsg1G7i1W1lX
・Kubeletのアップグレード
 https://asciinema.org/a/TiSL2yPoZp27mOUrZsEZPVThC
・Worker nodeのアップグレード
 https://asciinema.org/a/90sJGKBoPMz3mmogRgKDHCy98

jyoshise

March 26, 2020
Tweet

More Decks by jyoshise

Other Decks in Technology

Transcript

  1. View Slide

  2. • 吉瀬 淳一



    Japan Others
    Japan Others

    View Slide

  3. 本業よりもこっちのほうが有名になってしまったかもしれない

    View Slide


  4. View Slide

  5. のプロジェクト
    標準的な クラスタのセットアップと管
    理を行う
    年に 〜
    インフラのプロビジョニング、ネットワークの構成
    などは対象外
    インフラまで含めた自動化ツール( な
    ど)に利用されることも多い

    View Slide

  6. によるクラスタセットアップ手順( 構成の場合)
    • ノードを準備する
    • インストール
    • コンテナランタイムのインストール
    • ノード間通信の設定( など
    • 用の設定
    • のインストール(全ノード)
    • 用のロードバランサーの用意
    • 台目のコントローラーで
    • のインストール
    • 残りのコントローラーで
    • ワーカーノードで

    View Slide

  7. でデプロイされる構成( )

    View Slide

  8. でデプロイされる構成( )

    View Slide

  9. によるクラスタアップグレード
    パイセン、
    でクラスタアップグレード
    どうやるんすか?
    RTFM

    View Slide

  10. • マイナーバージョンのアップグ
    レードをサポート
    • 正しいバージョンのドキュメント
    を読みましょう
    • 順序などイマイチわかりにくいの
    で一度通読してから実行しましょ

    View Slide

  11. やってみる
    • のアップグレード
    • 1台目
    • 2台目・3台目
    • のアップグレード
    • のアップグレード
    ※動画ではコマンドを手で叩いていますが、 などでコード化し
    てから実行したほうがよいです。絶対。

    View Slide

  12. 簡単ですね。だがしかし

    View Slide

  13. 何度も失敗しています
    ハマり例
    • 先に と一緒に) のバージョンを上げてしまう
    • 新しい 用の設定は によって生成されるので、 を実行する
    前に のバージョンを上げてしまうと などが上がってこなくなる。
    • そのノードは潰して作り直し・・・
    • そもそもワークロードが対応していない
    • とか・・・

    • 道半ばでタイミング悪く が
    • 賞味期限を確認しとけ(
    • 自動更新設定しとけ
    • ステートフルな が謎の死を遂げる
    • の が死亡
    • 原因究明できず( 自体を再デプロイした)

    View Slide

  14. ワークロード 稼働中のリソース

    View Slide

  15. トラブルシューティングガイドも充実してきた
    • 裏を返せばそれだけトラブるというこ

    View Slide

  16. 壊れることを前提にしたほうがいいかもしれない
    なぜなら
    • 普段遭遇するようなちょっとしたトラブルは、アップグレード中にも発生しうる
    • 通常ならちょちょいとトラシューして修復できるようなことでも、アップグレード中に起き
    ると何がなんだかわからなくなる
    • ワークロードが増えれば増えるほど、バージョンアップの影響を事前に全て調査するのは困難
    • 自分が作ったアプリケーションはまだよい
    • カスタムコントローラーや を全て理解できますか?
    • そもそも ノードはアップグレードせずに、 アップグレード後に新規ノード追加→古い
    ノード削除を繰り返したほうがよいかも

    View Slide

  17. 一応クラスタ構成はバックアップされます

    View Slide

  18. 対策と課題
    • コントロールプレーン冗長化は必須
    • が 台しかないと復旧はかなりつらい
    • 台構成なら、 台死んでもそいつをクラスタから外してきれいにしてから す
    ることは容易
    • ワークロードはいつでも再デプロイできるようにしておく
    • つまり
    • ただし エコシステムの各種ツール( 、 など)を の対象にするのはけっこう大

    • 動的に生成されるリソースの再現が必要か
    • や が生成する とか
    • が取ってくる証明書とか
    • をどうやって救うか

    View Slide

  19. やはりクラスタまるっとバックアップとりたいかも
    • 例えば
    • 旧 今は ファミ
    リー)
    • クラスタ上の全てのリソースの定義と
    状態を ファイルとしてオブジェク
    トストレージに保存
    • もバックアップできる
    らしい
    • 別クラスタへの にも使える(クラス
    タ2面運用ができそう)
    • 他によさげなものがあれば教えてください

    View Slide

  20. まとめ
    • でのクラスタアップグレードは「うまくいけば」簡単
    • うまくいかなかったときのトラブルシューティングはつらい( に限らず)
    • 予防策とリカバリ策、両方準備しておきたい

    View Slide

  21. View Slide