Verrazzanoワークロードについて

Verrazzanoワークロードの詳細

Componentには埋込みワークロードが含まれます。VerrazzanoおよびOAM仕様には、VerrazzanoWebLogicWorkloadやContainerizedWorkloadなどの複数のワークロードが用意されています。ワークロードは、任意のKubernetesリソースにすることもできます。

次の例は、Component内に埋め込まれたVerrazzanoHelidonWorkloadワークロードを示しています。

apiVersion: core.oam.dev/v1alpha2
kind: Component
...
spec:
  workload:
    apiVersion: oam.verrazzano.io/v1alpha1
    kind: VerrazzanoHelidonWorkload
    spec:
      deploymentTemplate:
        podSpec:
          containers:
            - name: example-container
              image: ...
              ...

オプションで、ワークロードにWorkloadDefinitionを関連付けることができます。これにより、ワークロードのスキーマに関する情報をプラットフォームに提供します。WorkloadDefintionは、通常、エンド・ユーザーではなくプラットフォームによって提供されます。

スコープ

Scopeは、Componentワークロードをカスタマイズし、デプロイメント中に関連リソースを生成します。ApplicationConfigurationには、Scopeのコンテンツが埋め込まれているかわりにScope参照が含まれます。プラットフォームでは、適用された各Componentへの参照を使用してScopeが更新されます。この更新によって関連オペレータがトリガーされ、Scopeが処理されます。

次の例は、example-health-scopeという名前のHealthScopeへの参照を示しています。

apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
...
spec:
  components:
    - componentName: example-component
      scopes:
        - scopeRef:
            apiVersion: core.oam.dev/v1alpha2
            kind: HealthScope
            name: example-health-scope
        ...

次の例は、参照されているHealthScopeの構成の詳細を示しています。

apiVersion: core.oam.dev/v1alpha2
kind: HealthScope
metadata:
  name: example-health-scope
spec:
  probe-method: GET
  probe-endpoint: /health

各Scopeタイプには、オプションでScopeDefinitionを関連付けることができます。これにより、Scopeの処理に関する追加情報がプラットフォームに提供されます:

  • Scopeのスキーマ
  • Scopeを適用できるワークロード・タイプ
  • 関連するComponent参照を記録するために使用されるScope内のフィールド

ScopeDefintionは、通常、エンド・ユーザーではなくプラットフォームによって提供されます。

Verrazzanoプラットフォームには、複数のワークロード定義と実装が用意されています:

OAM ContainerizedWorkload

ContainerizedWorkloadは、前述のワークロード・タイプによってカバーされない長時間実行コンテナ・ワークロードに使用する必要があります。このワークロード・タイプは、Deploymentワークロードに似ています。OAMをKubernetes以外のデプロイメント環境で使用できるようにするために提供されています。OAM仕様を参照してください。