第1章 OLM フレームワークを使用した Developer Hub Operator のインストール
Operator Lifecycle Manager (OLM) フレームワーク を使用して、Developer Hub Operator を GKE にインストールできます。その後、GKE に Developer Hub インスタンスをデプロイできます。
OLM の詳細は、Operator Lifecycle Manager (OLM) のドキュメントを参照してください。
前提条件
-
registry.redhat.ioにサブスクライブされている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Operator Lifecycle Manager (OLM) がインストールされている。インストールとトラブルシューティングの詳細は、How do I get Operator Lifecycle Manager? を参照してください。
-
kubectlがインストールされている。詳細は、kubetl のインストール を参照してください。 - Google Cloud CLI がインストールされている。詳細は、gcloud CLI のインストール を参照してください。
- Google アカウントにログインし、GKE Autopilot クラスターまたは GKE Standard クラスターを作成している。
手順
次のコマンドを使用して GKE クラスターに接続します。
gcloud container clusters get-credentials <cluster-name> \ --location=<cluster-location>gcloud container clusters get-credentials <cluster-name> \1 --location=<cluster-location>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、Kubernetes クライアントが GKE クラスターを指定するように設定します。
ターミナルで次のコマンドを実行して、Operator がインストールされている
rhdh-operatornamespace を作成します。kubectl create namespace rhdh-operator
kubectl create namespace rhdh-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用してプルシークレットを作成します。
kubectl -n rhdh-operator create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>kubectl -n rhdh-operator create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \1 --docker-password=<password> \2 --docker-email=<email>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成されたプルシークレットは、Red Hat Ecosystem から Developer Hub イメージをプルするために使用されます。
Red Hat Ecosystem の Operator を含む
CatalogSourceリソースを作成します。CatalogSourceリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のように
OperatorGroupリソースを作成します。OperatorGroupリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコードを使用して
Subscriptionリソースを作成します。Subscriptionリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、作成した Operator が実行されていることを確認します。
kubectl -n rhdh-operator get pods -w
kubectl -n rhdh-operator get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator Pod に
ImagePullBackOffステータスが表示される場合は、Operator デプロイメントのマニフェスト内でイメージを直接プルする権限が必要になる可能性があります。ヒント必要なシークレット名を
deployment.spec.template.spec.imagePullSecretsリストに含め、kubectl get deployment -n rhdh-operatorコマンドを使用してデプロイメント名を確認できます。以下に例を示します。kubectl -n rhdh-operator patch deployment \ rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=mergekubectl -n rhdh-operator patch deployment \ rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1. Operator を使用して GKE に Developer Hub インスタンスをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
Operator を使用して、Developer Hub インスタンスを GKE にデプロイできます。
前提条件
- クラスター管理者が Red Hat Developer Hub Operator をインストールしている。
-
registry.redhat.ioにサブスクライブされている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 -
kubectlがインストールされている。詳細は、kubetl のインストール を参照してください。 - Developer Hub インスタンスのドメイン名が設定されている。
- どの仮想マシン (VM) にも接続されていない静的な外部プレミアム IPv4 グローバル IP アドレスを予約している。詳細は、Reserve a new static external IP address を参照してください。
ドメイン名の DNS レコードが、予約済みの IP アドレスを指定するように設定されている。
注記IP アドレスと同じ値を持つ
Aレコードを作成する必要があります。このプロセスが伝播するまでに最大 1 時間かかる場合があります。
手順
次のテンプレートを使用して、
app-config.yamlDeveloper Hub 設定ファイルを含むapp-config.yamlconfig map を作成します。app-config.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
<my_product_secrets>シークレットを作成し、Base64-encoded文字列値を持つBACKEND_SECRETという名前のキーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my_product_secrets>は、任意の Developer Hub シークレット名です。<my_product_secrets>は、Developer Hub 内のシークレット設定の識別子を指定します。
重要各 Developer Hub インスタンスには、必ず一意の値の
BACKEND_SECRETを使用してください。次のコマンドを使用してキーを生成できます。
node-p'require("crypto").randomBytes(24).toString("base64")'node-p'require("crypto").randomBytes(24).toString("base64")'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat エコシステムカタログから PostgreSQL イメージをプルできるようにするには、Developer Hub インスタンスがデプロイされている namespace 内のデフォルトのサービスアカウントにイメージプルシークレットを追加します。
kubectl patch serviceaccount default \ -p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \ -n <your_namespace>kubectl patch serviceaccount default \ -p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \ -n <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のテンプレートを使用して、
Backstageカスタムリソース (CR) ファイルを作成します。カスタムリソースフラグメント
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my_product_secrets>は、任意の Developer Hub シークレット名です。<my_product_secrets>は、Developer Hub 内のシークレット設定の識別子を指定します。
次の例に示すように、Ingress にアタッチする必要がある
ManagedCertificateオブジェクトを作成して、Google マネージド証明書を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Google マネージド証明書の設定の詳細は、Setting up a Google-managed certificate を参照してください。
HTTPS にリダイレクトするためのポリシーを設定するには、
FrontendConfigオブジェクトを作成します。このポリシーを Ingress にアタッチする必要があります。FrontendConfigオブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTPS にリダイレクトするポリシーの設定の詳細は、HTTP から HTTPS へのリダイレクト を参照してください。
次のテンプレートを使用して Ingress リソースを作成し、必要に応じて名前をカスタマイズします。
Ingress リソース設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
-
ManagedCertificateがプロビジョニングされるまで待ちます。このプロセスには数時間かかる場合があります。 -
https://<rhdh_domain_name>を使用して RHDH にアクセスします
関連情報
TLS を使用した Ingress を使用して GKE を設定する方法の詳細は、Secure GKE Ingress を参照してください。