Azure CLI を使用して高可用性 PostgreSQL データベースを AKS にデプロイする
このガイドでは、Azure CLI を使用して複数の Azure 可用性ゾーンにまたがる高可用性 PostgreSQL クラスターを AKS 上にデプロイします。
この記事では、PostgreSQL クラスターを Azure Kubernetes Service (AKS) 上で設定するための前提条件を示すとともに、デプロイ プロセス全体とアーキテクチャの概要を説明します。
重要
オープンソース ソフトウェアは、AKS のドキュメントとサンプル全体で説明されています。 デプロイするソフトウェアは、AKS サービス レベル アグリーメント、限定保証、Azure サポートから除外されます。 AKS と共にオープンソース テクノロジを使用する場合は、それぞれのコミュニティとプロジェクト保守担当者から受けられるサポート オプションを調べ、計画を策定してください。
たとえば、Ray の GitHub リポジトリでは、応答時間、目的、サポート レベルが異なる複数のプラットフォームについて説明しています。
Microsoft は、AKS 上に展開するオープンソース パッケージを構築する責任を負います。 その責任には、ビルド、スキャン、署名、検証、修正プログラム プロセスの完全な所有権と、コンテナー イメージ内のバイナリの制御権が伴います。 詳細については、AKS の脆弱性管理に関するページと「AKS のサポート範囲」を参照してください。
前提条件
- このクイックスタートは、Kubernetes の中核的な概念と PostgreSQL の基礎を理解していることを前提としています。
- Azure アカウント内のサブスクリプションに対する所有者またはユーザー アクセス管理者と共同作成者の Azure 組み込みロールが必要です。
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
次のリソースもインストールされている必要があります。
- Azure CLI バージョン 2.56 以降。
- Azure Kubernetes Service (AKS) プレビュー拡張機能。
- jq バージョン 1.5 以降。
- kubectl バージョン 1.21.0 以降。
- Helm バージョン 3.0.0 以降。
- openssl バージョン 3.3.0 以降。
- Visual Studio Code または同等の機能。
- Krew バージョン 0.4.4 以降。
- kubectl CloudNativePG (CNPG) プラグイン。
デプロイ プロセス
このガイドでは、以下の方法について説明します。
- Azure CLI を使用してマルチゾーン AKS クラスターを作成する。
- CNPG オペレーターを使用して高可用性 PostgreSQL クラスターとデータベースをデプロイする。
- Prometheus と Grafana を使用して PostgreSQL の監視を設定する。
- サンプル データセットを PostgreSQL データベースにデプロイする。
- PostgreSQL と AKS クラスターのアップグレードを実行する。
- クラスターの中断と PostgreSQL レプリカのフェールオーバーをシミュレートする。
- PostgreSQL データベースのバックアップと復元を実行する。
デプロイ アーキテクチャ
この図は、ある PostgreSQL クラスターのセットアップを示しています。1 つのプライマリ レプリカと 2 つの読み取りレプリカがあり、これらは CloudNativePG (CNPG) オペレーターによって管理されます。 このアーキテクチャによって、AKS クラスター上で実行される高可用性 PostgreSQL が実現し、ゾーンの 1 つが停止してもレプリカ間でフェールオーバーすることによって稼働を継続できます。
バックアップは Azure Blob Storage に格納されるため、プライマリ レプリカからのストリーミング レプリケーションで問題が発生した場合にデータベースを復元する別の方法として利用できます。
Note
データベース レベルでのデータ分離が必要なアプリケーションの場合は、postInitSQL コマンドなどを使用してデータベースを追加できます。 現在、CNPG 演算子で宣言型の方法でデータベースを追加することはできません。 CNPG 演算子の詳細を確認してください。
次のステップ
共同作成者
Microsoft では、この記事を保持しています。 最初の寄稿者は次のとおりです。
- Ken Kilty | プリンシパル TPM
- Russell de Pina | プリンシパル TPM
- Adrian Joian | シニア カスタマー エンジニア
- Jenny Hayes | シニア コンテンツ開発者
- Carol Smith | シニア コンテンツ開発者
- Erin Schaffer |コンテンツ開発者 2
- Adam Sharif | カスタマー エンジニア 2
Azure Kubernetes Service