Flex Gateway新着情報
Governance新着情報
Monitoring API Manager複数のインスタンスの Anypoint Runtime Fabric をインストールすることで、複数の Runtime Fabrics 間で同じクラスターを共有し、効率的にリソースを使用することができます。
この機能を使用するには、複数のインスタンスがサポートされる 2.2.5 以上のバージョンの Runtime Fabric エージェントにアップグレードする必要があります。
エージェントの名前空間はアプリケーションの名前空間に 1 対 1 でマップされます。同じクラスターの複数のインスタンスの Runtime Fabric 間でアプリケーションの名前空間を共有することはできません。
複数のインスタンスがある場合、最初の Runtime Fabric エージェントのインストールにより、persistencegateways.rtf.mulesoft.com のカスタムリソース定義 (CRD) と優先度クラスの rtf-components-high-priority リソースが作成されます。エージェントをアンインストールしても、Runtime Fabric エージェントではこれらのリソースがクリーンアップされません。
|
1 つの BYOK (Bring Your Own Kubernetes) クラスターに複数のインスタンスの Anypoint Runtime Fabric をインストールするには、次の手順に従ってください。
Runtime Manager を使用して Runtime Fabric を作成します。
前のステップで作成した 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 Helm リポジトリを追加します。
helm repo add <name> <helm_repo_url> --username <your_username> --password <your_password>
必要に応じて、共有テナントを設定できます。詳細は、承認済み名前空間の設定を参照してください。
Anypoint Platform UI から values.yaml ファイルをダウンロードして設定します。
values.yaml ファイルの必須パラメーターを設定します。
クラスターに Runtime Fabric をインストールします。
helm install runtime-fabric rtf/rtf-agent --version <rtf_version> -f values.yaml -n <rtf_namespace>
Runtime Manager で Runtime Fabric インスタンスを作成すると、次の必須パラメーターの値が設定されます。ローカルレジストリを使用していない場合は、レジストリ URL とプルシークレットのデフォルト値を使用してください。
| Key (キー) | 値 | 例 |
|---|---|---|
|
アクティベーションデータ |
YW55cG9pbnQubXVsZXNvZnQuY29tOjBmODdmYzYzLTM3MWUtNDU2Yy1iODg5LTU5NTkyNjYyZjUxZQ== |
|
レジストリ URL |
US rtf-runtime-registry.kprod.msap.io EU rtf-runtime-registry.kprod-eu.msap.io |
|
レジストリプルシークレット |
rtf-pull-secret |
|
アプリケーションの Mule ライセンス |
Mule ライセンスキー (Base64 でエンコードされている必要があります) |
必要に応じて次の省略可能なパラメーターを設定します。
| Key (キー) | 説明 | 例 |
|---|---|---|
|
共有テナントを有効にする |
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 ファイルの例を示します。
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
Mule アプリケーションをデプロイするには、インストールするエージェントごとに app-namespace を作成します。
apiVersion: v1
kind: Namespace
metadata:
name: <app-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
新しい <rtf_namespace> でイングレスを作成します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rtf-ingress
namespace: <rtf_namespace>
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: rtf-nginx
rules:
- host: "testrtf.com"
http:
paths:
- pathType: Prefix
path: "/app-name(/|$)(.*)"
backend:
service:
name: service
port:
name: service-port
<rtf_namespace> ごとに異なるホスト名を使用してください。複数のイングレスで同じホストについて異なるパスを定義すると、イングレスコントローラーによって定義がマージされます。 結果として、同じ名前の, Mule アプリケーションにアクセスできなくなり、Runtime Fabric の問題ではなく k8s の問題が発生することになります。
必要に応じて、他のサービスと一緒に Runtime Fabric を Kubernetes クラスターにデプロイできるようにする承認済み名前空間を設定できます。
Runtime Fabric をインストールする前に Runtime Fabric 名前空間用に authorized-namespaces ConfigMap ファイルを作成する必要があります。さらに、ConfigMap には authorized-namespaces という名前を付ける必要があります。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>
rtf:resource-metrics-collector ClusterRole にはノード、ポッド、名前空間を get および list するクラスター全体の権限があり、ノードに対する watch 権限があります。ロール ClusterRole は次のように定義されます。
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: <app-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
以前に作成したファイルを適用します。
kubectl apply -f <filename>.yaml
ステップ 1 と 2 を繰り返して、必要な数の名前空間を追加します。
追加の名前空間で次の設定を適用することにより、Runtime Fabric エージェント ServiceAccount が含まれる Runtime Fabric エージェント ClusterRole の RoleBinding を作成します。
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: <rb_name>
namespace: <app_namespace>
subjects:
- kind: ServiceAccount
name: rtf-agent
namespace: <rtf_namespace>
roleRef:
kind: ClusterRole
name: rtf:agent-<rtf_namespace>
apiGroup: rbac.authorization.k8s.io