Installazione su altre distribuzioni Kubernetes


Questa pagina mostra come installare Config Connector su una distribuzione Kubernetes diversa da Google Kubernetes Engine (GKE) su Google Cloud, ad esempio GKE su AWS.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

Installazione di Config Connector

Per installare Config Connector in un altro ambiente Kubernetes, dopo aver creato o identificato un cluster Kubernetes, crea un account di servizio Identity and Access Management (IAM) e poi installa i componenti di Config Connector sul cluster.

Creazione di un ClusterRoleBinding

Config Connector ha bisogno dell'autorizzazione per creare ruoli Kubernetes prima di poter creare risorse.

Verifica di poter creare ruoli eseguendo il seguente comando:

kubectl auth can-i create roles

Se l'output è yes, vai alla sezione Creare un'identità.

Se l'output è no, crea un ClusterRoleBinding nel cluster, che consente di creare ruoli:

kubectl create clusterrolebinding cluster-admin-binding \
    --clusterrole cluster-admin \
    --user ACCOUNT_EMAIL

Sostituisci ACCOUNT_EMAIL con l'indirizzo email che utilizzi per accedere al tuo account Cloud Billing.

L'output dovrebbe contenere la frase cluster-admin-binding created. Se questa frase non viene visualizzata, contatta l'amministratore del tuo account di fatturazione Cloud o del tuo cluster GKE in merito alle autorizzazioni.

Creazione di un'identità

Config Connector ha bisogno di un'identità Cloud per comunicare con altre risorse. Per configurare l'identità, crea un account di servizio e una chiave dell'account di servizio IAM. Dopodiché, importa le credenziali della chiave come secret in ogni cluster che esegue Config Connector.

Nella prossima serie di istruzioni, importerai una Google Cloud chiave delle credenziali dell'account di servizio nel cluster Kubernetes. L'importazione delle credenziali dell'account di servizio direttamente in un cluster è in genere considerata non sicura, soprattutto se esegui workload di terze parti o personalizzati nello stesso cluster. Questo approccio può potenzialmente sfruttare le falle di riassegnazione dei diritti dal nodo al cluster e rubare l'identità dell' Google Cloud account di servizio tramite questo secret. Se utilizzi un cluster GKE, ti consigliamo di utilizzare Workload Identity Federation for GKE.

Creazione di un account di servizio

Per creare un account di servizio, completa i seguenti passaggi:

  1. Crea un account di servizio IAM. Se hai già un account di servizio, puoi utilizzarlo anziché crearne uno nuovo.

    Utilizza la CLI gcloud per creare l'account di servizio eseguendo il seguente comando:

     gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    

    Sostituisci SERVICE_ACCOUNT_NAME con il nome del tuo account di servizio.

    Per scoprire di più sulla creazione degli account di servizio, consulta Creare e gestire gli account di servizio.

  2. Concedi all'account di servizio IAM autorizzazioni elevate sul progetto:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/owner"
    

    Sostituisci quanto segue:

    • PROJECT_ID con il tuo Google Cloud ID progetto.
    • SERVICE_ACCOUNT_NAME con il nome del tuo account di servizio.
  3. Crea una chiave dell'account di servizio ed esporta le relative credenziali in un file chiamato key.json:

    gcloud iam service-accounts keys create --iam-account \
        SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
    

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_NAME con il nome del tuo account di servizio.
    • PROJECT_ID con il tuo Google Cloud ID progetto.

Applicazione delle credenziali al cluster

Per applicare le credenziali al cluster in cui vuoi eseguire Config Connector, completa i seguenti passaggi:

  1. Crea lo spazio dei nomi cnrm-system:

    kubectl create namespace cnrm-system
    
  2. Importa le credenziali della chiave come secret.

    kubectl create secret generic SECRET_NAME \
        --from-file key.json \
        --namespace cnrm-system
    

    Sostituisci SECRET_NAME con il nome che vuoi assegnare al segreto.

  3. Rimuovi le credenziali dal sistema:

    rm key.json
    

Installazione di Config Connector Operator

Completa i seguenti passaggi per installare l'operatore Config Connector:

  1. Scarica il file tar dell'operatore Config Connector più recente:

    gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
    
  2. Estrai il file tar:

    tar zxvf release-bundle.tar.gz
    
  3. Installa l'operatore Config Connector nel cluster:

    kubectl apply -f operator-system/configconnector-operator.yaml
    

Configurazione di Config Connector

Per configurare Config Connector utilizzando l'operatore, crea un file di configurazione per ConfigConnector CustomResource, poi applicalo utilizzando il comando kubectl apply.

Per configurare Config Connector utilizzando l'operatore:

  1. Copia il seguente codice YAML in un file denominato configconnector.yaml:

    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnector
    metadata:
      # the name is restricted to ensure that there is only ConfigConnector
      # instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
      mode: cluster
      credentialSecretName: SECRET_NAME
      stateIntoSpec: Absent
    

    Sostituisci SECRET_NAME con il nome del secret che hai creato in precedenza.

  2. Applica la configurazione al cluster con kubectl apply:

    kubectl apply -f configconnector.yaml
    

Specificare dove creare le risorse

Config Connector può organizzare le risorse per progetto, cartella o organizzazione, come faresti con Google Cloud.

Prima di creare risorse con Config Connector, devi configurare la posizione in cui creare le risorse. Per determinare dove creare la risorsa, Config Connector utilizza un'annotazione nella configurazione della risorsa o in uno spazio dei nomi esistente. Per ulteriori informazioni, consulta Organizzare le risorse.

Se non hai un ambito per questo scopo, creane uno con kubectl.
kubectl create namespace NAMESPACE

Sostituisci NAMESPACE con il nome dello spazio dei nomi. Ad esempio config-connector.

Seleziona una scheda per scegliere dove vuoi che Config Connector crei le risorse.

Progetto

Per creare risorse in un determinato progetto, esegui il seguente comando:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

Sostituisci quanto segue:

  • NAMESPACE con il nome dello spazio dei nomi.
  • PROJECT_ID con il tuo Google Cloud ID progetto.

Cartella

Per creare risorse in una determinata cartella, esegui il seguente comando:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID

Sostituisci quanto segue:

  • NAMESPACE con il nome dello spazio dei nomi.
  • FOLDER_ID con il tuo Google Cloud ID cartella.

Organizzazione

Per creare risorse in una determinata organizzazione, esegui il seguente comando:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID

Sostituisci quanto segue:

  • NAMESPACE con il nome dello spazio dei nomi.
  • ORGANIZATION_ID con il tuo Google Cloud ID organizzazione.

Quando annoti lo spazio dei nomi, Config Connector crea risorse nel progetto, nella cartella o nell'organizzazione corrispondente. Per scoprire di più su come Config Connector utilizza gli spazi dei nomi Kubernetes, consulta Spazi dei nomi e progetti Google Cloud Kubernetes.

Verifica dell'installazione

Config Connector esegue tutti i suoi componenti in uno spazio dei nomi denominato cnrm-system. Puoi verificare che i pod siano pronti eseguendo il seguente comando:

kubectl wait -n cnrm-system \
      --for=condition=Ready pod --all

Se Config Connector è installato correttamente, l'output è simile al seguente:

pod/cnrm-controller-manager-0 condition met

Eseguire l'upgrade di Config Connector

Per eseguire l'upgrade di Config Connector, scarica e installa la versione più recente dell'operatore Config Connector:

gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml

Disinstallazione di Config Connector

Utilizza kubectl delete per rimuovere i CRD di Config Connector insieme ai componenti del controller:

kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
    --wait=true

Per disinstallare l'operatore Config Connector, esegui il seguente comando:

kubectl delete -f operator-system/configconnector-operator.yaml  --wait=true

Passaggi successivi