始める前に

始める前に、KubernetesとPostgreSQLに固有の用語を確認することが重要です。

Kubernetesの用語

Node

ノード は、Kubernetesの仮想または物理的なワーカーマシンであり、ポッドを実行するために必要なすべてのサービスがコントロールプレーンノードによって管理されます。

Postgres Node

Postgresノード は、PostgreSQLワークロードの実行専用のKubernetesワーカーノードです。これは、 node-role.kubernetes.io ラベルとテイントを proposed by CloudNativePG として適用することにより実現されます。 postgres ノードとも呼ばれます。

Pod

ポッド は、Kubernetesクラスターに展開できる最小のコンピューティングユニットであり、ネットワークとストレージを共有する1つ以上のコンテナで構成されます。

Service

service は、ポッドのグループで実行され、アプリケーション全体のサービス検出、ロードバランシング、フェイルオーバーなどの重要な機能を標準化するアプリケーションをネットワークサービスとして公開する抽象化です。

Secret

シークレット は、パスワード、アクセスキー、トークンなどの少量の機密データを保存し、ポッドで使用するように設計されたオブジェクトです。

Storage Class

ストレージクラス を使用すると、管理者は、プロビジョナーAWS EBSなど、再利用ポリシー、マウントオプション、ボリューム拡張などを含むクラスター内のストレージのクラスを定義できます。

Persistent Volume

永続ボリューム PVは、管理者によって手動でプロビジョニングされた、または ストレージクラス コントローラによって動的にプロビジョニングされたストレージを表すKubernetesクラスター内のリソースです。 PVは、 永続的なボリューム要求 を使用してポッドに関連付けられ、そのライフサイクルはそれを使用するポッドから独立しています。通常、PVはネットワークボリューム、特にパブリッククラウドでは。 *local persistent volume* (LPV) は、それを使用するポッドが実行されている特定のノードにのみ存在する永続ボリュームです。

Persistent Volume Claim

永続的なボリューム要求 PVCは、ストレージの要求を表します。これには、サイズ、アクセスモード、または特定のストレージクラスが含まれる場合があります。ポッドがノードリソースを消費する方法と同様に、PVCはPVのリソースを消費します。

Namespace

名前空間 は、Kubernetesクラスターの論理的で分離されたサブセットであり、より広範な物理クラスター内の 仮想クラスター として見ることができます。名前空間を使用すると、管理者はプロジェクト、部門、チームなどに基づいて分離された環境を作成できます。

RBAC

ロールベースセキュリティ としても知られる ロールベースのアクセス制御 RBACは、コンピューターシステムのセキュリティで使用され、システムのネットワークとリソースへのアクセスを許可されたユーザーのみに制限する方法です。 Kubernetesには、名前空間とクラスターレベルでロールを制御し、特定のリソースと個人に関連付けるネイティブAPIがあります。

CRD

カスタムリソース定義 CRDは、Kubernetes APIの拡張機能であり、開発者は カスタムリソース と呼ばれる新しいデータ型とオブジェクトを作成できます。

Operator

オペレーター は、1つ以上のアプリケーションまたは特定のサービスを管理するときに通常人間のオペレーターが実行する手順を自動化するカスタムリソースです。オペレーターは、Kubernetesを支援して、リソースの定義された状態が観察された状態と常に一致するようにします。

kubectl

kubectl は、Kubernetesクラスターの管理に使用されるコマンドラインツールです。

CloudNativePGには、コミュニティでサポートされているKubernetesバージョンが必要です。詳細は サポートされているリリース ページを参照してください。

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

先行書き込みロギングWALは、データベース管理システムのデータの整合性を保証する標準の方法です。

PVCグループ CloudNativePGの用語におけるPVCグループは、同じPostgreSQLインスタンス、つまりPGDATAを含むメインボリューム storage とWALのボリューム walStorage に属する関連PVCのグループです。

RTO 「recovery Time Objective」の頭字語、アプリケーションに悪影響を与えることなくシステムを利用できない時間。

RPO 「目標復旧ポイント」の頭字語で、ディザスターリカバリーシナリオに従った許容可能なデータ損失のレベルの計算。

クラウド用語

リージョン クラウドの リージョン は、 アベイラビリティーゾーン で編成された隔離された独立した地理的エリアです。リージョン内のゾーンの往復ネットワーク遅延はほとんどありません。

ゾーン クラウドの *アベイラビリティーゾーン** ゾーン*としても知られるは、リソースを展開できるリージョンのエリアです。通常、アベイラビリティーゾーンは、データセンターまたは同じデータセンターの分離された建物に対応します。

次に何をするか

用語を理解したところで、選択したクラウド環境にオペレーターを展開する前に test CloudNativePG on your laptop using a local cluster を決定できます。