このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
機能の Kubernetes リソース
クラスターで機能を有効にしたら、後は通常クラスターで Kubernetes カスタムリソースを作成して管理することでクラスターを操作することになります。機能ごとに独自のカスタムリソース定義 (CRD) セットを策定して、それぞれに固有の機能で Kubernetes API を拡張できます。
Argo CD リソース
Argo CD 機能を有効にすると、次の Kubernetes リソースを作成および管理できます。
- アプリケーション
-
Git リポジトリからターゲットクラスターへのデプロイを定義します。
Applicationリソースでは、ソースリポジトリ、ターゲット名前空間、同期ポリシーを指定します。Argo CD 機能インスタンスごとに最大 1,000 個のApplicationリソースを作成できます。 - ApplicationSet
-
テンプレートから複数の
Applicationリソースを生成し、マルチクラスターとマルチ環境のデプロイを可能にします。ApplicationSetリソースは、ジェネレーターを使用して、クラスターリストや Git ディレクトリといったソースに基づいてApplicationリソースを動的に作成します。 - AppProject
-
Applicationリソースを論理的にグループ化してアクセスを制御します。AppProjectリソースは、Applicationリソースが使用できるリポジトリ、クラスター、名前空間を定義して、マルチテナンシーとセキュリティ境界を有効にします。
Application リソースの例:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/org/repo targetRevision: main path: manifests destination: server: https://kubernetes.default.svc namespace: production
Argo CD のリソースと概念の詳細については、「Argo CD の概念」を参照してください。
kro リソース
kro 機能を有効にすると、次の Kubernetes リソースを作成および管理できます。
- ResourceGraphDefinition (RGD)
-
複数の Kubernetes と AWS リソースを高次の抽象化に構成するカスタム API を定義します。プラットフォームチームは、ガードレールに沿ってパターンを再利用可能できるように
ResourceGraphDefinitionリソースを作成します。 - カスタムリソースインスタンス
-
ResourceGraphDefinitionリソースを作成したら、ResourceGraphDefinitionで定義されたカスタム API のインスタンスを作成できます。kro は、ResourceGraphDefinitionに指定されたリソースを自動的に作成および管理します。
ResourceGraphDefinition リソースの例:
apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment # ... deployment spec - id: service template: apiVersion: v1 kind: Service # ... service spec
WebApplication インスタンスの例:
apiVersion: v1alpha1 kind: WebApplication metadata: name: my-web-app namespace: default spec: name: my-web-app replicas: 3
このインスタンスを適用すると、kro は ResourceGraphDefinition に定義された Deployment リソースと Service リソースを自動的に作成します。
kro のリソースと概念の詳細については、「kro の概念」を参照してください。
ACK リソース
ACK 機能を有効にすると、Kubernetes カスタムリソースを使用して AWS リソースを作成および管理できます。ACK では 50 を超える AWS サービスの 200 を超える CRD を策定できるため、Kubernetes ワークロードと共に AWS リソースを定義し、Kubernetes で専用の AWS インフラストラクチャリソースを管理できます。
ACK リソースの例:
- S3 バケット
-
Bucketリソースは、バージョニング、暗号化、ライフサイクルポリシーを備えた Amazon S3 バケットを作成および管理します。 - RDS DBInstance
-
DBInstanceリソースは、自動バックアップとメンテナンス期間を備えた Amazon RDS データベースインスタンスをプロビジョニングして管理します。 - DynamoDB テーブル
-
Tableリソースは、プロビジョニング済みのキャパシティまたはオンデマンドキャパシティを備えた DynamoDB テーブルを作成および管理します。 - IAM ロール
-
Roleリソースは、AWS サービスアクセスの信頼ポリシーとアクセス許可ポリシーを備えた IAM ロールを定義します。 - Lambda 関数
-
Functionリソースは、コード、ランタイム、実行ロール設定を備えた Lambda 関数を作成および管理します。
Bucket リソースの指定例:
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-app-bucket spec: name: my-unique-bucket-name-12345 versioning: status: Enabled encryption: rules: - applyServerSideEncryptionByDefault: sseAlgorithm: AES256
ACK のリソースと概念の詳細については、「ACK の概念」を参照してください。
リソースの制限
EKS 機能には、次のリソース制限があります。
Argo CD の使用制限:
-
Argo CD 機能インスタンスあたり最大 1,000 個の
Applicationリソース -
Argo CD 機能インスタンスあたり最大 100 個のリモートクラスターを設定可能
リソース設定の制限:
-
Argo CD では
Applicationリソースあたり最大 150 個の Kubernetes リソース -
kro では
ResourceGraphDefinitionあたり最大 64 個の Kubernetes リソース
注記
これらの制限は、各機能インスタンスで管理されるリソースの数に適用されます。さらに厳しい制限が必要な場合は、複数のクラスターに機能をデプロイできます。
次のステップ
機能に固有のタスクと高度な設定については、以下のトピックを参照してください。
-
ACK の概念 – ACK の概念およびリソースライフサイクルを理解する
-
Argo CD の使用 – GitOps ワークフローに Argo CD 機能を使用する
-
kro の概念 – kro の概念とリソース構成を理解する