Google Kubernetes Engine への Red Hat Developer Hub のインストール


Red Hat Developer Hub 1.4

Red Hat Customer Content Services

概要

Red Hat Developer Hub は、開発者ポータルを構築するためのエンタープライズグレードのプラットフォームです。管理ユーザーは、ロール、権限、その他の設定を設定して、他の承認済みユーザーが Operator または Helm チャートを使用して Google Kubernetes Engine (GKE) に 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) のドキュメントを参照してください。

前提条件

手順

  1. 次のコマンドを使用して GKE クラスターに接続します。

    gcloud container clusters get-credentials <cluster-name> \ 
    1
    
        --location=<cluster-location> 
    2
    Copy to Clipboard Toggle word wrap
    1
    GKE クラスター名を入力します。
    2
    GKE クラスターの場所を入力します。

    このコマンドは、Kubernetes クライアントが GKE クラスターを指定するように設定します。

  2. ターミナルで次のコマンドを実行して、Operator がインストールされている rhdh-operator namespace を作成します。

    kubectl create namespace rhdh-operator
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを使用してプルシークレットを作成します。

    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 Toggle word wrap
    1
    コマンドにユーザー名を入力します。
    2
    コマンドにパスワードを入力します。
    3
    コマンドにメールアドレスを入力します。

    作成されたプルシークレットは、Red Hat Ecosystem から Developer Hub イメージをプルするために使用されます。

  4. Red Hat Ecosystem の Operator を含む CatalogSource リソースを作成します。

    CatalogSource リソースの例

    cat <<EOF | kubectl -n rhdh-operator apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: redhat-catalog
    spec:
      sourceType: grpc
      image: registry.redhat.io/redhat/redhat-operator-index:v4.17
      secrets:
      - "rhdh-pull-secret"
      displayName: Red Hat Operators
    EOF
    Copy to Clipboard Toggle word wrap

  5. 次のように OperatorGroup リソースを作成します。

    OperatorGroup リソースの例

    cat <<EOF | kubectl apply -n rhdh-operator -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: rhdh-operator-group
    EOF
    Copy to Clipboard Toggle word wrap

  6. 次のコードを使用して Subscription リソースを作成します。

    Subscription リソースの例

    cat <<EOF | kubectl apply -n rhdh-operator -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: rhdh
      namespace: rhdh-operator
    spec:
      channel: fast
      installPlanApproval: Automatic
      name: rhdh
      source: redhat-catalog
      sourceNamespace: rhdh-operator
      startingCSV: rhdh-operator.v1.4.3
    EOF
    Copy to Clipboard Toggle word wrap

  7. 次のコマンドを実行して、作成した Operator が実行されていることを確認します。

    kubectl -n rhdh-operator get pods -w
    Copy to Clipboard Toggle word wrap

    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=merge
    Copy to Clipboard Toggle word wrap
  8. 次の手順に従って Operator のデフォルト設定を更新し、Developer Hub リソースが GKE で正しく起動できるようにします。

    1. 次のコマンドを使用して、rhdh-operator namespace の backstage-default-config ConfigMap を編集します。

      kubectl -n rhdh-operator edit configmap backstage-default-config
      Copy to Clipboard Toggle word wrap
    2. 次の例に示すように、db-statefulset.yaml 文字列を見つけて、その spec.template.spec.securityContextfsGroup を追加します。

      db-statefulset.yaml フラグメント

        db-statefulset.yaml: |
          apiVersion: apps/v1
          kind: StatefulSet
      --- TRUNCATED ---
          spec:
          --- TRUNCATED ---
            restartPolicy: Always
            securityContext:
            # You can assign any random value as fsGroup
              fsGroup: 2000
            serviceAccount: default
            serviceAccountName: default
      --- TRUNCATED ---
      Copy to Clipboard Toggle word wrap

    3. 次の例に示すように、deployment.yaml 文字列を見つけて、その仕様に fsGroup を追加します。

      deployment.yaml フラグメント

        deployment.yaml: |
          apiVersion: apps/v1
          kind: Deployment
      --- TRUNCATED ---
          spec:
            securityContext:
              # You can assign any random value as fsGroup
              fsGroup: 3000
            automountServiceAccountToken: false
      --- TRUNCATED ---
      Copy to Clipboard Toggle word wrap

    4. 次のように、service.yaml 文字列を見つけて、typeNodePort に変更します。

      service.yaml フラグメント

        service.yaml: |
          apiVersion: v1
          kind: Service
          spec:
           # NodePort is required for the ALB to route to the Service
            type: NodePort
      --- TRUNCATED ---
      Copy to Clipboard Toggle word wrap

    5. 保存して終了します。

      変更が 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 時間かかる場合があります。

手順

  1. 次のテンプレートを使用して、app-config.yaml Developer Hub 設定ファイルを含む app-config.yaml config map を作成します。

    app-config.yaml フラグメント

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-rhdh-app-config
    data:
      "app-config.yaml": |
        app:
          title: Red Hat Developer Hub
          baseUrl: https://<rhdh_domain_name>
        backend:
          auth:
            externalAccess:
                - type: legacy
                  options:
                    subject: legacy-default-config
                    secret: "${BACKEND_SECRET}"
          baseUrl: https://<rhdh_domain_name>
          cors:
            origin: https://<rhdh_domain_name>
    Copy to Clipboard Toggle word wrap

  2. 次の例に示すように、<my_product_secrets> シークレットを作成し、Base64-encoded 文字列値を持つ BACKEND_SECRET という名前のキーを追加します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <my_product_secrets> 
    1
    
    stringData:
      # TODO: See https://backstage.io/docs/auth/service-to-service-auth/#setup
      BACKEND_SECRET: "xxx"
    Copy to Clipboard Toggle word wrap
    1
    <my_product_secrets> は、任意の Developer Hub シークレット名です。<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定します。
    重要

    各 Developer Hub インスタンスには、必ず一意の値の BACKEND_SECRET を使用してください。

    次のコマンドを使用してキーを生成できます。

    node-p'require("crypto").randomBytes(24).toString("base64")'
    Copy to Clipboard Toggle word wrap
  3. Red Hat エコシステムカタログから PostgreSQL イメージをプルできるようにするには、Developer Hub インスタンスがデプロイされている namespace 内のデフォルトのサービスアカウントにイメージプルシークレットを追加します。

    kubectl patch serviceaccount default \
        -p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \
        -n <your_namespace>
    Copy to Clipboard Toggle word wrap
  4. 次のテンプレートを使用して、Backstage カスタムリソース (CR) ファイルを作成します。

    カスタムリソースフラグメント

    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      # This is the name of your Developer Hub instance
      name: my-rhdh
    spec:
      application:
        imagePullSecrets:
        - "rhdh-pull-secret"
        route:
          enabled: false
        appConfig:
          configMaps:
            - name: my-rhdh-app-config
        extraEnvs:
          secrets:
            - name: <my_product_secrets> 
    1
    Copy to Clipboard Toggle word wrap

    1
    <my_product_secrets> は、任意の Developer Hub シークレット名です。<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定します。
  5. 次の例に示すように、Ingress にアタッチする必要がある ManagedCertificate オブジェクトを作成して、Google マネージド証明書を設定します。

    apiVersion: networking.gke.io/v1
    kind: ManagedCertificate
    metadata:
      name: <rhdh_certificate_name>
    spec:
      domains:
        - <rhdh_domain_name>
    Copy to Clipboard Toggle word wrap

    Google マネージド証明書の設定の詳細は、Google マネージド証明書の設定 を参照してください。

  6. HTTPS にリダイレクトするためのポリシーを設定するには、FrontendConfig オブジェクトを作成します。このポリシーを Ingress にアタッチする必要があります。

    FrontendConfig オブジェクトの例

    apiVersion: networking.gke.io/v1beta1
    kind: FrontendConfig
    metadata:
      name: <ingress_security_config>
    spec:
      sslPolicy: gke-ingress-ssl-policy-https
      redirectToHttps:
        enabled: true
    Copy to Clipboard Toggle word wrap

    HTTPS にリダイレクトするポリシーの設定の詳細は、HTTP から HTTPS へのリダイレクト を参照してください。

  7. 次のテンプレートを使用して Ingress リソースを作成し、必要に応じて名前をカスタマイズします。

    Ingress リソース設定の例

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      # TODO: this the name of your Developer Hub Ingress
      name: my-rhdh
      annotations:
        # If the class annotation is not specified it defaults to "gce".
        kubernetes.io/ingress.class: "gce"
        kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME>
        networking.gke.io/managed-certificates: <rhdh_certificate_name>
        networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config>
    spec:
      ingressClassName: gce
      rules:
        # TODO: Set your application domain name.
        - host: <rhdh_domain_name>
          http:
            paths:
            - path: /
              pathType: Prefix
              backend:
                service:
                  # TODO: my-rhdh is the name of your `Backstage` custom resource.
                  # Adjust if you changed it!
                  name: backstage-my-rhdh
                  port:
                    name: http-backend
    Copy to Clipboard Toggle word wrap

検証

  • 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 を参照してください。

手順

  1. ターミナルに移動し、次のコマンドを実行して、Developer Hub チャートを含む Helm チャートリポジトリーを、ローカルの Helm レジストリーに追加します。

    helm repo add openshift-helm-charts https://charts.openshift.io/
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを使用してプルシークレットを作成します。

    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 Toggle word wrap
    1
    コマンドに GKE namespace を入力します。
    2
    コマンドにユーザー名を入力します。
    3
    コマンドにパスワードを入力します。
    4
    コマンドにメールアドレスを入力します。

    作成されたプルシークレットは、Red Hat Ecosystem から Developer Hub イメージをプルするために使用されます。

  3. Ingress にアタッチする必要がある ManagedCertificate オブジェクトを作成して、Google 管理の証明書を設定します。

    ManagedCertificate オブジェクトを Ingress にアタッチする例

    apiVersion: networking.gke.io/v1
    kind: ManagedCertificate
    metadata:
      name: <rhdh_certificate_name>
    spec:
      domains:
        - <rhdh_domain_name>
    Copy to Clipboard Toggle word wrap

    Google マネージド証明書の設定の詳細は、Google マネージド証明書の設定 を参照してください。

  4. HTTPS にリダイレクトするためのポリシーを設定するには、FrontendConfig オブジェクトを作成します。このポリシーを Ingress にアタッチする必要があります。

    FrontendConfig オブジェクトを Ingress にアタッチする例

    apiVersion: networking.gke.io/v1beta1
    kind: FrontendConfig
    metadata:
      name: <ingress_security_config>
    spec:
      sslPolicy: gke-ingress-ssl-policy-https
      redirectToHttps:
        enabled: true
    Copy to Clipboard Toggle word wrap

    HTTPS にリダイレクトするポリシーの設定の詳細は、HTTP から HTTPS へのリダイレクト を参照してください。

  5. 次のテンプレートを使用して、values.yaml という名前のファイルを作成します。

    values.yaml ファイルの例

    global:
      host: <rhdh_domain_name>
    route:
      enabled: false
    upstream:
      service:
        type: NodePort
      ingress:
        enabled: true
        annotations:
          kubernetes.io/ingress.class: gce
          kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME>
          networking.gke.io/managed-certificates: <rhdh_certificate_name>
          networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config>
        className: gce
      backstage:
        image:
          pullSecrets:
          - rhdh-pull-secret
        podSecurityContext:
          fsGroup: 2000
      postgresql:
        image:
          pullSecrets:
          - rhdh-pull-secret
        primary:
          podSecurityContext:
            enabled: true
            fsGroup: 3000
      volumePermissions:
        enabled: true
    Copy to Clipboard Toggle word wrap

  6. 最新バージョンの 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
    Copy to Clipboard Toggle word wrap

    最新の Helm チャートバージョンは、この Helm Charts リポジトリーを参照してください。

検証

  • デプロイメントが完了していることを確認します。

    kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>
    Copy to Clipboard Toggle word wrap
  • サービスと Ingress が作成されたことを確認します。

    kubectl get service -n <your_namespace>
    kubectl get ingress -n <your_namespace>
    Copy to Clipboard Toggle word wrap
    注記

    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>
    Copy to Clipboard Toggle word wrap
  • デプロイメントを削除するには、次のコマンドを使用します。

    helm -n <your_namespace> delete <your_deploy_name>
    Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る