Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© 2023 Wantedly, Inc. 取っていてよかった Kubernetes のバックアップ 3-shake SRE Tech Talk #7 LT Oct. 12 2023 - Atsushi Tanaka @bgpat
Slide 2
Slide 2 text
© 2023 Wantedly, Inc. 自己紹介 https://www.wantedly.com/id/bgpat
Slide 3
Slide 3 text
© 2023 Wantedly, Inc. Kubernetes の バックアップは取っていますか?
Slide 4
Slide 4 text
© 2023 Wantedly, Inc. Kubernetes Resource の バックアップは取っていますか?
Slide 5
Slide 5 text
© 2023 Wantedly, Inc. バックアップがあって 助かった話をします
Slide 6
Slide 6 text
© 2023 Wantedly, Inc. トラブルシューティングの実例
Slide 7
Slide 7 text
© 2023 Wantedly, Inc. 問題発生 Cluster Addon のアップグレードをしたら Pod が起動しなくなった
Slide 8
Slide 8 text
© 2023 Wantedly, Inc. 前提となる構成 ● Argo CD で k8s manifest を Apply ● Secret は直接手動で設定 ● Velero で30分毎にリソースのバックアップを取得 ○ 取得したバックアップは Amazon S3 にアップロード
Slide 9
Slide 9 text
© 2023 Wantedly, Inc. 問題発生 Cluster Addon のアップグレードをしたら Pod が起動しなくなった
Slide 10
Slide 10 text
© 2023 Wantedly, Inc. とりあえず変更を元に戻す アップデートが原因なら戻せば直るはず 結果は revert してもエラーのまま
Slide 11
Slide 11 text
© 2023 Wantedly, Inc. 状況確認 Pod のエラーメッセージ 「Secret に入っている環境変数がないよ」 アップデート内容に Secret を消す変更はない Pod に Secret の Delete 権限はない
Slide 12
Slide 12 text
© 2023 Wantedly, Inc. エラーの考察 「Secret に入れていたはずの環境変数がない」というエラー ● Pod の env に secretRef は設定されている? → ある ● Secret は存在する? → ある ● Secret の data は存在する? → ない
Slide 13
Slide 13 text
© 2023 Wantedly, Inc. バックアップからリストアする バックアップを取っていたことを思い出す リストアを実行して Secret が戻ったことを確認 Pod を rollout restart して復旧
Slide 14
Slide 14 text
© 2023 Wantedly, Inc. まとめ
Slide 15
Slide 15 text
© 2023 Wantedly, Inc. まとめ ● バックアップを取っておくと安心 ● Argo CD を利用しても壊れることはある
Slide 16
Slide 16 text
© 2023 Wantedly, Inc. リストア時に困ったこと/気をつけること ● 既存のリソースがリストアできない ○ デフォルト設定では既存リソースがあるとスキップする ○ --existing-resource-policy update をつければ上書きできる ● リストアしても Argo CD に戻されてしまう ○ Argo CD の管理対象リソースは source の状態に戻そうとする ○ リストアする前に syncPolicy を消しておく ● リストアコマンドが思い出せない ○ 普段使わないコマンドは忘れがち
Slide 17
Slide 17 text
© 2023 Wantedly, Inc. (参考) Velero のインストール方法 ● 公式が公開している Helm Chart を使う ○ https://vmware-tanzu.github.io/helm-charts/ ○ configuration.backupStorageLocation と schedules を指定するだけで 自動バックアップも簡単に設定できる ● 別途 provider のための設定が必要 ○ AWS の場合は S3 Bucket の作成とアクセスするための IAM 設定が必要
Slide 18
Slide 18 text
© 2023 Wantedly, Inc. (参考) Velero のバックアップ容量 Wantedly のバックアップ総量は1TBに満たない ● 2019年から30分毎に取る運用 ● 今のクラスタの状態 ○ 500 Namespaces ○ 8,000 Pods ● PersistentVolume のバックアップは含んでいない ● 全てフルバックアップで取得
Slide 19
Slide 19 text
© 2023 Wantedly, Inc. https://www.wantedly.com/projects/522096