はじめるインストールの一環として、次の操作を実行したことを確認してください。
詳細なインストール手順については、以下を参照してください: Cloud Native PostgreSQL - CrunchyData PGO: 5 分で始める このチュートリアルでは、kustomize/postgres で提供されている例を基に構築していきます。 YAML マニフェスト内のネストされたオブジェクトを参照する場合は、 を使用します。 kubectl explain に似た形式。たとえば、この yaml ファイル内の最も深い要素を参照する場合は、次のようになります。 仕様: spec.hippos.appetite と言います。 kubectl explain はあなたの味方です。 kubectl explain postgrescluster を使用して、postgrescluster.postgres-operator.crunchydata.com カスタム リソース定義をイントロスペクトできます。 CRD リファレンスもご覧ください。 CRDS
PGO (Postgres Operator) をインストールしたら、Postgres クラスターの作成を始めましょう。 Postgres クラスターの作成Postgres クラスターの作成は非常に簡単です。 kustomize/postgres ディレクトリ内の例を使用する場合、次のコマンドを実行するだけです。 kubectl apply -k kustomize / postgres PGO は、postgres-operator 名前空間に hippo という名前の単純な Postgres クラスターを作成します。 postgresclusters.postgres-operator.crunchydata.com カスタム リソースで kubectl describe を使用して、Postgres クラスターのステータスを追跡できます。 kubectl -n postgres - オペレーターはpostgresclusters を説明します。 postgres - 演算子。 クランチデータ。 com カバ 次のコマンドを使用して、Postgres Pod のステータスを追跡できます。 - - セレクター= postgres - 演算子。 クランチデータ。 com / cluster = hippo 、 postgres - 演算子。 クランチデータ。 com / インスタンス 何が起こったのですか?PGO は、kustomize/postgres ディレクトリにある Kustomize マニフェストで提供される情報に基づいて Postgres クラスターを作成します。 kustomize/postgres/postgres.yaml ファイルを調べて、何が起こっているのかをよりよく理解しましょう。 apiVersion : postgres - 演算子。 クランチデータ。 com / v1beta1 先ほど kubectl apply コマンドを実行したとき、Kubernetes に PostgresCluster カスタム リソースが作成されました。 PGO は、新しい PostgresCluster リソースが追加されたことを検出し、Kubernetes で Postgres を実行するために必要なすべてのオブジェクトの作成を開始します。 他に何が起こりましたか? PGO は metadata.name から値を読み取り、Postgres クラスターに hippo という名前を付けました。さらに、PGO は、それぞれ spec.image と spec.backups.pgbackrest.image の値を調べることで、Postgres と pgBackRest にどのコンテナーを使用するかを認識します。 spec.postgresVersion の値は、使用している Postgres のメジャー バージョンを PGO が追跡するのに役立つため重要です。 PGO は、マニフェストの spec.instances セクションを通じて、作成する Postgres インスタンスの数を認識します。名前はオプションですが、instance1 という名前を付けることにしました。クラスターの初期化中に複数のレプリカとインスタンスを作成することもできますが、これについては、HA Postgres クラスターのスケーリングと作成方法について説明するときに詳しく説明します。 PostgresCluster カスタム リソースの非常に重要な部分は、dataVolumeClaimSpec セクションです。これは、Postgres インスタンスが使用するストレージについて説明します。これは、Persistent Volume Claims をモデルにしています。 spec.instances.dataVolumeClaimSpec.storageClassName を指定しない場合は、Kubernetes 環境のデフォルトのストレージ クラスが使用されます。 永続ボリュームクレーム
Postgres クラスターの作成の一環として、バックアップ アーカイブに関する情報も指定しました。 PGO は、テラバイト規模のバックアップを処理するように設計されたオープンソースのバックアップおよびリカバリ ツールである pgBackRest を使用します。クラスターの初期化の一環として、バックアップとアーカイブ (先行書き込みログまたは WAL) を保存する場所を指定できます。このチュートリアルの災害復旧セクションでは、PostgresCluster 仕様のこの部分についてさらに詳しく説明し、Amazon S3、Google GCS、Azure Blob ストレージにバックアップを保存する方法について説明します。 Postgres クラスタへの接続Postgres クラスターを作成することは 1 つの方法です。それに接続するのは別のことです。 PGO が Postgres クラスターに接続する方法を見てみましょう。 舞台裏: サービス、シークレット、TLS PGO は、Postgres データベースに接続するための安定したエンドポイントを提供するために、一連の Kubernetes サービスを作成しました。これらのエンドポイントを使用すると、アプリケーションにデータへの接続を一貫して維持する方法を簡単に提供できます。利用可能なサービスを確認するには、次のコマンドを実行します。 kubectl -n postgres -operator get svc - - セレクター= postgres -operator 。 クランチデータ。 com / クラスター= カバ 次のような結果が生成されます。 名前タイプクラスタ- IP 外部- IP ポート( S ) 年齢 これらのサービスのほとんどについては心配する必要はありません。Postgres クラスターの全体的な健全性を管理するために用意されているからです。データベースに接続するために、関心のあるサービスは hippo-primary と呼ばれます。 PGO のおかげで、その情報は Secret に記録されるため、この点について心配する必要もありません。 Postgres クラスターが初期化されると、PGO はアプリケーションがアクセスできるデータベースと Postgres ユーザーをブートストラップします。この情報は、-pguser- パターンで名前が付けられた Secrets に保存されます。私たちの hippo クラスターでは、この Secret は hippo-pguser-hippo と呼ばれます。このシークレットには、アプリケーションを Postgres データベースに接続するために必要な情報が含まれています。
すべての接続は TLS 経由で行われます。 PGO は独自の証明機関 (CA) を提供し、アプリケーションを Postgres クラスターに安全に接続できるようにします。これにより、盗聴防止機能を提供し、MITM 攻撃を防ぐ Postgres の検証フル「SSL モード」を使用できるようになります。独自の CA を使用するオプションもあります。これについては、このチュートリアルの後半の「クラスターのカスタマイズ」セクションで説明します。 verify-full「SSL モード」
サービスタイプの変更 デフォルトでは、PGO は ClusterIP サービス タイプでサービスをデプロイします。データベースを公開する方法に応じて、異なるサービス タイプを使用するようにサービスを変更する必要がある場合があります。 サービスタイプ
PGO によって管理されるサービスは、次のプロパティから変更できます。
たとえば、NodePort サービスを使用するように Postgres マスター ノードを設定するには、マニフェストに次のコードを追加します。 仕様: 私たちの Hippo クラスターの場合は、次のようになります。例: kubectl -n postgres -operator get svc - - セレクター= postgres -operator 。 クランチデータ。 com / クラスター= カバ 次のようなものが生成されます。 名前タイプクラスタ- IP 外部- IP ポート( S ) 年齢 (サービスを外部に公開し、TLS 検証に依存する場合は、PGO のカスタム TLS 機能を使用する必要があることに注意してください)。 アプリを接続このチュートリアルでは、オープンソースの ID 管理アプリケーションである Keycloak に接続します。 Keycloak は Kubernetes にデプロイでき、Postgres データベースによってサポートされます。 Postgres Operator の例のリポジトリに Keycloak と PostgresCluster をデプロイする例が提供されていますが、次のリストでは、すでに実行中の hippo クラスターを使用してデプロイします。 キークローク
KeycloakとPostgresClusterのデプロイ例
公式リストは現地の状況に適さない可能性があります。参照: クラウドネイティブ PostgreSQL - CrunchyData PGO: 5 分で始める kubectl apply - - ファイル名= - << EOF リストのこの部分に注意してください: - 名前: DB_ADDR 上記のリストは、これらすべての値が hippo-pguser-hippo Secret からどのように派生されるかを示しています。つまり、接続資格情報を知る必要はなく、安全に渡す必要もありません。資格情報はアプリケーションで直接利用できます。 このアプローチを使用すると、PGO が Postgres をどのようにデプロイするかを事前に知らなくても、アプリケーションを Postgres に接続された GitOps パイプラインに直接結び付けることができます。アプリケーションに必要なすべての情報が Secret に伝播されます。 Postgres クラスタの削除場合によっては、クラスターを削除する必要があることがあります。公式の例に従っている場合は、次のコマンドを実行するだけで Postgres クラスターを削除できます。 kubectl delete -k kustomize / postgres PGO はクラスターに関連付けられているすべてのオブジェクトを削除します。 データ保持については、PVC の保持ポリシーによって異なります。 Kubernetes がデータ保持を管理する方法の詳細については、ボリューム再利用に関する Kubernetes ドキュメントを参照してください。 PVC保持ポリシー
|
<<: インターネットの巨人「クラウド」の最も暗い瞬間:退化、降格、そして大量の顧客喪失
>>: マルチクラウドは DevOps の基礎となる準備ができていますか?
現在、Baidu はアルゴリズムを更新しており、多くのウェブマスターが危機感を抱いています。彼らは、...
最近、iSoftStone Hongmeng Ecosystem R&D チームは、スマート...
Leshan Onlineの運営を始める前に、私は比較的詳細な調査を行いました。人口数百万人の楽山市...
このオンラインストアは、0.2元の価格で毎月37万個を販売しています。2つの「スワイプ方式」には...
ウェブサイト編集者は、ウェブサイトの全体的なコンテンツとメインスタイルを作成します。ウェブサイトが訪...
[51CTO.com からのオリジナル記事] 25 年前、インターネットが人々の生活に入り込みました...
基本情報は表2-2に示します。 ▼表2-2 Knative基本情報Knative の非常に重要な目標...
Sharktech (DDoS サーバーの有名な米国ブランド) は今月、特別価格のサーバーをいくつか...
unesty.net は、本日限定の特別なサイバーマンデー プロモーションを開始しました。すべての ...
name.com は 9 月下旬にドメイン名移転割引を提供します。新規登録ユーザーは、transfe...
最近、百度は力を見せつけています。6月22日には大量のウェブサイトを禁止し、6月28日には別の一群の...
3月29日、国家発展改革委員会は「第12次5カ年計画期間における次世代インターネットの開発と建設に関...
[[395299]]デジタル中国の構築は第14次5カ年計画の重要な方向性となっている。デジタル工業化...
大規模データセンターにおけるネットワーク構成の自動配布、運用・保守効率の向上、ハイブリッドクラウドネ...
最近、立ち上げたばかりのいくつかの新しいサイトが、次々と伝説のサンドボックスを経験しました。各サイト...