8.3. OpenShift クラスター内から Service Registry への HTTPS 接続の設定


以下の手順では、OpenShift クラスター内から HTTPS 接続のポートを公開するように Service Registry デプロイメントを設定する方法を説明します。

警告

このような接続は、クラスター外部で直接利用できません。ルーティングはホスト名に基づいており、HTTPS 接続の場合はエンコードされます。そのため、エッジターミネーションまたはその他の設定は必要です。「OpenShift クラスター外から Service Registry への HTTPS 接続の設定」 を参照してください。

前提条件

  • Service Registry Operator がインストールされている。

手順

  1. 自己署名証明書を使用して keystore を生成します。独自の証明書を使用している場合は、この手順を省略できます。

    keytool -genkey -trustcacerts -keyalg RSA -keystore registry-keystore.jks -storepass password
  2. キーストアおよびキーストアのパスワードを保持する新しいシークレットを作成します。

    1. OpenShift Web コンソールの左側のナビゲーションメニューで、Workloads > Secrets > Create Key/Value Secret とクリックします。
    2. 次の値を使用します。

      • 名前: registry-keystore
      • キー 1: keystore.jks
      • 値 1: registry-keystore.jks (アップロードしたファイル)
      • キー 2: パスワード
      • 値 2: パスワード

        注記

        java.io.IOException: Invalid keystore format が発生した場合、バイナリーファイルのアップロードは正しく機能しませんでした。別の方法として、cat registry-keystore.jks | base64 -w0 > data.txt を使用してファイルを base64 文字列にエンコードし、yaml として Secret リソースを編集してエンコードされたファイルを手動で追加してください。

  3. Service Registry インスタンスの DeploymentConfig リソースを編集します。Service Registry Operator の status フィールドで正しい名前を見つけることができます。

    1. キーストアシークレットをボリュームとして追加します。

      template:
        spec:
          volumes:
          - name: registry-keystore-secret-volume
            secret:
            secretName: registry-keystore
    2. ボリュームマウントを追加します。

      volumeMounts:
        - name: registry-keystore-secret-volume
          mountPath: /etc/registry-keystore
          readOnly: true
    3. JAVA_OPTIONS および KEYSTORE_PASSWORD 環境変数を追加します。

      - name: KEYSTORE_PASSWORD
        valueFrom:
          secretKeyRef:
            name: registry-keystore
            key: password
      - name: JAVA_OPTIONS
          value: >-
           -Dquarkus.http.ssl.certificate.key-store-file=/etc/registry-keystore/keystore.jks
           -Dquarkus.http.ssl.certificate.key-store-file-type=jks
           -Dquarkus.http.ssl.certificate.key-store-password=$(KEYSTORE_PASSWORD)
      注記

      順序は、文字列の補間を使用する場合に重要です。

    4. HTTPS ポートを有効にします。

      ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 8443
          protocol: TCP
  4. Service Registry インスタンスの Service リソースを編集します。Service Registry Operator の status フィールドで正しい名前を見つけることができます。

    ports:
      - name: http
        protocol: TCP
        port: 8080
        targetPort: 8080
      - name: https
        protocol: TCP
        port: 8443
        targetPort: 8443
  5. 接続が機能していることを確認します。

    1. SSH を使用してクラスターの Pod に接続します (Service Registry Pod を使用できます)。

      oc rsh -n default example-apicurioregistry-deployment-vx28s-4-lmtqb
    2. Serviceリソースから Service Registry Pod のクラスター IP を見つけます (Web コンソールの Location 列を参照)。
    3. その後、テスト要求を実行します (自己署名証明書を使用するので、セキュアでないフラグが必要になります)。

      curl -k https://172.30.209.198:8443/health
      [...]
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.