

 **Contribuisci a migliorare questa pagina** 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link **Modifica questa pagina** nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea una funzionalità kro
<a name="create-kro-capability"></a>

Questo argomento spiega come creare una funzionalità kro sul tuo cluster Amazon EKS.

## Prerequisiti
<a name="_prerequisites"></a>

Prima di creare una funzionalità kro, assicurati di avere:
+ Un cluster Amazon EKS esistente che esegue una versione di Kubernetes supportata (sono supportate tutte le versioni con supporto standard ed esteso)
+ Autorizzazioni IAM sufficienti per creare risorse di funzionalità sui cluster EKS
+ (Per CLI/EksCtl) Lo strumento CLI appropriato installato e configurato

**Nota**  
A differenza di ACK e Argo CD, kro non richiede autorizzazioni IAM aggiuntive oltre alla policy di fiducia. kro opera interamente all'interno del cluster e non effettua chiamate API. AWS Tuttavia, è comunque necessario fornire a un IAM Capability Role la policy di fiducia appropriata. Per informazioni sulla configurazione delle autorizzazioni RBAC di Kubernetes per kro, consulta. [Configura le autorizzazioni kro](kro-permissions.md)

## Scegli il tuo strumento
<a name="_choose_your_tool"></a>

Puoi creare una funzionalità kro usando Console di gestione AWS, AWS CLI o eksctl:
+  [Crea una funzionalità kro utilizzando la console](kro-create-console.md)- Usa la console per un'esperienza guidata
+  [Crea una funzionalità kro utilizzando la CLI AWS](kro-create-cli.md)- Usa la AWS CLI per lo scripting e l'automazione
+  [Crea una funzionalità kro usando eksctl](kro-create-eksctl.md)- Usa eksctl per un'esperienza nativa di Kubernetes

## Cosa succede quando crei una funzionalità kro
<a name="_what_happens_when_you_create_a_kro_capability"></a>

Quando crei una funzionalità kro:

1. EKS crea il servizio di capacità kro e lo configura per monitorare e gestire le risorse nel cluster

1. Le definizioni di risorse personalizzate (CRDs) sono installate nel cluster

1. Viene creata automaticamente una voce di accesso per il tuo IAM Capability Role `AmazonEKSKROPolicy` che concede le autorizzazioni per la gestione ResourceGraphDefinitions e le relative istanze (vedi) [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)

1. La funzionalità presuppone l'IAM Capability Role fornito dall'utente (utilizzato solo per la relazione di fiducia)

1. kro inizia a controllare `ResourceGraphDefinition` le risorse e le relative istanze

1. Lo stato della capacità cambia da a `CREATING` `ACTIVE` 

Una volta attivo, è possibile creare o ResourceGraphDefinitions definire modelli personalizzati APIs e crearne APIs delle istanze.

**Nota**  
La voce di accesso creata automaticamente include la voce `AmazonEKSKROPolicy` che concede a kro le autorizzazioni di gestione ResourceGraphDefinitions e le relative istanze. Per consentire a kro di creare le risorse Kubernetes sottostanti definite nell'utente ResourceGraphDefinitions (come le risorse Deployments, Services o ACK), è necessario configurare politiche di accesso aggiuntive. Per ulteriori informazioni sulle voci di accesso e su come configurare autorizzazioni aggiuntive, consulta e. [Configura le autorizzazioni kro](kro-permissions.md) [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)

## Fasi successive
<a name="_next_steps"></a>

Dopo aver creato la funzionalità kro:
+  [concetti kro](kro-concepts.md)- Comprendi i concetti di kro e la composizione delle risorse
+  [concetti kro](kro-concepts.md)- Scopri SimpleSchema le espressioni CEL e i modelli di composizione delle risorse

# Crea una funzionalità kro utilizzando la console
<a name="kro-create-console"></a>

Questo argomento descrive come creare una funzionalità kro (Kube Resource Orchestrator) utilizzando. Console di gestione AWS

## Crea la funzionalità kro
<a name="_create_the_kro_capability"></a>

1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/ home\$1/clusters.

1. Seleziona il nome del cluster per aprire la pagina dei dettagli del cluster.

1. Scegli la scheda **Funzionalità**.

1. Nella barra di navigazione a sinistra, scegli **kro (Kube Resource Orchestrator**).

1. **Scegli la funzionalità Create kro.**

1. Per **IAM Capability Role**:
   + Se disponi già di un IAM Capability Role, selezionalo dal menu a discesa
   + Se devi creare un ruolo, scegli **Create kro** role 

     Questo apre la console IAM in una nuova scheda con policy di fiducia precompilate. Il ruolo non richiede autorizzazioni IAM aggiuntive poiché kro opera interamente all'interno del tuo cluster.

     Dopo aver creato il ruolo, torna alla console EKS e il ruolo verrà selezionato automaticamente.
**Nota**  
A differenza di ACK e Argo CD, kro non richiede autorizzazioni IAM aggiuntive oltre alla politica di fiducia. kro opera interamente all'interno del cluster e non effettua chiamate API. AWS 

1. Scegli **Create** (Crea).

Inizia il processo di creazione delle funzionalità.

## Verifica che la funzionalità sia attiva
<a name="_verify_the_capability_is_active"></a>

1. Nella scheda **Funzionalità**, visualizza lo stato delle capacità di kro.

1. Attendi che lo stato cambi da `CREATING` a`ACTIVE`.

1. Una volta attiva, la funzionalità è pronta per l'uso.

Per informazioni sullo stato delle funzionalità e sulla risoluzione dei problemi, vedere[Lavorare con le risorse di capacità](working-with-capabilities.md).

## Concedi le autorizzazioni per gestire le risorse Kubernetes
<a name="_grant_permissions_to_manage_kubernetes_resources"></a>

Quando crei una funzionalità kro, viene creato automaticamente un EKS Access Entry con`AmazonEKSKROPolicy`, che consente a kro di gestire e le relative istanze. ResourceGraphDefinitions Tuttavia, per impostazione predefinita non viene concessa alcuna autorizzazione per creare le risorse Kubernetes sottostanti (come Deployments, Services, ecc.) definite nel tuo. ConfigMaps ResourceGraphDefinitions

Questa progettazione intenzionale segue il principio del privilegio minimo: diversi richiedono autorizzazioni diverse. ResourceGraphDefinitions Devi configurare in modo esplicito le autorizzazioni o le esigenze in base alle risorse che gestirai. ResourceGraphDefinitions 

Per iniziare rapidamente, in ambienti di test o sviluppo, usa: `AmazonEKSClusterAdminPolicy`

1. Nella console EKS, accedi alla scheda **Accesso** del cluster.

1. In **Voci di accesso**, trova la voce relativa al tuo ruolo kro capability (avrà il ruolo ARN che hai creato in precedenza).

1. Scegli la voce di accesso per aprirne i dettagli.

1. Nella sezione **Politiche di accesso**, scegli **Associa politica di accesso**.

1. Seleziona `AmazonEKSClusterAdminPolicy` dall'elenco delle politiche.

1. Per **l'ambito di accesso**, seleziona **Cluster**.

1. Selezionare **Associate (Associa)**.

**Importante**  
`AmazonEKSClusterAdminPolicy`Concede ampie autorizzazioni per creare e gestire tutte le risorse Kubernetes, inclusa la possibilità di creare qualsiasi tipo di risorsa in tutti i namespace. Questa funzionalità è utile per lo sviluppo, ma non deve essere utilizzata in produzione POCs . Per la produzione, crea politiche RBAC personalizzate che concedano solo le autorizzazioni necessarie per le ResourceGraphDefinitions risorse specifiche che gestirai. Per indicazioni sulla configurazione delle autorizzazioni con privilegi minimi, consulta e. [Configura le autorizzazioni kro](kro-permissions.md) [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)

## Verifica che siano disponibili risorse personalizzate
<a name="_verify_custom_resources_are_available"></a>

Dopo che la funzionalità è attiva, verifica che le risorse personalizzate kro siano disponibili nel tuo cluster.

 **Utilizzo della console** 

1. Accedi al tuo cluster nella console Amazon EKS

1. Scegli la scheda **Risorse**

1. Scegli **Estensioni** 

1. Scegliere **CustomResourceDefinitions** 

Dovresti vedere il tipo di `ResourceGraphDefinition` risorsa elencato.

 **Usare kubectl** 

```
kubectl api-resources | grep kro.run
```

Dovresti vedere il tipo di `ResourceGraphDefinition` risorsa elencato.

## Fasi successive
<a name="_next_steps"></a>
+  [concetti kro](kro-concepts.md)- Comprendi i concetti kro e la composizione delle risorse
+  [concetti kro](kro-concepts.md)- Scopri SimpleSchema le espressioni CEL e i modelli di composizione
+  [Lavorare con le risorse di capacità](working-with-capabilities.md)- Gestisci la tua risorsa kro Capability

# Crea una funzionalità kro utilizzando la CLI AWS
<a name="kro-create-cli"></a>

Questo argomento descrive come creare una funzionalità kro (Kube Resource Orchestrator) utilizzando la CLI. AWS 

## Prerequisiti
<a name="_prerequisites"></a>
+  ** AWS CLI**: versione `2.12.3` o successiva. Per verificare la tua versione, `aws --version` esegui. Per ulteriori informazioni, consulta la Guida per l'utente all'[installazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) nell'interfaccia a riga di AWS comando.
+  **`kubectl`**— Uno strumento da riga di comando per lavorare con i cluster Kubernetes. Per ulteriori informazioni, consulta [Impostazione di `kubectl` e `eksctl`](install-kubectl.md).

## Fase 1: creazione di un ruolo IAM Capability
<a name="_step_1_create_an_iam_capability_role"></a>

Crea un file di policy di fiducia:

```
cat > kro-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Crea il ruolo IAM:

```
aws iam create-role \
  --role-name KROCapabilityRole \
  --assume-role-policy-document file://kro-trust-policy.json
```

**Nota**  
A differenza di ACK e Argo CD, kro non richiede autorizzazioni IAM aggiuntive. kro opera interamente all'interno del cluster e non effettua chiamate API. AWS Il ruolo è necessario solo per stabilire un rapporto di fiducia con il servizio EKS Capabilities.

## Fase 2: Creare la funzionalità kro
<a name="_step_2_create_the_kro_capability"></a>

Crea la risorsa di funzionalità kro sul tuo cluster. Sostituiscilo *region-code* con la AWS regione in cui si trova il cluster (ad esempio`us-west-2`) e *my-cluster* con il nome del cluster.

```
aws eks create-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro \
  --type KRO \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/KROCapabilityRole \
  --delete-propagation-policy RETAIN
```

Il comando viene restituito immediatamente, ma la funzionalità impiega del tempo per diventare attiva poiché EKS crea l'infrastruttura e i componenti di funzionalità richiesti. EKS installerà le Kubernetes Custom Resource Definitions relative a questa funzionalità nel cluster non appena viene creata.

**Nota**  
Se ricevi un errore che indica che il cluster non esiste o non disponi delle autorizzazioni, verifica:  
Il nome del cluster è corretto
La tua AWS CLI è configurata per la regione corretta
Disponi delle autorizzazioni IAM richieste

## Fase 3: Verifica che la funzionalità sia attiva
<a name="_step_3_verify_the_capability_is_active"></a>

Attendi che la funzionalità diventi attiva. Sostituiscilo *region-code* con la AWS regione in cui si trova il cluster e sostituiscilo *my-cluster* con il nome del cluster.

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro \
  --query 'capability.status' \
  --output text
```

La funzionalità è pronta quando viene visualizzato lo stato`ACTIVE`.

Puoi anche visualizzare i dettagli completi delle funzionalità:

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro
```

## Passaggio 4: concedere le autorizzazioni per gestire le risorse Kubernetes
<a name="_step_4_grant_permissions_to_manage_kubernetes_resources"></a>

Quando crei una funzionalità kro, viene creato automaticamente un EKS Access Entry con`AmazonEKSKROPolicy`, che consente a kro di gestire e le relative istanze. ResourceGraphDefinitions Tuttavia, per impostazione predefinita non viene concessa alcuna autorizzazione per creare le risorse Kubernetes sottostanti (come Deployments, Services, ecc.) definite nel tuo. ConfigMaps ResourceGraphDefinitions

Questa progettazione intenzionale segue il principio del privilegio minimo: diversi richiedono autorizzazioni diverse. ResourceGraphDefinitions Ad esempio: \$1 A ResourceGraphDefinition che crea solo risorse ACK ConfigMaps e Secrets necessita di autorizzazioni diverse rispetto a una che crea distribuzioni e servizi \$1 A ResourceGraphDefinition che crea risorse ACK necessita delle autorizzazioni per quelle risorse personalizzate specifiche \$1 Alcuni potrebbero ResourceGraphDefinitions leggere solo le risorse esistenti senza crearne di nuove

È necessario configurare in modo esplicito le autorizzazioni o le esigenze in base alle risorse che gestirai. ResourceGraphDefinitions 

### Configurazione rapida
<a name="_quick_setup"></a>

Per iniziare rapidamente, in ambienti di test o sviluppo, usa: `AmazonEKSClusterAdminPolicy`

Ottieni il ruolo di capacità ARN:

```
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro \
  --query 'capability.roleArn' \
  --output text)
```

Associa la politica di amministrazione del cluster:

```
aws eks associate-access-policy \
  --region region-code \
  --cluster-name my-cluster \
  --principal-arn $CAPABILITY_ROLE_ARN \
  --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
  --access-scope type=cluster
```

**Importante**  
`AmazonEKSClusterAdminPolicy`Concede ampie autorizzazioni per creare e gestire tutte le risorse Kubernetes, inclusa la possibilità di creare qualsiasi tipo di risorsa in tutti i namespace. Questa funzionalità è utile per lo sviluppo, ma non deve essere utilizzata in produzione POCs . Per la produzione, crea politiche RBAC personalizzate che concedano solo le autorizzazioni necessarie per le ResourceGraphDefinitions risorse specifiche che gestirai. Per indicazioni sulla configurazione delle autorizzazioni con privilegi minimi, consulta e. [Configura le autorizzazioni kro](kro-permissions.md) [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)

## Passaggio 5: Verifica della disponibilità di risorse personalizzate
<a name="_step_5_verify_custom_resources_are_available"></a>

Dopo che la funzionalità è attiva, verifica che le risorse personalizzate kro siano disponibili nel tuo cluster:

```
kubectl api-resources | grep kro.run
```

Dovresti vedere il tipo di `ResourceGraphDefinition` risorsa elencato.

## Fasi successive
<a name="_next_steps"></a>
+  [concetti kro](kro-concepts.md)- Comprendi i concetti kro e la composizione delle risorse
+  [concetti kro](kro-concepts.md)- Scopri SimpleSchema le espressioni CEL e i modelli di composizione
+  [Lavorare con le risorse di capacità](working-with-capabilities.md)- Gestisci la tua risorsa kro Capability

# Crea una funzionalità kro usando eksctl
<a name="kro-create-eksctl"></a>

Questo argomento descrive come creare una funzionalità kro (Kube Resource Orchestrator) usando eksctl.

**Nota**  
I seguenti passaggi richiedono la versione eksctl o successiva. `0.220.0` Per verificare la tua versione, esegui. `eksctl version`

## Fase 1: Creare un ruolo di capacità IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Crea un file di policy di fiducia:

```
cat > kro-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Crea il ruolo IAM:

```
aws iam create-role \
  --role-name KROCapabilityRole \
  --assume-role-policy-document file://kro-trust-policy.json
```

**Nota**  
A differenza di ACK e Argo CD, kro non richiede autorizzazioni IAM aggiuntive oltre alla policy di fiducia. kro opera interamente all'interno del cluster e non effettua chiamate API. AWS 

## Fase 2: Creare la funzionalità kro
<a name="_step_2_create_the_kro_capability"></a>

Crea la funzionalità kro usando eksctl. Sostituiscilo *region-code* con la AWS regione in cui si trova il cluster e sostituiscilo *my-cluster* con il nome del cluster.

```
eksctl create capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro \
  --type KRO \
  --role-arn arn:aws:iam::[.replaceable]111122223333:role/KROCapabilityRole
```

Il comando viene restituito immediatamente, ma la funzionalità impiega del tempo per diventare attiva.

## Fase 3: Verificare che la funzionalità sia attiva
<a name="_step_3_verify_the_capability_is_active"></a>

Verifica lo stato della capacità. Sostituiscilo *region-code* con la AWS regione in cui si trova il cluster e sostituiscilo *my-cluster* con il nome del cluster.

```
eksctl get capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro
```

La funzionalità è pronta quando viene visualizzato lo stato`ACTIVE`.

## Passaggio 4: concedere le autorizzazioni per gestire le risorse Kubernetes
<a name="_step_4_grant_permissions_to_manage_kubernetes_resources"></a>

Per impostazione predefinita, kro può solo creare e gestire le relative istanze. ResourceGraphDefinitions Per consentire a kro di creare e gestire le risorse Kubernetes sottostanti definite nel tuo ResourceGraphDefinitions, associa la policy di accesso alla voce di `AmazonEKSClusterAdminPolicy` accesso della funzionalità.

Ottieni il ruolo di capacità ARN:

```
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro \
  --query 'capability.roleArn' \
  --output text)
```

Associa la politica di amministrazione del cluster:

```
aws eks associate-access-policy \
  --region region-code \
  --cluster my-cluster \
  --principal-arn $CAPABILITY_ROLE_ARN \
  --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
  --access-scope type=cluster
```

**Importante**  
`AmazonEKSClusterAdminPolicy`Concede ampie autorizzazioni per creare e gestire tutte le risorse Kubernetes e ha lo scopo di semplificare l'avvio. Per l'uso in produzione, crea politiche RBAC più restrittive che concedano solo le autorizzazioni necessarie per le risorse specifiche che gestirai. ResourceGraphDefinitions Per indicazioni sulla configurazione delle autorizzazioni con privilegi minimi, consulta e. [Configura le autorizzazioni kro](kro-permissions.md) [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)

## Passaggio 5: Verifica della disponibilità di risorse personalizzate
<a name="_step_5_verify_custom_resources_are_available"></a>

Dopo che la funzionalità è attiva, verifica che le risorse personalizzate kro siano disponibili nel tuo cluster:

```
kubectl api-resources | grep kro.run
```

Dovresti vedere il tipo di `ResourceGraphDefinition` risorsa elencato.

## Fasi successive
<a name="_next_steps"></a>
+  [concetti kro](kro-concepts.md)- Comprendi i concetti kro e la composizione delle risorse
+  [concetti kro](kro-concepts.md)- Scopri SimpleSchema le espressioni CEL e i modelli di composizione
+  [Lavorare con le risorse di capacità](working-with-capabilities.md)- Gestisci la tua risorsa kro Capability