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