複数のインスタンスの Anypoint Runtime Fabric をインストールすることで、複数の Runtime Fabrics 間で同じクラスターを共有し、効率的にリソースを使用することができます。
複数のインスタンスの Runtime Fabric をインストールする
1 つの OpenShift クラスターに複数のインスタンスの Anypoint Runtime Fabric をインストールするには、次の手順に従ってください。
-
Runtime Manager for OpenShift を使用して Runtime Fabric を作成します。
-
Runtime Fabric をインストールするためのカスタム名前空間を作成します。
kubectl create ns <rtf_namespace>
-
前に作成した名前空間の 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"]-
クラスターで、アプリケーションデプロイメント用の追加の名前空間を作成し、必要な表示ラベルを名前空間に追加します。そのためには、次のコンテンツで 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 -
ここで作成したファイルを適用します。
oc apply -f <filename>.yaml -
ステップ 1 と 2 を繰り返して、必要な数の名前空間を追加します。
-
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 -
次の 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><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> -
クラスターで、
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> -
Runtime Fabric のインストールが完了した後に ConfigMap で名前空間の追加または削除を行う場合は、Runtime Fabric エージェントポッドを再起動する必要があります。これを行うには、次のコマンドを実行します。
oc -nrtf delete po -l app=agentポッドを削除すると、Kubernetes によって新しいポッドが開始されます。
-
Red Hat OpenShift Runtime Fabric Operator をインストールする
OperatorHub から Runtime Fabric Operator (rtf-agent-operator) をインストールします。
-
Red Hat OpenShift コンソールで、[Operators (Operator)] > [OperatorHub] に移動します。
-
[OperatorHub] 検索項目で、Runtime Fabric Operator を検索します。
-
rtf-agent-operator ダイアログで、[Install (インストール)] をクリックします。
| Runtime Fabric Operator をインストールするには手動で承認を行う必要があり、完了まで数分かかる場合があります。 |
Values.yaml の必須パラメーター
Runtime Manager で Runtime Fabric インスタンスを作成すると、次の必須パラメーターの値が設定されます。ローカルレジストリを使用していない場合は、レジストリ URL とプルシークレットのデフォルト値を使用してください。
| キー | 値 | 例 |
|---|---|---|
|
アクティベーションデータ |
YW55cG9pbnQubXVsZXNvZnQuY29tOjBmODdmYzYzLTM3MWUtNDU2Yy1iODg5LTU5NTkyNjYyZjUxZQ== |
|
レジストリ URL |
US rtf-runtime-registry.kprod.msap.io EU rtf-runtime-registry.kprod-eu.msap.io |
|
レジストリプルシークレット |
rtf-pull-secret |
|
アプリケーションの Mule ライセンス |
Mule ライセンスキー (Base64 でエンコードされている必要があります) |
Values.yaml の省略可能なパラメーター
必要に応じて次の省略可能なパラメーターを設定します。
| キー | 説明 | 例 |
|---|---|---|
|
共有テナントを有効にする |
authorizedNamespaces=true |
|
Crds と PriorityClass のインストールを有効にする |
install=true |
|
プロキシ値と no_proxy 値 |
- http://<user>:<pass>@<10.0.0.1>:<8080> |
|
Monitoring のプロキシ値 |
socks5://<user>:<pass>@<10.0.0.2>:<8080> |
|
Filebeat の読み取りパス |
- /var/lib/docker/ |
最初のエージェントをクラスターにインストールするには、crds.install の値を true に設定します。同じクラスターの以降のすべてのエージェントインストールでは crds.install を false に設定します。
|
Values.yaml リファレンス
次に 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 のインスタンスをインストールするには、前回の手順を繰り返します。
-
Runtime Manager for OpenShift を使用して Runtime Fabric を作成します。
-
Runtime Fabric をインストールするためのカスタム名前空間を作成します。
kubectl create ns <rtf_namespace>
-
前に作成した名前空間の 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>
-
Red Hat OpenShift コンソールで、[Operators (Operator)] > [Installed Operators (インストール済み Operator)] に移動します。
-
コンソールで、[Project (プロジェクト)] の値を Runtime Fabric のインストール用に作成した名前空間に切り替えます。
-
コンソールで [Create Instance (インスタンスを作成)] をクリックし、[Configure via form view (フォームビューを通じて設定)] を選択します。
-
values.yaml の必須パラメーターを追加します。
-
認証済みの名前空間を使用する場合は、
authorizedNamespaces を true に設定します。 -
crds.install の値を false に設定します。 -
[Create (作成)] をクリックします。