Mule アプリケーション Kubernetes リソースのカスタマイズ

Anypoint Runtime Fabric では、カスタムリソース ​kubernetestemplates.rtf.mulesoft.com​ テンプレートを使用して Mule アプリケーション Kubernetes リソースをカスタマイズできます。

kubernetestemplate​ リソースに ​mule-application​ という名前を付けます。テンプレートは 2 つの異なる名前空間で定義できます。

  • アプリケーション名前空間
    テンプレートは、指定された名前空間にデプロイされたすべての Mule アプリケーションに適用されます。

  • Runtime Fabric エージェント名前空間
    テンプレートは、指定された Runtime Fabric エージェントによって管理されるすべての Mule アプリケーションに適用されます。

kubernetestemplate​ リソースは、リソースが作成された後に作成される Mule アプリケーションデプロイメントにのみ適用されます。既存のデプロイメントには影響しません。​kubernetestemplate​ を作成または更新した後に Mule アプリケーションを再デプロイすると、テンプレートが適用されます。

kubernetestemplate​ リソースを使用すると、アプリケーションのポッド、デプロイメント、およびサービスオブジェクトで次の要素を設定できます。

セキュリティコンテキストポッドの場合、使用するキーは ​containerSecurityContext​ です。

  • デプロイメント

    • アノテーション

    • Labels (ラベル)

  • サービス

    • アノテーション

    • Labels (ラベル)

Runtime Fabric ですでに定義されている設定要素は、テンプレートで定義した設定要素より優先されます。

テンプレートに設定できるキー要素の CRD を取得するには、次のコマンドを実行することで Kubernetes の仕様を取得します。

kubectl get crd kubernetestemplates.rtf.mulesoft.com -o yaml
copy

ポッド​、​デプロイ​、​サービスオブジェクト​での​表示ラベル​の設定

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
copy

ポッド​オブジェクトの下にある ​containerSecurityContext​ のランタイムデフォルト ​seccompProfile​ の設定:

apiVersion: rtf.mulesoft.com/v1
kind: KubernetesTemplate
metadata:
  name: mule-application
  namespace: rtf
spec:
  pod:
    containerSecurityContext:
      seccompProfile:
        type: RuntimeDefault
copy

設定できるすべてのキーを示した別の例:

CRD を使用して上書きできないキー要素:

  • デプロイメント

    • Labels (ラベル)

      • 環境

      • 組織

        • 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

        • rtf.mulesoft.com/disableAmLogForwarding

      • 名前

  • リソース

    • 揮発ストレージ (env.resources で設定されていないか、またはクラスターフレーバーが rtfc である場合)

  • SecurityContext

    • runAsUser

    • runAsGroup

    • allowPrivilageEscalation

    • 機能

  • NodeSelector

    • kubernetes.io/os

    • kubernetes.io/arch

    • beta.kubernetes.io/os

    • beta.kubernetes.io/arch

    • RTF.DeploymentNodeSelector

  • Affinity (アフィニティ)

    • podAntiAffinity