![GKE クラスタがデータを失う](https://rvso.com/image/761000/GKE%20%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%81%8C%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%A4%B1%E3%81%86.png)
私は GCP の初心者なので、無知な点はご容赦ください。
データベース アプリケーションを実行している 3 ノードの GKE クラスターがあります。各ノードには 100 GB の標準永続ディスクが割り当てられています。ただし、起動するとデータが失われ、設定されていたファイアウォール ルールがデフォルトにリセットされることが時々あります (8 月以降、少なくとも 3 回発生しています)。
どうすればいいですか:
- DB内のデータが消去されないようにする
- ファイアウォールルールがリセットされないようにする
これはインフラのアップグレードによるものでしょうか?
答え1
質問の根本的なトピックとしてこの回答をコミュニティ ウィキとして投稿すると、範囲が少し広くなる可能性があります。
自由に拡張してください。
GKE
クラスターがデータを失う可能性があるのはなぜですか?
アプリケーション/ワークロードがGKE
クラスターに正確にどのようにデプロイされたかに関する具体的な情報がなければ、実際の問題を正確に特定することが困難になる可能性があります。
以下の点に言及する価値があります:
- データの保存が期待されるワークロード(データベースなど)では、
Persistent Volumes
ノードに障害が発生した場合、そのノードに保存されたデータはPV
別のエンティティに保存されるため、失われません。
PersistentVolume
リソースは、クラスター内の永続ストレージを管理するために使用されます。 ではGKE
、 はPersistentVolume
通常、永続ディスクによってバックアップされます。
Persistent Disks と Cloud SQL を使用して GKE に WordPress をデプロイするためのガイドがあります。これは、PVC
(Persistent Disk) を使用してワークロードをデプロイする例として使用できます。
Pods
何も構成されていないに保存されているデータは、Volumes
ポッドの再作成時に失われます。ノード ブート ディスクに保存されたデータは、
GKE
更新後も保持されません。
ノードVMのブートディスクの変更は、ノードの再作成後も保持されません。ノードの再作成後も変更を保持するには、DaemonSet を使用します。
Cloud.google.com: Kubernetes Engine: ドキュメント: 方法: ノードの自動アップグレード: 概要
質問に関連して
私は GCP の初心者なので、無知な点はご容赦ください。
GCP
およびの公式ドキュメントを参照することをお勧めしますGKE
。多くの情報/ガイドや例が見つかります。
各ノードには 100 GB の標準永続ディスクが割り当てられています。
このディスクは、ノードのブート ディスクとして特別に使用されGKE
、データを保存する場所として使用しないでください。Persistent Volumes
前述のように使用することも、ローカル SSD を選択することもできます。詳細については、以下のリンクを参照してください。
しかし、時々(8月以降少なくとも3回)、起動するとデータが失われていることに気づきます。
GKE
クラスターとノードをオフにすることはできません。実行できるのは、ノード プール内のノードの数を減らす (スケールする) ことです。それに接続することを意味していますか?
設定されていたファイアウォール ルールはすべてデフォルトにリセットされます。
ノードのファイアウォール ルールを再構成しないでください。代わりに、(Web UI) -> ->GKE
にある GCP ファイアウォールを使用する必要があります。ノードのアップグレードまたは障害によるノードの再作成により、ファイアウォール ルールがリセットされます。Cloud Console
VPC Network
Firewall
どうすればいいですか:
- DB内のデータが消去されないようにする
- ファイアウォールルールがリセットされないようにする
これはインフラのアップグレードによるものでしょうか?
正確なユースケースに応じて、クラスタGCE
の代わりにインスタンスを使用することを検討できますGKE
。GKE
は、コンテナ化されたワークロードを実行するように設計されたマネージド Kubernetes クラスタであり、その一部の部分は Google によって管理されます (たとえば、コントロール プレーンなど)。
インフラストラクチャのアップグレードに関しては、以下のリンクを参照して、クラスターをアップグレードすると何が起こるかを確認してください。
- Cloud.google.com: Kubernetes Engine: ドキュメント: コンセプト: クラスタのアップグレード
- Cloud.google.com: Kubernetes Engine: ドキュメント: コンセプト: 方法: クラスタのアップグレード
追加参考資料:
- Kubernetes.io
- Cloud.google.com: SQL
DB
<- GCP で実行する代替ソリューション