始める前に¶
始める前に、KubernetesとPostgreSQLに固有の用語を確認することが不可欠です。
Kubernetes用語¶
Resource |
Description |
|---|---|
*ノード*は、仮想または物理のKubernetesのワーカーマシンであり、ポッドの実行に必要なすべてのサービスがコントロールプレーンノードによって管理されます。 |
|
*ポッド*は、Kubernetesクラスターにデプロイできる最小のコンピューティングユニットであり、ネットワークとストレージを共有する1つ以上のコンテナーで構成されます。 |
|
:ref:``microservice` タイプ<microservice タイプ>` |
*サービス*は、ポッドのグループで実行され、アプリケーション間のサービス検出、ロードバランシング、フェイルオーバーなどの重要な機能を標準化するアプリケーションをネットワークサービスとして公開する抽象化です。 |
*シークレット*は、パスワード、アクセスキー、トークンなどの少量の機密データを保存し、ポッドで使用するように設計されたオブジェクトです。 |
|
*ストレージクラス*を使用すると、管理者は、プロビジョナー(AWS EBSなど)、再生ポリシー、マウントオプション、ボリューム拡張などを含むクラスター内のストレージのクラスを定義できます。 |
|
永続ボリューム*(PV)は、管理者によって手動でプロビジョニングされた、または*ストレージクラス*コントローラーによって動的にプロビジョニングされたストレージを表すKubernetesクラスター内のリソースです。 PVは*永続的なボリューム要求*を使用してポッドに関連付けられ、そのライフサイクルはそれを使用するポッドから独立しています。通常、PVは、特にパブリッククラウドではネットワークボリュームです。 `*local persistent volume (LPV) <https://kubernetes.io/docs/concepts/storage/volumes/#local>`__は、それを使用するポッドが実行されている特定のノードにのみ存在する永続ボリュームです。 |
|
永続ボリューム要求 (PVC) は、ストレージの要求を表します。これには、サイズ、アクセスモード、または特定のストレージクラスが含まれます。ポッドがノードのリソースを消費する方法と同様に、PVCはPVのリソースを消費します。 |
|
*名前空間*は、Kubernetesクラスターの論理的で分離されたサブセットであり、より広い物理クラスター内の*仮想クラスター*と見なすことができます。名前空間を使用すると、管理者はプロジェクト、部門、チームなどに基づいて分離された環境を作成できます。 |
|
ロールベースのアクセス制御 (RBAC)は、*ロールベースのセキュリティ*とも呼ばれ、コンピューターシステムのセキュリティで使用され、システムのネットワークとリソースへのアクセスを許可されたユーザーのみに制限します。 Kubernetesには、名前空間とクラスターレベルでロールを制御し、特定のリソースと個人に関連付けるためのネイティブAPIがあります。 |
|
*カスタムリソース定義*(CRD)はKubernetes APIの拡張機能であり、開発者は*カスタムリソースと呼ばれる*新しいデータ型とオブジェクトを作成できます。 |
|
*オペレーター*は、1つ以上のアプリケーションまたは特定のサービスを管理するときに人間のオペレーターが通常実行するステップを自動化するカスタムリソースです。オペレーターは、リソースの定義された状態が監視された状態と常に一致するように Kubernetes を支援します。 |
|
`kubectl`は、Kubernetesクラスターの管理に使用されるコマンドラインツールです。 |
CloudNativePGには、Kubernetes 1.19以降が必要です。
PostgreSQL用語¶
Resource |
Description |
|---|---|
Instance |
「IPアドレス」と「TCPポート」(通常は5432)のペアで実行およびリッスンするPostgresサーバープロセス。 |
Primary |
読み取り操作と書き込み操作の両方を受け入れることができるPostgreSQLインスタンス。 |
Replica |
クラスター内の唯一のプライマリインスタンスから複製し、先行書き込みログ(WAL)レコードのストリームを読み取ることによって更新され続けるPostgreSQLインスタンス。レプリカは、*スタンバイ*または*セカンダリ*サーバーとも呼ばれます。 PostgreSQLは、物理ストリーミングレプリケーション(非同期/同期)とファイルベースのログシッピング(非同期)に依存しています。 |
Hot Standby |
*レプリカ*が読み取り専用ワークロードを受け入れられるようにするPostgreSQLの機能。 |
Cluster |
高可用性(HA)クラスターとして使用:単一のプライマリとオプションの任意の数のレプリカで構成されるPostgreSQLインスタンスのセット。 |
Replica Cluster |
選択したPostgreSQLクラスターからの継続的リカバリモードであるCloudNativePG Cluster。通常はKubernetesクラスターの外部にあります。これは、プライベート、パブリック、ハイブリッド、マルチクラウドのコンテキストでマルチクラスターデプロイを有効にする機能です。 |
Designated Primary |
別の PostgreSQL クラスターからの継続的復旧中であり、レプリカクラスターがプライマリになる場合にプライマリになるように指定されているレプリカクラスター内の PostgreSQL スタンバイインスタンス。 |
Superuser |
PostgreSQLでは、*スーパーユーザー*は LOGIN と `SUPERUSER`の両方の特権を持つロールです。セキュリティ上の理由から、CloudNativePGは、ローカルのUnixドメインソケットを介した`peer`認証を介して`postgres`ユーザーとして`postgres`データベースに接続することにより、管理タスクを実行します。 |
クラウド用語¶
Resource |
Description |
|---|---|
Region |
クラウドの*リージョン*は、*アベイラビリティーゾーン*で編成された分離された独立した地理的エリアです。リージョン内のゾーンでは、ラウンドトリップのネットワークレイテンシーはほとんどありません。 |
Zone |
クラウド(*ゾーン*とも呼ばれます)の*アベイラビリティーゾーン*は、リソースをデプロイできるリージョンです。通常、アベイラビリティーゾーンは、データセンターまたは同じデータセンターの分離された建物に対応します。 |
次に行うこと¶
用語に慣れたので、選択したクラウド環境にオペレーターを展開する前に test CloudNativePG on your laptop using a local cluster することができます。