

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 功能 Kubernetes 資源
<a name="capability-kubernetes-resources"></a>

在叢集上啟用功能後，您通常會透過在叢集中建立和管理 Kubernetes 自訂資源來與其互動。每個功能都提供自己的一組自訂資源定義 (CRDs)，以功能特定的功能擴展 Kubernetes API。

## Argo CD 資源
<a name="_argo_cd_resources"></a>

當您啟用 Argo CD 功能時，您可以建立和管理下列 Kubernetes 資源：

 **Application (應用程式)**   
定義從 Git 儲存庫到目標叢集的部署。 `Application` 資源會指定來源儲存庫、目標命名空間和同步政策。每個 Argo CD 功能執行個體最多可以建立 1000 個`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 概念](argocd-concepts.md)。

## kro 資源
<a name="_kro_resources"></a>

啟用 kro 功能時，您可以建立和管理下列 Kubernetes 資源：

 **ResourceGraphDefinition (RGD)**   
定義將多個 Kubernetes AWS 和資源組成為更高層級抽象的自訂 API。平台團隊會建立 `ResourceGraphDefinition` 資源，以提供具有護欄的可重複使用模式。

 **自訂資源執行個體**   
建立`ResourceGraphDefinition`資源後，您可以建立由 定義的自訂 API 執行個體`ResourceGraphDefinition`。 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 會自動建立 中`Service`定義的 `Deployment`和資源`ResourceGraphDefinition`。

如需 kro 資源和概念的詳細資訊，請參閱 [kro 概念](kro-concepts.md)。

## ACK 資源
<a name="_ack_resources"></a>

啟用 ACK 功能時，您可以使用 Kubernetes 自訂 AWS 資源來建立和管理資源。ACK 為超過 50 種 AWS 服務提供超過 200 CRDs，可讓您在 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 概念](ack-concepts.md)。

## 資源限制
<a name="_resource_limits"></a>

EKS 功能具有下列資源限制：

 **Argo CD 用量限制**：
+ 每個 Argo CD 功能執行個體最多 1000 個`Application`資源
+ 每個 Argo CD 功能執行個體最多設定 100 個遠端叢集

 **資源組態限制**：
+ Argo CD 中每個資源最多 150 個 Kubernetes `Application` 資源
+ kro `ResourceGraphDefinition`中每個資源最多 64 個 Kubernetes 資源

**注意**  
這些限制適用於每個功能執行個體管理的資源數量。如果您需要更高的限制，您可以在多個叢集之間部署功能。

## 後續步驟
<a name="_next_steps"></a>

如需功能特定的任務和進階組態，請參閱下列主題：
+  [ACK 概念](ack-concepts.md) – 了解 ACK 概念和資源生命週期
+  [使用 Argo CD](working-with-argocd.md) – 使用適用於 GitOps 工作流程的 Argo CD 功能
+  [kro 概念](kro-concepts.md) – 了解 kro 概念和資源合成