第5章 Kubernetes での TLS 接続を使用した RHDH インスタンスの設定


Azure Red Hat OpenShift (ARO) クラスター、サポートされているクラウドプロバイダーからのクラスター、または適切な設定を持つ独自のクラスターなど、Kubernetes クラスター内の Transport Layer Security (TLS) 接続を使用して、RHDH インスタンスを設定できます。Transport Layer Security (TLS) は、サードパーティーアプリケーションや外部データベースなどの他のエンティティーを使用して RHDH インスタンスの安全な接続を確立します。ただし、Kubernetes クラスターを設定するには、パブリック認証局 (CA) によって署名された証明書を使用する必要があります。

前提条件

  • パブリック CA によって署名された証明書を使用して Azure Red Hat OpenShift (ARO) クラスターをセットアップした。CA 証明書の取得の詳細は、ベンダーのドキュメントを参照してください。
  • namespace を作成し、リソースに対する適切な読み取り権限を持つサービスアカウントを設定した。

    例: ロールベースアクセス制御のための Kubernetes マニフェスト

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: backstage-read-only
    rules:
      - apiGroups:
          - '*'
        resources:
          - pods
          - configmaps
          - services
          - deployments
          - replicasets
          - horizontalpodautoscalers
          - ingresses
          - statefulsets
          - limitranges
          - resourcequotas
          - daemonsets
        verbs:
          - get
          - list
          - watch
    #...

  • サービスアカウントに関連付けられたシークレットとサービス CA 証明書を取得した。
  • いくつかのリソースを作成し、それらにアノテーションを追加して、Kubernetes プラグインでそれらのリソースを検出できるようにした。適用できる Kubernetes アノテーションは、次のとおりです。

    • コンポーネントにラベルを付けるための backstage.io/kubernetes-id
    • namespace にラベルを付けるための backstage.io/kubernetes-namespace

手順

  1. dynamic-plugins-rhdh.yaml ファイルで Kubernetes プラグインを有効にします。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: dynamic-plugins-rhdh
    data:
      dynamic-plugins.yaml: |
        includes:
          - dynamic-plugins.default.yaml
        plugins:
          - package: ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic
            disabled: false 1
          - package: ./dynamic-plugins/dist/backstage-plugin-kubernetes
            disabled: false 2
            # ...
    1
    値を false に設定して、backstage-plugin-kubernetes-backend-dynamic プラグインを有効にします。
    2
    値を false に設定して、backstage-plugin-kubernetes プラグインを有効にします。
    注記

    backstage-plugin-kubernetes プラグインは、現在 テクノロジープレビュー機能 です。代わりに、一般提供 (GA) 機能である ./dynamic-plugins/dist/backstage-plugin-topology-dynamic プラグインを使用することもできます。

  2. Kubernetes クラスターの詳細を設定し、app-config-rhdh.yaml ファイルでカタログ同期オプションを設定します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    data:
      "app-config-rhdh.yaml": |
      # ...
      catalog:
        rules:
          - allow: [Component, System, API, Resource, Location]
        providers:
          kubernetes:
            openshift:
              cluster: openshift
              processor:
                namespaceOverride: default
                defaultOwner: guests
              schedule:
                frequency:
                  seconds: 30
                timeout:
                  seconds: 5
      kubernetes:
        serviceLocatorMethod:
          type: 'multiTenant'
        clusterLocatorMethods:
          - type: 'config'
            clusters:
              - url: <target-cluster-api-server-url> 1
                name: openshift
                authProvider: 'serviceAccount'
                skipTLSVerify: false 2
                skipMetricsLookup: true
                dashboardUrl: <target-cluster-console-url> 3
                dashboardApp: openshift
                serviceAccountToken: ${K8S_SERVICE_ACCOUNT_TOKEN} 4
                caData: ${K8S_CONFIG_CA_DATA} 5
                # ...
    1
    Kubernetes コントロールプレーンのベース URL。ベース URL は、kubectl cluster-info コマンドを実行して取得できます。
    2
    このパラメーターの値を false に設定して、TLS 証明書の検証を有効にします。
    3
    オプション: ARO クラスターを管理する Kubernetes ダッシュボードへのリンク。
    4
    オプション: my-rhdh-secrets シークレットで定義できる K8S_SERVICE_ACCOUNT_TOKEN 環境変数を使用してサービスアカウントトークンを渡します。
    5
    my-rhdh-secrets シークレットで定義する K8S_CONFIG_CA_DATA 環境変数を使用して CA データを渡します。
  3. 設定変更を保存します。

検証

  1. RHDH アプリケーションを実行してカタログをインポートします。

    kubectl -n rhdh-operator get pods -w
  2. Pod ログに設定に関するエラーが表示されていないことを確認します。
  3. Catalog に移動し、Developer Hub インスタンスのコンポーネントページをチェックして、クラスター接続と作成したリソースの存在を確認します。
注記

証明書の問題や権限などに関する接続エラーが発生した場合は、コンポーネントページのメッセージボックスを確認するか、Pod のログを表示してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.