単一 OpenShift クラスターへの Runtime Fabric の複数のインスタンスのインストール

複数のインスタンスの Anypoint Runtime Fabric をインストールすることで、複数の Runtime Fabrics 間で同じクラスターを共有し、効率的にリソースを使用することができます。

複数のインスタンスの Runtime Fabric をインストールする

1 つの OpenShift クラスターに複数のインスタンスの Anypoint Runtime Fabric をインストールするには、次の手順に従ってください。

  1. Runtime Manager for OpenShift を使用して Runtime Fabric を作成します。

  2. Runtime Fabric をインストールするためのカスタム名前空間を作成します。

    kubectl create ns <rtf_namespace>
  3. 前に作成した名前空間の Runtime Fabric コンポーネントイメージを取得するための Docker プルシークレットを作成します。

    kubectl create secret docker-registry rtf-pull-secret --namespace <rtf_namespace> --docker-server=<docker_registry_url> --docker-username=<docker_registry_username> --docker-password=<docker_ registry_password>

(省略可能) 承認済み名前空間を設定する

必要に応じて、他のサービスと一緒に Runtime Fabric を Kubernetes クラスターにデプロイできるようにする​『承認済み名前空間』​を設定できます。

始める前に

承認済み名前空間を設定する前に、次の点に注意してください。

  • Runtime Fabric をインストールする​​に ​authorized-namespaces​ ConfigMap ファイルを作成する必要があります。さらに、ConfigMap には ​authorized-namespaces​ という名前を付ける必要があります。

  • rtf:resource-metrics-collector​ ClusterRole にはノード、ポッド、名前空間を ​get​ および ​list​ するクラスター全体の権限があり、ノードに対する ​watch​ 権限があります。ロール ClusterRole は次のように定義されます。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: rtf:resource-metrics-collector
      labels:
        {{- include "labels.standard" . | nindent 4 }}
    rules:
      - apiGroups: [""]
        resources: ["nodes", "pods", "namespaces"]
        verbs: ["list", "get"]
      - apiGroups: [""]
        resources: ["nodes"]
        verbs: ["watch"]
    1. クラスターで、アプリケーションデプロイメント用の追加の名前空間を作成し、必要な表示ラベルを名前空間に追加します。そのためには、次のコンテンツで YAML ファイルを作成します。

      apiVersion: v1
      kind: Namespace
      metadata:
        name: <namespace>
        labels:
          rtf.mulesoft.com/agentNamespace: <rtf_namespace>
          rtf.mulesoft.com/envId: <environment_id>
          rtf.mulesoft.com/org: <org_id>
          rtf.mulesoft.com/role: workers
      copy
    2. ここで作成したファイルを適用します。

      oc apply -f <filename>.yaml
      copy
    3. ステップ 1 と 2 を繰り返して、必要な数の名前空間を追加します。

    4. Runtime Fabric エージェント ServiceAccount が含まれる Runtime Fabric エージェント ClusterRole の RoleBinding を作成します。そのためには、追加の名前空間で次の設定を適用します。

      kind: RoleBinding
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: <name>
        namespace: <app_namespace>
      subjects:
        - kind: ServiceAccount
          name: rtf-agent
          namespace: <rtf_namespace>
      roleRef:
        kind: ClusterRole
        name: rtf:agent
        apiGroup: rbac.authorization.k8s.io
      copy
    5. 次の RoleBinding テンプレートを rtf 名前空間と他の追加の名前空間に適用します。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: rtf
        namespace: <rtf_namespace>
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: system:openshift:scc:anyuid
      subjects:
        - kind: ServiceAccount
          name: rtf-agent
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: mule-clusterip-service
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: resource-cache
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: rtf-persistence-gateway
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: cluster-status
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: am-log-forwarder
          namespace: <rtf_namespace>
      copy

      <additional-namespace>​ でも、同じテンプレートを指定します。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: rtf
        namespace: <app_namespace>
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: system:openshift:scc:anyuid
      subjects:
        - kind: ServiceAccount
          name: rtf-agent
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: mule-clusterip-service
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: resource-cache
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: rtf-persistence-gateway
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: cluster-status
          namespace: <rtf_namespace>
        - kind: ServiceAccount
          name: am-log-forwarder
          namespace: <rtf_namespace>
      copy
    6. クラスターで、​authorized-namespaces​ という名前の ConfigMap ファイルを作成し、追加の名前空間があればリストします。追加の名前空間のマッピングキーは、標準 K8s リソース (ConfigMap) を使用するため、一意である必要があります。キー名は、一意でさえあれば、形式については特に要件はありません。

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: authorized-namespaces
        namespace: <rtf_namespace>
      data:
        APPLICATION_NAMESPACE_1: "<app_namespace_1>"
        APPLICATION_NAMESPACE_2: "<app_namespace_1>
      copy
    7. Runtime Fabric のインストールが完了した後に ConfigMap で名前空間の追加または削除を行う場合は、Runtime Fabric エージェントポッドを再起動する必要があります。これを行うには、次のコマンドを実行します。

      oc -nrtf delete po -l app=agent
      copy

      ポッドを削除すると、Kubernetes によって新しいポッドが開始されます。

Red Hat OpenShift Runtime Fabric Operator をインストールする

OperatorHub から Runtime Fabric Operator (​rtf-agent-operator​) をインストールします。

  1. Red Hat OpenShift コンソールで、​[Operators (Operator)]​ > ​[OperatorHub]​ に移動します。

  2. [OperatorHub] 検索項目で、Runtime Fabric Operator を検索します。

  3. rtf-agent-operator ダイアログで、​[Install (インストール)]​ をクリックします。

Runtime Fabric Operator をインストールするには手動で承認を行う必要があり、完了まで数分かかる場合があります。

values.yaml ファイルの必須パラメーター

Runtime Manager で Runtime Fabric インスタンスを作成すると、次の必須パラメーターの値が設定されます。ローカルレジストリを使用していない場合は、レジストリ URL とプルシークレットのデフォルト値を使用してください。

キー

activationData

アクティベーションデータ

YW55cG9pbnQubXVsZXNvZnQuY29tOjBmODdmYzYzLTM3MWUtNDU2Yy1iODg5LTU5NTkyNjYyZjUxZQ==

rtfRegistry

レジストリ URL

US rtf-runtime-registry.kprod.msap.io

EU rtf-runtime-registry.kprod-eu.msap.io

pullSecretName

レジストリプルシークレット

rtf-pull-secret

muleLicense

アプリケーションの Mule ライセンス

Mule ライセンスキー (Base64 でエンコードされている必要があります)

values.yaml の省略可能なパラメーター

必要に応じて次の省略可能なパラメーターを設定します。

キー 説明

authorizedNamespaces

共有テナントを有効にする

authorizedNamespaces=true

crds.install

Crds と PriorityClass のインストールを有効にする

install=true

proxy.http.proxy
proxy.http.no_proxy​ `

プロキシ値と no_proxy 値

- http://<user>:<pass>@<10.0.0.1>:<8080>​
- <1.1.1.1:8888,2.2.2.2:9999>

proxy.monitoring.proxy

Monitoring のプロキシ値

socks5://<user>:<pass>@<10.0.0.2>:<8080>

global.containerLogPaths

Filebeat の読み取りパス

- /var/lib/docker/
- /var/log/containers
- /var/log/pods

最初のエージェントをクラスターにインストールするには、​crds.install​ の値を ​true​ に設定します。
同じクラスターの以降のすべてのエージェントインストールでは ​crds.install​ を ​false​ に設定します。

values.yml リファレンス

次に ​values.yaml​ ファイルの例を示します。

activationData: <activation_data>
  proxy:
    http_proxy:
    http_no_proxy:
    monitoring_proxy:
custom_log4j_enabled: true
muleLicense: <mule_license_key>
global:
  crds:
    install: true
  authorizedNamespaces: false
  image:
    rtfRegistry: rtf-runtime-registry.kprod.msap.io
    pullSecretName: rtf-pull-secret
  containerLogPaths:
  - /var/lib/docker/containers
  - /var/log/containers
  - /var/log/pods

Runtime Fabric の複数のインスタンスのインストール

2 つ目移行の Runtime Fabric for OpenShift のインスタンスをインストールするには、前回の手順を繰り返します。

  1. Runtime Manager for OpenShift を使用して Runtime Fabric を作成します。

  2. Runtime Fabric をインストールするためのカスタム名前空間を作成します。

    kubectl create ns <rtf_namespace>
  3. 前に作成した名前空間の Runtime Fabric コンポーネントイメージを取得するための Docker プルシークレットを作成します。

    kubectl create secret docker-registry rtf-pull-secret --namespace <rtf_namespace> --docker-server=<docker_registry_url> --docker-username=<docker_registry_username> --docker-password=<docker_ registry_password>
  1. Red Hat OpenShift コンソールで、​[Operators (Operator)] > [Installed Operators (インストール済み Operator)]​ に移動します。

  2. コンソールで、​[Project (プロジェクト)]​ の値を Runtime Fabric のインストール用に作成した名前空間に切り替えます。

  3. コンソールで ​[Create Instance (インスタンスを作成)]​ をクリックし、​[Configure via form view (フォームビューを通じて設定)]​ を選択します。

  4. values.yaml の必須パラメーターを追加します。

  5. 認証済みの名前空間を使用する場合は、​authorizedNamespaces​ を ​true​ に設定します。

  6. crds.install​ の値を ​false​ に設定します。

  7. [Create (作成)]​ をクリックします。