Kubernetesは、破裂しました.今何?
12211 ワード
もともと公開mccricardo.com .
我々は、いくつかのKubernetesクラスタを運営してきました.誰かが旅行し、キーボードに落ちると、いくつかのサービスを削除します.我々はすぐに必要だそれらをオンラインで入手してください.
いくつかのオプションがあります.
我々は、バージョン管理のすべてを持って-パイプラインやGitopsの和解は、それの世話をする
ECTDバックアップを復元します-すべてのKubernetesオブジェクトはETCDに保存されます.定期的にETCDクラスタデータをバックアップすることは、災害シナリオの下で救命者でありえます;
特定のKubernetesバックアップツールを使用してくださいVelero . 道具Velero それはKubernetesオブジェクトのバックアップを行うだけでなく、永続的なボリュームのバックアップを行うためにあなたのクラウドプロバイダに指示するので、素晴らしいです.それは、これはランプアップしています、そして、我々は現在何かを必要とします.バックアップetcd クラスタは常に安全な賭けですways そうすること.
しばらくの間、私はファンでしたEarliest Testable/Usable/Lovable MVPへの「反対」として.
これを念頭に置いて、我々が欲しいものは、何かがうまくいかない場合に安全ネット(スケート)を持つ速い方法です.幸運にもetcd 内蔵スナップショット機能を搭載.
バックアップ
我々は、いくつかのKubernetesクラスタを運営してきました.誰かが旅行し、キーボードに落ちると、いくつかのサービスを削除します.我々はすぐに必要だそれらをオンラインで入手してください.
いくつかのオプションがあります.
我々は、バージョン管理のすべてを持って-パイプラインやGitopsの和解は、それの世話をする
ECTDバックアップを復元します-すべてのKubernetesオブジェクトはETCDに保存されます.定期的にETCDクラスタデータをバックアップすることは、災害シナリオの下で救命者でありえます;
特定のKubernetesバックアップツールを使用してくださいVelero .
しばらくの間、私はファンでしたEarliest Testable/Usable/Lovable MVPへの「反対」として.
これを念頭に置いて、我々が欲しいものは、何かがうまくいかない場合に安全ネット(スケート)を持つ速い方法です.幸運にもetcd 内蔵スナップショット機能を搭載.
バックアップ
私たちは、バックアップをするためにETCD展開からいくつかのものを特定する必要があります.
spec:
containers:
- command:
- etcd
- --advertise-client-urls=https://172.23.0.3:2379
- --cert-file=/etc/kubernetes/pki/etcd/server.crt
- --client-cert-auth=true
- --data-dir=/var/lib/etcd
- --initial-advertise-peer-urls=https://172.23.0.3:2380
- --initial-cluster=backup-control-plane=https://172.23.0.3:2380
- --key-file=/etc/kubernetes/pki/etcd/server.key
- --listen-client-urls=https://127.0.0.1:2379,https://172.23.0.3:2379
- --listen-metrics-urls=http://127.0.0.1:2381
- --listen-peer-urls=https://172.23.0.3:2380
- --name=backup-control-plane
- --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
- --peer-client-cert-auth=true
- --peer-key-file=/etc/kubernetes/pki/etcd/peer.key
- --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
- --snapshot-count=10000
- --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
クライアントURL、CERTファイル、キーファイル、および信頼できるCAファイルの値を広告することで武装できます.
ETCDCTL_API=3 etcdctl --endpoints https://172.23.0.3:2379 \
--cacert="/etc/kubernetes/pki/etcd/ca.crt" \
--cert="/etc/kubernetes/pki/etcd/server.crt" \
--key="/etc/kubernetes/pki/etcd/server.key" \
snapshot save snapshotdb
{"level":"info","ts":1610913776.2521563,"caller":"snapshot/v3_snapshot.go:119","msg":"created temporary db file","path":"snapshotdb.part"}
{"level":"info","ts":"2021-01-17T20:02:56.256Z","caller":"clientv3/maintenance.go:200","msg":"opened snapshot stream; downloading"}
{"level":"info","ts":1610913776.2563014,"caller":"snapshot/v3_snapshot.go:127","msg":"fetching snapshot","endpoint":"https://172.23.0.3:2379"}
{"level":"info","ts":"2021-01-17T20:02:56.273Z","caller":"clientv3/maintenance.go:208","msg":"completed snapshot read; closing"}
{"level":"info","ts":1610913776.2887816,"caller":"snapshot/v3_snapshot.go:142","msg":"fetched snapshot","endpoint":"https://172.23.0.3:2379","size":"3.6 MB","took":0.036583317}
{"level":"info","ts":1610913776.2891474,"caller":"snapshot/v3_snapshot.go:152","msg":"saved","path":"snapshotdb"}
Snapshot saved at snapshotdb
安全であるために、バックアップはOKです.
ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshotdb
+----------+----------+------------+------------+
| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| 9b193bf0 | 1996 | 2009 | 2.7 MB |
+----------+----------+------------+------------+
ETCDを復元する
kube-apiserver 用途etcd 情報を保存して取得するには、IPを最初に停止する必要があります.これはあなたが持っている方法に依存しますkube-apiserver 設定.次にetcdを復元します.
ETCDCTL_API=3 etcdctl snapshot restore snapshotdb --data-dir="/var/lib/etcd-restore"
{"level":"info","ts":1610913810.5761065,"caller":"snapshot/v3_snapshot.go:296","msg":"restoring snapshot","path":"snapshotdb","wal-dir":"/var/lib/etcd-restore/member/wal","data-dir":"/var/lib/etcd-restore","snap-dir":"/var/lib/etcd-restore/member/snap"}
{"level":"info","ts":1610913810.599168,"caller":"mvcc/kvstore.go:380","msg":"restored last compact revision","meta-bucket-name":"meta","meta-bucket-name-key":"finishedCompactRev","restored-compact-revision":7655}
{"level":"info","ts":1610913810.60404,"caller":"membership/cluster.go:392","msg":"added member","cluster-id":"cdf818194e3a8c32","local-member-id":"0","added-peer-id":"8e9e05c52164694d","added-peer-peer-urls":["http://localhost:2380"]}
{"level":"info","ts":1610913810.6153672,"caller":"snapshot/v3_snapshot.go:309","msg":"restored snapshot","path":"snapshotdb","wal-dir":"/var/lib/etcd-restore/member/wal","data-dir":"/var/lib/etcd-restore","snap-dir":"/var/lib/etcd-restore/member/snap"}
我々は指示する必要があるetcd このデータフォルダーを使用して一度それを起動し、実行しているkube-apiserver バックオンライン
volumes:
- hostPath:
path: /var/lib/etcd-restore
type: DirectoryOrCreate
name: etcd-data
これは少し不気味に見えるが、それは簡単な方法(スケート再び)災害の場合の安全ネットを確保するために、より有能なソリューション(スクーター-)自転車を運転する時間を購入している.たとえば、自転車が十分に良いところまで来るかもしれません.
Reference
この問題について(Kubernetesは、破裂しました.今何?), 我々は、より多くの情報をここで見つけました
https://dev.to/mccricardo/kubernetes-gone-bust-now-what-2ck3
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
spec:
containers:
- command:
- etcd
- --advertise-client-urls=https://172.23.0.3:2379
- --cert-file=/etc/kubernetes/pki/etcd/server.crt
- --client-cert-auth=true
- --data-dir=/var/lib/etcd
- --initial-advertise-peer-urls=https://172.23.0.3:2380
- --initial-cluster=backup-control-plane=https://172.23.0.3:2380
- --key-file=/etc/kubernetes/pki/etcd/server.key
- --listen-client-urls=https://127.0.0.1:2379,https://172.23.0.3:2379
- --listen-metrics-urls=http://127.0.0.1:2381
- --listen-peer-urls=https://172.23.0.3:2380
- --name=backup-control-plane
- --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
- --peer-client-cert-auth=true
- --peer-key-file=/etc/kubernetes/pki/etcd/peer.key
- --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
- --snapshot-count=10000
- --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
ETCDCTL_API=3 etcdctl --endpoints https://172.23.0.3:2379 \
--cacert="/etc/kubernetes/pki/etcd/ca.crt" \
--cert="/etc/kubernetes/pki/etcd/server.crt" \
--key="/etc/kubernetes/pki/etcd/server.key" \
snapshot save snapshotdb
{"level":"info","ts":1610913776.2521563,"caller":"snapshot/v3_snapshot.go:119","msg":"created temporary db file","path":"snapshotdb.part"}
{"level":"info","ts":"2021-01-17T20:02:56.256Z","caller":"clientv3/maintenance.go:200","msg":"opened snapshot stream; downloading"}
{"level":"info","ts":1610913776.2563014,"caller":"snapshot/v3_snapshot.go:127","msg":"fetching snapshot","endpoint":"https://172.23.0.3:2379"}
{"level":"info","ts":"2021-01-17T20:02:56.273Z","caller":"clientv3/maintenance.go:208","msg":"completed snapshot read; closing"}
{"level":"info","ts":1610913776.2887816,"caller":"snapshot/v3_snapshot.go:142","msg":"fetched snapshot","endpoint":"https://172.23.0.3:2379","size":"3.6 MB","took":0.036583317}
{"level":"info","ts":1610913776.2891474,"caller":"snapshot/v3_snapshot.go:152","msg":"saved","path":"snapshotdb"}
Snapshot saved at snapshotdb
ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshotdb
+----------+----------+------------+------------+
| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| 9b193bf0 | 1996 | 2009 | 2.7 MB |
+----------+----------+------------+------------+
kube-apiserver 用途etcd 情報を保存して取得するには、IPを最初に停止する必要があります.これはあなたが持っている方法に依存しますkube-apiserver 設定.次にetcdを復元します.
ETCDCTL_API=3 etcdctl snapshot restore snapshotdb --data-dir="/var/lib/etcd-restore"
{"level":"info","ts":1610913810.5761065,"caller":"snapshot/v3_snapshot.go:296","msg":"restoring snapshot","path":"snapshotdb","wal-dir":"/var/lib/etcd-restore/member/wal","data-dir":"/var/lib/etcd-restore","snap-dir":"/var/lib/etcd-restore/member/snap"}
{"level":"info","ts":1610913810.599168,"caller":"mvcc/kvstore.go:380","msg":"restored last compact revision","meta-bucket-name":"meta","meta-bucket-name-key":"finishedCompactRev","restored-compact-revision":7655}
{"level":"info","ts":1610913810.60404,"caller":"membership/cluster.go:392","msg":"added member","cluster-id":"cdf818194e3a8c32","local-member-id":"0","added-peer-id":"8e9e05c52164694d","added-peer-peer-urls":["http://localhost:2380"]}
{"level":"info","ts":1610913810.6153672,"caller":"snapshot/v3_snapshot.go:309","msg":"restored snapshot","path":"snapshotdb","wal-dir":"/var/lib/etcd-restore/member/wal","data-dir":"/var/lib/etcd-restore","snap-dir":"/var/lib/etcd-restore/member/snap"}
我々は指示する必要があるetcd このデータフォルダーを使用して一度それを起動し、実行しているkube-apiserver バックオンラインvolumes:
- hostPath:
path: /var/lib/etcd-restore
type: DirectoryOrCreate
name: etcd-data
これは少し不気味に見えるが、それは簡単な方法(スケート再び)災害の場合の安全ネットを確保するために、より有能なソリューション(スクーター-)自転車を運転する時間を購入している.たとえば、自転車が十分に良いところまで来るかもしれません.Reference
この問題について(Kubernetesは、破裂しました.今何?), 我々は、より多くの情報をここで見つけました https://dev.to/mccricardo/kubernetes-gone-bust-now-what-2ck3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol