7.3. クラスターへのプラグインのデプロイ


プラグインを OpenShift Container Platform クラスターにデプロイできます。

7.3.1. Docker を使用したイメージのビルド

クラスターにプラグインをデプロイするには、まずイメージをビルドし、それをイメージレジストリーにプッシュする必要があります。

手順

  1. 以下のコマンドでイメージをビルドします。

    $ docker build -t quay.io/my-repositroy/my-plugin:latest .
  2. オプション: イメージをテストする場合は、以下のコマンドを実行します。

    $ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
  3. 以下のコマンドを実行してイメージをプッシュします。

    $ docker push quay.io/my-repository/my-plugin:latest

7.3.2. クラスターへのプラグインのデプロイ

変更を加えたイメージをレジストリーにプッシュした後、Helm チャートを使用してプラグインをクラスターにデプロイできます。

前提条件

  • 以前にプッシュしたプラグインを含むイメージの場所が用意されている。

    注記

    プラグインのニーズに応じて追加のパラメーターを指定できます。values.yaml ファイルに、サポートされているパラメーターがすべて含まれています。

手順

  1. プラグインをクラスターにデプロイするには、プラグインの名前を Helm リリース名として Helm チャートを、新しい namespace または -n コマンドラインオプションで指定された既存の namespace にインストールします。次のコマンドを使用して、plugin.image パラメーター内のイメージの場所を指定します。

    $ helm upgrade -i  my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location

    ここでは、以下のようになります。

    n <my-plugin-namespace>
    プラグインをデプロイする既存の namespace を指定します。
    --create-namespace
    オプション: 新しい namespace にデプロイする場合は、このパラメーターを使用します。
    --set plugin.image=my-plugin-image-location
    plugin.image パラメーター内のイメージの場所を指定します。
    注記

    OpenShift Container Platform 4.10 以降にデプロイする場合は、--set plugin.securityContext.enabled=false パラメーターを追加して、Pod セキュリティーに関連する設定を除外することを推奨します。

  2. オプション: charts/openshift-console-plugin/values.yaml ファイルでサポートされている一連のパラメーターを使用して、追加のパラメーターを指定できます。

    plugin:
      name: ""
      description: ""
      image: ""
      imagePullPolicy: IfNotPresent
      replicas: 2
      port: 9443
      securityContext:
        enabled: true
      podSecurityContext:
        enabled: true
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      containerSecurityContext:
        enabled: true
        allowPrivilegeEscalation: false
        capabilities:
          drop:
            - ALL
      resources:
        requests:
          cpu: 10m
          memory: 50Mi
      basePath: /
      certificateSecretName: ""
      serviceAccount:
        create: true
        annotations: {}
        name: ""
      patcherServiceAccount:
        create: true
        annotations: {}
        name: ""
      jobs:
        patchConsoles:
          enabled: true
          image: "registry.redhat.io/openshift4/ose-tools-rhel8@sha256:e44074f21e0cca6464e50cb6ff934747e0bd11162ea01d522433a1a1ae116103"
          podSecurityContext:
            enabled: true
            runAsNonRoot: true
            seccompProfile:
              type: RuntimeDefault
          containerSecurityContext:
            enabled: true
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - ALL
          resources:
            requests:
              cpu: 10m
              memory: 50Mi

検証

  • 有効なプラグインのリストを表示するには、Administration Cluster Settings Configuration Console operator.openshift.io Console plugins に移動するか、Overview ページにアクセスします。
注記

新しいプラグイン設定が表示されるまで数分かかる場合があります。最近プラグインを有効にしたにもかかわらず、プラグインが表示されない場合は、ブラウザを更新する必要が生じる可能性があります。実行時にエラーが発生した場合は、ブラウザー開発者ツールの JS コンソールをチェックして、プラグインコードにエラーがないか調べてください。

7.3.3. プラグインサービスプロキシー

プラグインからクラスター内のサービスに HTTP リクエストを送信する必要がある場合は、spec.proxy 配列フィールドを使用して、ConsolePlugin リソースでサービスプロキシーを宣言できます。コンソールバックエンドは、プラグインとサービス間の通信をプロキシーするために、/api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters> エンドポイントを公開します。プロキシーされたリクエストは、デフォルトで サービス CA バンドル を使用します。このサービスは HTTPS を使用する必要があります。

注記

プラグインは、JavaScript コードからリクエストを行うために consolefetch API を使用する必要があります。そうしないと、一部のリクエストが失敗する可能性があります。詳細は、「動的プラグイン API」を参照してください。

エントリーごとに、endpoint and alias フィールドでプロキシーのエンドポイントとエイリアスを指定する必要があります。Service プロキシータイプの場合、エンドポイント type フィールドを Service に設定し、servicenamenamespace、および port フィールドの値を含める必要があります。たとえば、/api/proxy/plugin/Helm/Helm-charts/releases?limit=10 は、10 個の Helm リリースをリストする helm-charts サービスが含まれる helm プラグインからのプロキシー要求パスです。

サービスプロキシーの例

apiVersion: console.openshift.io/v1
kind: ConsolePlugin
metadata:
  name:<plugin-name>
spec:
  proxy:
  - alias: helm-charts 1
    authorization: UserToken 2
    caCertificate: '-----BEGIN CERTIFICATE-----\nMIID....'en 3
    endpoint: 4
      service:
        name: <service-name>
        namespace: <service-namespace>
        port: <service-port>
      type: Service

1
プロキシーのエイリアス。
2
ログインしたユーザーの OpenShift Container Platform アクセストークンをサービスプロキシー要求に含める必要がある場合は、authorization フィールドを UserToken に設定する必要があります。
注記

ログインしたユーザーの OpenShift Container Platform アクセストークンがサービスプロキシー要求に含まれていない場合は、authorization フィールドを None に設定してください。

3
サービスがカスタムサービス CA を使用する場合、caCertificate フィールドに証明書バンドルが含まれている必要があります。
4
プロキシーのエンドポイント。

7.3.4. ブラウザーでのプラグインの無効化

コンソールユーザーは、disable-plugins クエリーパラメーターを使用して、通常ランタイム時にロードされる特定またはすべての動的プラグインを無効にすることができます。

手順

  • 特定のプラグインを無効にするには、プラグイン名のコンマ区切りリストから無効にするプラグインを削除します。
  • すべてのプラグインを無効にするには、disable-plugins クエリーパラメーターを空の文字列のままにします。
注記

クラスター管理者は、Web コンソールの Cluster Settings ページでプラグインを無効にできます。

7.3.5. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.