Google Kubernetes Engine への Red Hat Developer Hub のインストール
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
次のいずれかの方法を使用して、Google Kubernetes Engine (GKE) に Red Hat Developer Hub をインストールできます。
- Red Hat Developer Hub Operator
- Red Hat Developer Hub Helm チャート
第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 次の手順に従って Operator のデフォルト設定を更新し、Developer Hub リソースが GKE で正しく起動できるようにします。
次のコマンドを使用して、
rhdh-operatornamespace のbackstage-default-configConfigMap を編集します。kubectl -n rhdh-operator edit configmap backstage-default-config
kubectl -n rhdh-operator edit configmap backstage-default-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
db-statefulset.yaml文字列を見つけて、そのspec.template.spec.securityContextにfsGroupを追加します。db-statefulset.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
deployment.yaml文字列を見つけて、その仕様にfsGroupを追加します。deployment.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のように、
service.yaml文字列を見つけて、typeをNodePortに変更します。service.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow 保存して終了します。
変更が Operator Pod に自動的に適用されるまで待ちます。
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 マネージド証明書の設定の詳細は、Google マネージド証明書の設定 を参照してください。
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 を参照してください。
第2章 Helm チャートを使用して GKE に Developer Hub をインストールする リンクのコピーリンクがクリップボードにコピーされました!
Google Kubernetes Engine (GKE) に Developer Hub Helm チャートをインストールすると、Developer Hub インスタンスのデプロイメントがオーケストレーションされ、GKE エコシステム内で堅牢な開発者プラットフォームが提供されます。
前提条件
-
registry.redhat.ioにサブスクライブされている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 -
kubectlがインストールされている。詳細は、kubetl のインストール を参照してください。 - Google Cloud CLI がインストールされている。詳細は、gcloud CLI のインストール を参照してください。
- Google アカウントにログインし、GKE Autopilot クラスターまたは GKE Standard クラスターを作成している。
- Developer Hub インスタンスのドメイン名が設定されている。
- どの仮想マシンにも接続されていない静的な外部プレミアム IPv4 グローバル IP アドレスを予約している。詳細は、Reserve a new static external IP address を参照してください。
ドメイン名の DNS レコードが、予約済みの IP アドレスを指定するように設定されている。
注記IP アドレスと同じ値を持つ
Aレコードを作成する必要があります。このプロセスが伝播するまでに最大 1 時間かかる場合があります。- Helm 3 以降がインストールされている。詳細は、Installing Helm を参照してください。
手順
ターミナルに移動し、次のコマンドを実行して、Developer Hub チャートを含む Helm チャートリポジトリーを、ローカルの Helm レジストリーに追加します。
helm repo add openshift-helm-charts https://charts.openshift.io/
helm repo add openshift-helm-charts https://charts.openshift.io/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用してプルシークレットを作成します。
kubectl -n <your-namespace> create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>kubectl -n <your-namespace> create secret docker-registry rhdh-pull-secret \1 --docker-server=registry.redhat.io \ --docker-username=<user_name> \2 --docker-password=<password> \3 --docker-email=<email>4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成されたプルシークレットは、Red Hat Ecosystem から Developer Hub イメージをプルするために使用されます。
Ingress にアタッチする必要がある
ManagedCertificateオブジェクトを作成して、Google 管理の証明書を設定します。ManagedCertificateオブジェクトを Ingress にアタッチする例Copy to Clipboard Copied! Toggle word wrap Toggle overflow Google マネージド証明書の設定の詳細は、Google マネージド証明書の設定 を参照してください。
HTTPS にリダイレクトするためのポリシーを設定するには、
FrontendConfigオブジェクトを作成します。このポリシーを Ingress にアタッチする必要があります。FrontendConfigオブジェクトを Ingress にアタッチする例Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTPS にリダイレクトするポリシーの設定の詳細は、HTTP から HTTPS へのリダイレクト を参照してください。
次のテンプレートを使用して、
values.yamlという名前のファイルを作成します。values.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最新バージョンの Helm チャートと
values.yamlファイルを使用して Developer Hub をデプロイするには、ターミナルで次のコマンドを実行します。helm -n <your_namespace> install -f values.yaml <your_deploy_name> \ openshift-helm-charts/redhat-developer-hub \ --version 1.4.3
helm -n <your_namespace> install -f values.yaml <your_deploy_name> \ openshift-helm-charts/redhat-developer-hub \ --version 1.4.3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最新の Helm チャートバージョンは、この Helm Charts リポジトリーを参照してください。
検証
デプロイメントが完了していることを確認します。
kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>
kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスと Ingress が作成されたことを確認します。
kubectl get service -n <your_namespace> kubectl get ingress -n <your_namespace>
kubectl get service -n <your_namespace> kubectl get ingress -n <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ManagedCertificateがプロビジョニングされるまで待ちます。このプロセスには数時間かかる場合があります。-
https://<rhdh_domain_name>を使用して RHDH にアクセスします デプロイメントをアップグレードするには、次のコマンドを使用します。
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version <UPGRADE_CHART_VERSION>
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version <UPGRADE_CHART_VERSION>Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントを削除するには、次のコマンドを使用します。
helm -n <your_namespace> delete <your_deploy_name>
helm -n <your_namespace> delete <your_deploy_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow