始める前に¶
始める前に、KubernetesとPostgreSQLに固有の用語を確認することが不可欠です。
Kubernetes用語¶
Resource |
Description |
|---|---|
*ノード*は、仮想または物理のKubernetesのワーカーマシンであり、ポッドの実行に必要なすべてのサービスがコントロールプレーンノードによって管理されます。 |
|
*ポッド*は、Kubernetesクラスターにデプロイできる最小のコンピューティングユニットであり、ネットワークとストレージを共有する1つ以上のコンテナーで構成されています。 |
|
*サービス*は、ポッドのグループで実行されるアプリケーションをネットワークサービスとして公開し、アプリケーション間のサービス検出、ロードバランシング、フェイルオーバーなどの重要な機能を標準化する抽象化です。 |
|
*シークレット*は、パスワード、アクセスキー、トークンなどの少量の機密データを保存し、ポッドで使用するように設計されたオブジェクトです。 |
|
*ストレージクラス*を使用すると、管理者は、プロビジョナー(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を支援します。 |
|
:ref:``kubectl` に`cnpg` プラグインを使用する<kubectl に`cnpg` プラグインを使用する>` |
`kubectl`は、Kubernetesクラスターの管理に使用されるコマンドラインツールです。 |
CloudNativePGには、コミュニティでサポートされているKubernetesバージョンが必要です。詳細は サポートされているリリース ページをご覧ください。
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`データベースに接続することにより、管理タスクを実行します。 |
Write-Ahead Logging(WAL)は、データベース管理システムのデータ整合性を保証するための標準的な方法です。 |
|
PVC group |
CloudNativePGの用語のPVCグループは、同じPostgreSQLインスタンス、つまりPGDATA(storage)を含むメインボリュームとWALのボリューム(walStorage)に属する関連するPVCのグループです。 |
クラウド用語¶
Resource |
Description |
|---|---|
Region |
クラウド内の*リージョン*は、*アベイラビリティーゾーン*で編成された分離され独立した地理的エリアです。リージョン内のゾーンでは、ラウンドトリップネットワークレイテンシーがほとんどありません。 |
Zone |
クラウド(*ゾーン*とも呼ばれます)の*アベイラビリティーゾーン*は、リソースをデプロイできるリージョン内のエリアです。通常、アベイラビリティーゾーンは、データセンターまたは同じデータセンターの隔離された建物に対応します。 |
次にすること¶
用語に精通したので、選択したクラウド環境にオペレーターをデプロイする前に test CloudNativePG on your laptop using a local cluster することに決定できます。