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:
- Seleziona o crea un Google Cloud progetto per installare Config Connector.
- Assicurati di disporre delle autorizzazioni per creare e scaricare un service account per il progetto.
- Crea o identifica un cluster Kubernetes in cui non hai ancora installato Config Connector.
Installazione di Config Connector
Per installare Config Connector in un altro ambiente Kubernetes, dopo aver creato o identificato un cluster Kubernetes, crea unaccount di serviziot 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 Creazione di un'identità.
Se l'output è no
, crea un ClusterRoleBinding
nel cluster, che
ti consente di creare ruoli:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
Sostituisci ACCOUNT_EMAIL con l'email che utilizzi per accedere al tuo account di fatturazione Cloudg.
L'output dovrebbe contenere la frase cluster-admin-binding created
. Se questa
frase non viene visualizzata, contatta l'amministratore del tuoaccount di fatturazione Cloudd o del 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 service account IAM e una chiave del service account. Dopodiché, importa le credenziali della chiave come secret in ogni cluster che esegue Config Connector.
Nel prossimo insieme di istruzioni, importerai una chiave delle credenziali del service account nel cluster Kubernetes. Google CloudL'importazione delle credenziali del service account direttamente in un cluster è generalmente considerata non sicura, soprattutto se esegui workload di terze parti o personalizzati nello stesso cluster. Questo approccio può potenzialmente sfruttare le scappatoie di escalation da nodo a cluster e impersonare l'account di servizio Google Cloud 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:
Crea un account di servizio IAM. Se hai un account di servizio esistente, puoi utilizzarlo anziché crearne uno nuovo.
Utilizza gcloud CLI per creare il account di servizio eseguendo il seguente comando:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sostituisci
SERVICE_ACCOUNT_NAME
con il nome del account di servizio.Per scoprire di più sulla creazione dei service account, vedi Creazione e gestione dei service account.
Concedi all'account di servizio IAM autorizzazioni elevate sul tuo 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 l'ID progetto Google Cloud .SERVICE_ACCOUNT_NAME
con il nome del account di servizio.
Crea una chiave dell'account di servizio ed esporta le relative credenziali in un file denominato
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 account di servizio.PROJECT_ID
con l'ID progetto Google Cloud .
Applicazione delle credenziali al cluster
Per applicare le credenziali al cluster in cui vuoi eseguire Config Connector, completa i seguenti passaggi:
Crea lo spazio dei nomi
cnrm-system
:kubectl create namespace cnrm-system
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 dare al secret.
Rimuovi le credenziali dal sistema:
rm key.json
Installazione dell'operatore Config Connector
Per installare l'operatore Config Connector:
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
Estrai il file tar:
tar zxvf release-bundle.tar.gz
Installa l'operatore Config Connector sul tuo 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 la ConfigConnector
CustomResource,
quindi applicalo utilizzando il comando kubectl apply
.
Per configurare Config Connector utilizzando l'operatore:
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.
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, lo stesso modo in cui le organizzeresti 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, vedi Organizzare le risorse.
Se non hai uno spazio dei nomi per questo scopo, creane uno conkubectl
.
kubectl create namespace NAMESPACE
Sostituisci NAMESPACE
con il nome del tuo 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 questo 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 l'ID progetto Google Cloud .
Cartella
Per creare risorse in una determinata cartella, esegui questo 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 l'ID della tua cartella Google Cloud .
Organizzazione
Per creare risorse in una determinata organizzazione, esegui questo 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 l'ID organizzazione Google Cloud .
Quando annoti lo spazio dei nomi, Config Connector crea risorse nel progetto, nella cartella o nell'organizzazione corrispondenti. Per scoprire di più su come Config Connector utilizza gli spazi dei nomi Kubernetes, consulta Spazi dei nomi Kubernetes e progetti Google Cloud .
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 questo 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 l'ultima versione 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 le 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 questo comando:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Passaggi successivi
- Scopri di più sulla scelta di un tipo di installazione.
- Scopri come risolvere i problemi di Config Connector.