etcd は、すべての Kubernetes クラスター データのバックエンド データベースとして使用される、一貫性があり可用性の高いキー値ストアです。非常に重要なコンポーネントですので、将来的に問題が発生した場合にできるだけ早く復元できるようにバックアップする必要があります。 1.etcdの基本的な使い方以下はKubernetes実践環境Killercoda[1]を使用した実践例です。 GitHub アカウントを使用して、現在最新バージョンの Kubernetes を使用している Killercoda プラットフォームにログインします。 キラーコーダプラットフォーム etcd cli クライアントもシステムにインストールされます。インストールされていない場合は、次のコマンドを実行してインストールできます。 etcdcli クライアントは証明書を使用して etcd と通信します。 kubeadm モードでデプロイされた Kubernetes は、yaml ファイルを通じて etcd 証明書パスを表示できます。 etcd コンポーネント yaml --initial-advertise-peer-urls: クラスターは相互に通知します。これはアナウンスメント アドレスであり、ノード ポートを宣言します。 2380 はクラスターで使用され、2379 はクライアントによって使用されます。 または、kubectl get pods etcd-controlplane -o yaml -n kube-system を使用して証明書パス情報を表示します。以下のように表示されます。 etcd コンポーネント yaml 2. Nginxを作成する複数のレプリカを持つ nginx デプロイメントを作成するには、次のコマンドを使用します。これらのレプリカは、etcd データの回復を確認するために使用されます。 新しくデプロイされた Pod が実行されていることを確認します。 ポッドのステータスを表示 3. Etcdデータのバックアップetcd バックアップ用のバックアップ ディレクトリ mkdir etcd-backup を作成し、次のコマンドを実行して etcd をバックアップします。 実行後、次の図が表示されます。 etcdのバックアップ 4. バックアップデータの検証次のコマンドを実行して、新しいバックアップ データからキー リストと詳細を取得します。 コマンドを実行すると、次の図が表示されます。 5. バックアップをクラスターに復元する(1)ここでは、以前に作成したnginxデプロイメントを削除し、バックアップを復元してnginxデプロイメントを復元します。 (2)バックアップからデータを復元し、以下のコマンドを実行します。 --data-dir: データが復元されるディレクトリを指定します。 上記のコマンドを実行すると、以下に示すように、指定されたディレクトリに etcd データ ファイルが生成されます。 バックアップの復元 (3)etcdデータを更新するために、実行中のKubernetesコンポーネントをすべて停止する必要があります。これを実現するために、Kubernetes コンポーネントのマニフェスト ファイルを /etc/kubernetes/manifests/ フォルダーに配置しました。このファイルを一時的にこのパスから移動し、kubelet によってこれらのポッドが自動的に削除されます。 /etc/kubernetes/manifests/ ディレクトリ内のコンポーネント yaml ファイルを削除し、コンテナを削除した後に削除を開始します。 crictl ps -a で表示できます。 (4)コンポーネントコンテナが削除されるのを待った後、etcd.yamlコンポーネントのetcd-data内のhostPathパスパラメータを変更する必要があります。 /var/lib/restore はデータ復元用のパスです。 (5)k8sクラスタが正常かどうかを確認する
6. CKA本試験解説CKA 実問題 - etcd のバックアップと復元 中国の分析: このプロジェクトでは構成環境を変更する必要はありませんが、このプロジェクトを実行する前に、最初のノードに戻っていることを確認してください。 etcdの問題は実際の試験では問4になります。使用するクラスターは実際の試験の前問のクラスター、つまり問題3のmk8sなので、クラスターを切り替える必要はありません。 タスク \ (1) まず、https://127.0.0.1:2379 で実行されている既存の etcd インスタンスのスナップショットを作成し、そのスナップショットを /srv/data/etcd-snapshot.db ファイルに保存します。 (2)特定のインスタンスのスナップショットの作成は、数秒以内に完了すると予想されます。操作がハングしているように見える場合、コマンドに問題がある可能性があります。 CTRL + C を使用して操作をキャンセルし、再試行してください。 (3)次に、/var/lib/backup/etcd-snapshot-previous.dbにある既存の以前のスナップショットを復元します。 (4)etcdctl経由でサーバーに接続するために、次のTLS証明書とキーが提供されます。
etcdのバックアップと復元の公式ドキュメント[2](1)バックアップ export ETCDCTL_API=3 を使用せずに ETCDCTL_API=3 を使用する場合は、以下の各 etcdctl コマンドの前に ETCDCTL_API=3 を追加します。 コマンドプロンプトに「アクセスが拒否されました」と表示される場合は、十分な権限がないことを意味します。コマンドの先頭に sudo を追加するだけです。 まず、テスト環境に質問に記載されているディレクトリ /srv/data/ があるかどうかを確認します。そうでない場合は、自分で作成する必要があります。 バックアップする場合、etcdctl クライアントはタイトルに示されている 3 つの証明書を使用して証明書を取得する必要があります。 バックアップされたデータを確認するには、etcdctl --write-out=table snapshot status /srv/data/etcd-snapshot.db を使用できます。 (2)復旧作業 まず、復元したデータを保存するディレクトリを作成します。 復元操作を実行し、復元データの保存ディレクトリを指定します。 /etc/kubernetes/manifests/ を一時ディレクトリ tmp に移動します。 /home/tmp ディレクトリの etcd.yaml ファイルを編集し、etcd-data の hostPath を /var/lib/restore に変更します。 /home/tmp ディレクトリ内のコンポーネント ファイルを /etc/kubernetes/manifests/ に移動します。 (3)検証作業 k8s クラスターが正常であることを確認します。 この時点で、etcd のバックアップと復元操作全体が完了します。 参考文献:
|
<<: RocketMQはKosmosをベースにAZレベルの高可用性を実現
>>: Linode Windows VM への「ローカル」アクセスを取得する方法
[[428823]]みなさんこんにちは、Bingheです〜〜 JVM の実装では、JVM のパフォー...
Google 最適化を行う友人は、Google ウェブマスター ツールをよく知っているはずです。Go...
日本サーバー:日本のコンピュータルームのハードウェア条件は非常に良好で、国際輸出帯域幅が大きく、中国...
インターネットの急速な発展と電子商取引産業の台頭により、ますます多くの人々がSEOに触れ、理解し始め...
香鞋嬌といえば、多くの人は「年間3億杯以上売れ、カップをつなげると地球を一周できる」という宣伝文句を...
いわゆるセカンドレベルドメイン名とは、xxx.com/xxx.html のようなドメイン名のことで、...
1. 中国が初めて電子商取引規制法を施行:価格競争は収束すると予想される国内の電子商取引分野における...
SEOキーワードランキングとユーザーエクスペリエンスのどちらが重要でしょうか?この記事はウェブサイト...
検索エンジンのクロール、保存、クエリの動作は一見単純に見えますが、各リンクの基礎となるアルゴリズムは...
2020年春、COVID-19パンデミックが拡大するにつれ、世界中で何千万人もの人々がリモートワーク...
しばらく SEO に携わってきた SEO 担当者は、これらのことをすでにマスターしているかもしれませ...
国家ポルノ・違法出版取締局が報告した8件の事件(表参照)のうち、黒竜江省ハルビン市でわいせつな資料を...
分散システムにはさまざまな種類があり、非常に広範囲にわたります。システムの種類によって特性が異なりま...
フレンドリーなリンクは、かなりの量のトラフィックをもたらすだけでなく、さらに重要なことに、Web サ...
ITM Services LLC / DBA、vpsRus は 2000 年に設立され、米国フロリダ...