Before you start
始める前に、KubernetesとPostgreSQLに固有の用語を確認することが重要です。
Kubernetesの用語
ノード は、Kubernetesの仮想または物理的なワーカーマシンであり、ポッドを実行するために必要なすべてのサービスがコントロールプレーンノードによって管理されます。
Postgresノード
は、PostgreSQLワークロードの実行専用のKubernetesワーカーノードです。これは、
node-role.kubernetes.io
ラベルとテイントを proposed by CloudNativePG として適用することにより実現されます。
postgres ノードとも呼ばれます。
ポッド は、Kubernetesクラスターに展開できる最小のコンピューティングユニットであり、ネットワークとストレージを共有する1つ以上のコンテナで構成されます。
service は、ポッドのグループで実行されるアプリケーションをネットワークサービスとして公開し、アプリケーション全体のサービス検出、ロードバランシング、フェイルオーバーなどの重要な機能を標準化する抽象化です。
シークレット は、パスワード、アクセスキー、トークンなどの少量の機密データを保存し、ポッドで使用するように設計されたオブジェクトです。
ストレージクラス を使用すると、管理者は、プロビジョナーAWS EBSなど、再利用ポリシー、マウントオプション、ボリューム拡張などを含むクラスター内のストレージのクラスを定義できます。
永続ボリューム PVは、管理者によって手動でプロビジョニングされた、または ストレージクラス コントローラによって動的にプロビジョニングされたストレージを表すKubernetesクラスター内のリソースです。 PVは、 永続的なボリューム要求 を使用してポッドに関連付けられ、そのライフサイクルはそれを使用するポッドから独立しています。通常、PVはネットワークボリューム、特にパブリッククラウドでは。
*local persistent volume* (LPV) は、それを使用するポッドが実行されている特定のノードにのみ存在する永続ボリュームです。
永続的なボリューム要求 PVCは、サイズ、アクセスモード、または特定のストレージクラスを含むストレージの要求を表します。ポッドがノードリソースを消費する方法と同様に、PVCはPVのリソースを消費します。
名前空間 は、Kubernetesクラスターの論理的で分離されたサブセットであり、より広範な物理クラスター内の 仮想クラスター として見ることができます。名前空間を使用すると、管理者はプロジェクト、部門、チームなどに基づいて分離された環境を作成できます。
ロールベースセキュリティ としても知られる ロールベースのアクセス制御 RBACは、コンピューターシステムセキュリティで使用され、システムのネットワークとリソースへのアクセスを許可されたユーザーのみに制限する方法です。 Kubernetesには、名前空間とクラスターレベルでロールを制御し、特定のリソースと個人に関連付けるネイティブAPIがあります。
カスタムリソース定義 CRDは、Kubernetes APIの拡張機能であり、開発者は カスタムリソース と呼ばれる新しいデータ型とオブジェクトを作成できます。
オペレーター は、1つ以上のアプリケーションまたは特定のサービスを管理するときに通常人間のオペレーターが実行する手順を自動化するカスタムリソースです。オペレーターは、Kubernetesを支援して、リソースの定義された状態が観察された状態と常に一致するようにします。
kubectl
は、Kubernetesクラスターの管理に使用されるコマンドラインツールです。
CloudNativePGには、コミュニティでサポートされているKubernetesバージョンが必要です。詳細は Supported releases ページを参照してください。
PostgreSQLの用語
インスタンス
「IPアドレス」と「TCPポート」のペア通常は5432で実行およびリッスンするPostgresサーバープロセス。
プライマリー
読み取り操作と書き込み操作の両方を受け入れることができるPostgreSQLインスタンス。
レプリカ
クラスター内の唯一のプライマリインスタンスから複製するPostgreSQLインスタンスは、先行書き込みログWALレコードのストリームを読み取ることにより更新され続けます。レプリカは、 スタンバイ または セカンダリ サーバーとしても知られています。 PostgreSQLは、物理的ストリーミングレプリケーション非同期/同期とファイルベースのログ配布非同期に依存しています。
ホットスタンバイ
レプリカ が読み取り専用のワークロードを受け入れられるようにするPostgreSQL機能。
クラスター
高可用性HAクラスターとして使用されるため、単一のプライマリとオプションの任意の数のレプリカで構成されるPostgreSQLインスタンスのセット。
レプリカクラスター
選択したPostgreSQLクラスターからの継続的リカバリモードにあるCloudNativePG
Cluster
。通常はKubernetesクラスターの外部にあります。これは、プライベート、パブリック、ハイブリッド、およびマルチクラウドのコンテキストでのマルチクラスター展開を有効にする機能です。
指定されたプライマリ
別のPostgreSQLクラスターから継続的リカバリーにあり、レプリカクラスターがプライマリになった場合にプライマリになるように指定されているレプリカクラスター内のPostgreSQLスタンバイインスタンス。
スーパーユーザー
PostgreSQLでは、 スーパーユーザー は、LOGIN とSUPERUSER
の両方の特権を持つロールです。セキュリティ上の理由から、CloudNativePGは、ローカルのUnixドメインソケットを介してpeer
認証を介してpostgres ユーザーとしてpostgres
データベースに接続することにより、管理タスクを実行します。
先行書き込みロギングWALは、データベース管理システムのデータの整合性を保証する標準の方法です。
PVCグループ
CloudNativePGの用語におけるPVCグループは、同じPostgreSQLインスタンス、つまりPGDATAを含むメインボリューム
storage とWALのボリューム walStorage
に属する関連PVCのグループです。
RTO
「目標復旧時間」の頭字語で、アプリケーションに悪影響を与えることなくシステムを利用できない時間。
RPO
「目標復旧ポイント」の頭字語、ディザスターリカバリーシナリオに従った許容可能なデータ損失のレベルの計算。
クラウド用語
リージョン
クラウドの リージョン は、 アベイラビリティーゾーン で編成された分離された独立した地理的エリアです。リージョン内のゾーンの往復ネットワーク遅延はほとんどありません。
ゾーン
クラウドの *アベイラビリティーゾーン** ゾーン*としても知られるは、リソースを展開できるリージョンのエリアです。通常、アベイラビリティーゾーンは、データセンターまたは同じデータセンターの分離された建物に対応します。
次に何をするか
用語を理解したところで、選択したクラウド環境にオペレーターを展開する前に test CloudNativePG on your laptop using a local cluster を決定できます。