はじめに
説明
Cloud Native PostgreSQL(CNP)とはEDB社の提供しているPostgreSQLのKubernates Operatorになります。Kubernates Operatorを初耳の方も多いと思いますが、一言で申しますとクラスタ管理・構築ツールになります。
前回は設定を行いましたが、今回はライセンスを設定してみます。
2021年6月1日現在の情報になりますので現時点の情報は下記サイトを確認下さい。
構築所要時間
15分程度を想定しております。
minikubeのダッシュボード
minikubeにはWebコンソールが用意されてますので起動すると便利です。特にパスワードの復号化や今回のようにYAMLを見たり、編集するのに便利です。
minikube dashboard --url
ライセンスについて
EDB PostgreSQL Advanced Server(EPAS)を使用しない限り、インストール時点ではライセンス認証は必要ありません。
30日間使用できます。30日後はフェイルオーバーなどが機能しなくなります。
ライセンス発行
ライセンスに必要な情報の収集
この2つの情報が必要になります。
- cluster namespace
- cluster name
EPASを使う場合は構築中に必要になるため先に決定する必要があり、cluseter nameは構築時にYAMLで自由に設定できます。
(Docsのサンプルではcluseter-example、Openshiftのデフォルトはcluster-sample)
namespaceについてはインストール元で変更で変わるため注意が必要です。Docsにある通りマニフェストでインストールする場合はスクリプト内で”postgresql-operator-system”が指定されており、Openshiftでは自由に選べるもののデフォルトはopenshift-operators、OperatorHubはYAML内で”operaor”が設定されております。
後から調査する場合はCNPのコントローラーが所属するnamespaceになります。
ライセンスの登録
ライセンス登録サイトは下記になります。
ここで先程の情報が必要になります。ライセンス登録にはEDB社へのアカウント登録も必要です。
また1アカウントは1ライセンスのみの発行のため複数環境で動作確認される方は注意下さい。
EPASのライセンス投入
Cluster作成時にimageNameとLincense Keyを指定します。
spec: imageName: quay.io/enterprisedb/edb-postgres-advanced:13.3 licenseKey: FT7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx====
kubectl applyの際に登録したnamespaceと異なる場合、認証が通りません。-nオプションでnamespaceを指定する必要があります。
applyが成功すればライセンス作成日より60日間使用できるかと存じます。後述のConfigMapへのライセンスも自動反映されるようです。
$ kubectl get clusters cluster-example -n postgres-operator-system -o yaml licenseStatus: isTrial: true licenseExpiration: "2021-07-31T00:00:00Z" licenseStatus: Valid license (xxxxxx@sios.com) repositoryAccess: false valid: true
OpenShiftのライセンス投入
minikubeでEPASを使用しない場合、ConfigMapを利用したライセンス設定は認証が働かないので動作が確認できませんが、OpenShiftの場合は試しにライセンスを登録し、確認することができます。
この場合はライセンス作成日より30日間のライセンスが適応されます。
現在の状態を確認します。
$ kubectl get clusters cluster-sample -n openshift-operators -o yaml licenseStatus: isImplicit: true isTrial: true licenseExpiration: "2021-07-01T11:44:38Z" licenseStatus: Implicit trial license repositoryAccess: false valid: true
ConfigMapにライセンスを追加します。
kubectl create configmap -n [NAMESPACE_NAME_HERE] \ postgresql-operator-controller-manager-config \ --from-literal=EDB_LICENSE_KEY=[LICENSE_KEY_HERE]
ライセンス投入後のコマンドは動作環境によって変わります。
kubectl delete pods -n openshift-operators -l app.kubernetes.io/name=cloud-native-postgresql
ライセンスを確認します。
$ kubectl get clusters cluster-sample -n openshift-operators -o yaml licenseStatus: isTrial: true licenseExpiration: "2021-07-17T00:00:00Z" licenseStatus: Valid license (xxxxxx@sios.com) repositoryAccess: false valid: true
あとがき
これでライセンスも反映されました。次回の内容はまだ未定です。
ここまでお読みいただき、ありがとうございました!