EDB private container registries#
EDB Postgres for Kubernetes
オペレーターのイメージおよびさまざまなオペランドは、docker.enterprisedb.com
の下のプライベートコンテナイメージレジストリに保持されます。
重要
プライベートレジストリへのアクセスには、EDBのアカウントが必要で、有効な subscription plan を持つEDB顧客に予約されています。資格情報は、EDBアカウントを介して収集されます。
重要
レジストリごとに10GB/月の帯域幅クォータがあります。
注釈
プライベートレジストリからオペレーターとオペランドをインストールする場合、 License and License keys は必要ありません。
どのリポジトリを選択しますか?#
EDB Postgres for Kubernetesは、「EDB Enterpriseプラン」または「EDB Standardプラン」のいずれかで利用できます。
サブスクリプションプランに応じて、KubernetesのEDB Postgresは、以下の表で説明しているように、次のリポジトリのいずれかにあります。
Plan |
Repository |
|---|---|
EDB Standard Plan |
k8s_standard |
EDB EnterpriseDB Plan |
k8s_enterprise |
リポジトリの名前は、たとえば docker login
または kubernetes.io/dockerconfigjson を介してEDBコンテナレジストリにログインしようとするときに
ユーザー名 として使用されます。
重要
各リポジトリには、プランでアクセスできるすべてのイメージが含まれています。演算子やオペランドイメージなどのさまざまなイメージにアクセスするために別のリポジトリに接続する必要はありません。
トークンの取得方法#
repositories page in EDB には、 Repo Token が隠れて表示されている EDB Repos
2.0 セクションがあります。同じトークンは、 Repos 2.0 token
というラベルの付いた Account profile でも使用できます。
トークンの横には、トークンをコピーするボタンと、トークンのコンテンツをクリアテキストとして表示する場合の目のアイコンがあります。トークンは、EDBコンテナレジストリにアクセスしようとするときに パスワード として使用されます。
docker login を使用した例#
ターミナルからDockerを介してログインできるはずです。 Copy Token
ボタンを使用してリポトークンをコピーすることをお勧めします。次のdocker
コマンドは、ユーザー名とパスワードの入力を求めます。
上記で説明したように、ユーザー名はアクセスしようとしているリポジトリであり、パスワードはコピーしたばかりのトークンである必要があります。
$ docker login docker.enterprisedb.com
Username: k8s_enterprise
Password:
Login Succeeded
オペランドイメージ#
KubernetesのEDB Postgresは、同じプライベートレジストリから利用可能なイメージを含むさまざまなPostgreSQLディストリビューションをサポートしています。
EDB Postgres Advanced EPAS
EDB Postgres Extended PGE
注釈
PostgreSQLイメージはプライベートレジストリでは利用できませんが、 quay.io/enterprisedb/postgresql または`ghcr.io/enterprisedb/postgresql` ですぐに利用できます。
これらのイメージは、 Container Image Requirements で説明されている要件と規則に従います。
EDB Postgres for Kubernetesドキュメントのページ
以下の表では、各Postgresディストリビューションのイメージ名前の接頭辞を見つけることができます。
Postgres distribution |
Image name |
Repositories |
|---|---|---|
EDB Postgres Extended (PGE) |
edb-postgres-extended |
k8s_standard, k8s_enterprise |
EDB Postgres Advanced (EPAS) |
edb-postgres-advanced |
k8s_enterprise |
EPASまたはPGEオペランドを使用してクラスターを展開する方法#
プライベートレジストリからEDB Postgres for Kubernetesオペレーターを既にインストールしている場合、イメージプルシークレットを既に設定している必要があります。まだの方は、次のセクションに興味があるかもしれません。
オペレーターの既存のインストールがある場合、プライベートレジストリからEPASまたはPGEのイメージをプルするには、 kubernetes.io/dockerconfigjson を作成する必要があります。
create a pull secret from credentials ができます。
kubectl create secret docker-registry registry-pullsecret \
-n <CLUSTER-NAMESPACE> --docker-server=docker.enterprisedb.com \
--docker-username=<REGISTRY-NAME> \
--docker-password=<TOKEN>
前述のように、docker-username
はレジストリの名前です。つまり、k8s_standard
またはk8s_enterprise です。 docker-password は、
トークンの取得方法 から取得したトークンです。
プルシークレットが作成されたら、クラスターマニフェストのimageName
に加えてimagePullSecrets
フィールドを忘れずに設定します。以下のマニフェストは、
k8s_enterprise リポジトリからPG
Extendedを実行するクラスターを作成します。
apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: postgresql-extended-cluster
spec:
instances: 3
imageName: docker.enterprisedb.com/k8s_enterprise/edb-postgres-extended:16.2
imagePullSecrets:
- name: registry-pullsecret
storage:
storageClass: standard
size: 1Gi
EDBプライベートレジストリを使用してオペレーターをインストールする方法#
前述のように、dockerの ユーザー名 はリポジトリの名前であり、トークンは パスワード です。 kubernetesは、 kubernetes.io/dockerconfigjson を設定することにより、同じ資格情報を使用してレジストリにアクセスできます。
installation document で述べたように、オペレーターをインストールするにはいくつかの異なる方法があります。
プライベートレジストリからのイメージを使用してインストールする場合は、前述のようにプルシークレットを作成し、展開マニフェストのOPERATOR_IMAGE_NAME
パラメーターをカスタマイズする必要があります。
インストールにはHelmチャートを使用することをお勧めします。これにより、プルシークレットの作成とオペレーターイメージリポジトリのカスタマイズが行われます。
詳細については、 Helm chart ページをご覧ください。
例として、次のコマンドトークンを提供すると、EDB EnterpriseDBプランのリポジトリを使用する場合、PG4Kオペレーターをインストールします。
helm upgrade --install edb-pg4k \
--namespace postgresql-operator-system \
--create-namespace \
--set image.repository=docker.enterprisedb.com/k8s_enterprise/edb-postgres-for-kubernetes \
--set image.imageCredentials.username=k8s_enterprise \
--set image.imageCredentials.password=<ENTITLEMENT_TOKEN> \
--set image.imageCredentials.create=true \
--set "imagePullSecrets[0].name"=postgresql-operator-pull-secret \
--set config.data.PULL_SECRET_NAME=postgresql-operator-pull-secret \
edb/edb-postgres-for-kubernetes