Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Runtime Fabric では、カスタムリソース kubernetestemplates.rtf.mulesoft.com
テンプレートを使用して Mule アプリケーション Kubernetes リソースをカスタマイズできます。
kubernetestemplate
リソースに mule-application
という名前を付けます。テンプレートは 2 つの異なる名前空間で定義できます。
アプリケーション名前空間
テンプレートは、指定された名前空間にデプロイされたすべての Mule アプリケーションに適用されます。
Runtime Fabric エージェント名前空間
テンプレートは、指定された Runtime Fabric エージェントによって管理されるすべての Mule アプリケーションに適用されます。
kubernetestemplate
リソースは、リソースが作成された後に作成される Mule アプリケーションデプロイメントにのみ適用されます。既存のデプロイメントには影響しません。kubernetestemplate
を作成または更新した後に Mule アプリケーションを再デプロイすると、テンプレートが適用されます。
kubernetestemplate
リソースを使用すると、アプリケーションのポッド、デプロイメント、およびサービスオブジェクトで次の要素を設定できます。
環境変数のカスタマイズはサポートされていません。
環境変数でサポートされるのは、「コンソールログの有効化」と「サービスアカウントの無効化」に対応するキーワードのみです。
セキュリティコンテキストポッドの場合、使用するキーは containerSecurityContext
です。
デプロイメント
アノテーション
表示ラベル
サービス
アノテーション
表示ラベル
Runtime Fabric ですでに定義されている設定要素は、テンプレートで定義した設定要素より優先されます。
テンプレートに設定できるキー要素の CRD を取得するには、次のコマンドを実行することで Kubernetes の仕様を取得します。
kubectl get crd kubernetestemplates.rtf.mulesoft.com -o yaml
ポッド
、デプロイ
、サービス
オブジェクトでの表示ラベル
の設定
apiVersion: rtf.mulesoft.com/v1
kind: KubernetesTemplate
metadata:
name: mule-application
namespace: rtf
spec:
deployment:
metadata:
labels:
deploymentLabel: value
service:
metadata:
labels:
serviceLabel: value
pod:
metadata:
labels:
podLabel: value
ポッド
オブジェクトの下にある containerSecurityContext
のランタイムデフォルト seccompProfile
の設定:
apiVersion: rtf.mulesoft.com/v1
kind: KubernetesTemplate
metadata:
name: mule-application
namespace: rtf
spec:
pod:
containerSecurityContext:
seccompProfile:
type: RuntimeDefault
設定できるすべてのキーを示した別の例:
apiVersion: "rtf.mulesoft.com/v1"
kind: KubernetesTemplate
metadata:
name: mule-application
namespace: rtf
labels:
spec:
deployment:
metadata:
labels:
annotations:
service:
metadata:
labels:
annotations:
pod:
metadata:
labels:
annotations:
env:
ENABLE_CONSOLE_LOG: "true"
automountServiceAccountToken: true
containerSecurityContext:
seccompProfile:
type: RuntimeDefault
tolerations:
- key: "example-key"
operator: "Exists"
effect: "NoSchedule"
ephemeralStorageLimit: 4Gi
nodeSelector:
region: us-east
affinity:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
rtf.mulesoft.com/id: "{{ .Values.id }}"
CRD を使用して上書きできないキー要素:
デプロイメント
labels (表示ラベル)
環境
組織
type
rtf.mulesoft.com/id
rtf.mulesoft.com/version
rtf.mulesoft.com/agentNamespace
アノテーション
rtfc.mulesoft.com/egress-ruleset (if set in deployment values)
rtf.mulesoft.com/desiredStatus
rtf.mulesoft.com/replicas
rtf.mulesoft.com/version
ポッド
アノテーション
fluentbit.io/exclude
mulesoft.com/resources
labels (表示ラベル)
app
環境
am-org-id
root-org-id
組織
rtf.mulesoft.com/id
rtf.mulesoft.com/generation
type
rtf.mulesoft.com/disableAmLogForwarding
name
リソース
ephemeral-storage (env.resources で設定されていないか、またはクラスターフレーバーが rtfc である場合)
ServiceAccountToken
automountServiceAccountToken
SecurityContext
runAsUser
runAsGroup
allowPrivilageEscalation
capabilities
privileged
readOnlyRootFilesystem
NodeSelector
kubernetes.io/os
kubernetes.io/arch
beta.kubernetes.io/os
beta.kubernetes.io/arch
RTF.DeploymentNodeSelector
Affinity (アフィニティ)
podAntiAffinity
サービス
labels (表示ラベル)
ingress.rtf.mulesoft.com/bind
rtf.mulesoft.com/id
rtf.mulesoft.com/version
rtf.mulesoft.com/agentNamespace
アノテーション
rtf.mulesoft.com/merge-policy
rtf.mulesoft.com/environment
rtf.mulesoft.com/organization
デフォルトでは、Mule アプリケーションで他のソースを 1 つ以上ログに記録していることが検出されると、コンソールログは無効になります。このデフォルトの動作は Kubernetes テンプレートを使用して、クラスターレベルでルート Kubernetes テンプレートを使用するか、Mule アプリケーションの名前空間レベルで上書きできます。
Kubernetes テンプレートを使用してコンソールログを有効にするには、env
セクションの ENABLE_CONSOLE_LOG
変数を設定します。
pod:
env:
ENABLE_CONSOLE_LOG: "true"
stdout を使用してログを転送するクラスターの場合、ログ転送機能に影響する可能性があります。Kubernetes チームと協力して、必要に応じてログ転送設定を調整し、ログの監視と収集を継続的に行うことができるようにしてください。
|
Anypoint Monitoring (AMLogFwdingAppender を含む) のサイドカーコンテナを使用する場合、コンソールログも無効化されます。
デフォルトでは、Mule アプリケーションデプロイメントごとに サービスアカウントが作成されます。このデフォルトの動作は Kubernetes テンプレートを使用して、クラスターレベルでルート Kubernetes テンプレートを使用するか、Mule アプリケーションの名前空間レベルで上書きできます。 無効になっている場合、Mule アプリケーションデプロイメントで デフォルトのサービスアカウントが使用されます。
Kubernetes テンプレートを使用して Mule アプリケーションごとのサービスアカウントの作成を無効にするには、env
セクションの DISABLE_PER_APP_SA
変数を設定します。
pod:
env:
DISABLE_PER_APP_SA: "true"