Con Config Sync puoi gestire le risorse Kubernetes con file di configurazione archiviati in una fonte attendibile. Config Sync supporta i repository Git, le immagini OCI e i grafici Helm come fonte attendibile. Questa pagina mostra come attivare e configurare Config Sync in modo che la sincronizzazione venga eseguita dal repository radice. Config Sync è disponibile con Google Kubernetes Engine.
Quando installi Config Sync utilizzando la console Google Cloud o Google Cloud CLI, le API RootSync
e RepoSync
sono abilitate per impostazione predefinita. In questo modo
avrai a disposizione funzionalità aggiuntive come la sincronizzazione da più repository
e la sincronizzazione delle configurazioni Kustomize e Helm.
Prima di iniziare
Prima di installare Config Sync, prepara l'ambiente, assicurati di soddisfare i requisiti del cluster e assegna i ruoli utente corretti.
Preparare l'ambiente locale
Prepara l'ambiente locale completando le seguenti attività:
- Crea una fonte attendibile o assicurati di avere accesso a una. Qui puoi aggiungere le configurazioni che Config Sync sincronizza. Per scoprire di più su come configurare le configurazioni e l'origine attendibile, consulta una delle seguenti guide:
- Installa e inizializza Google Cloud CLI, che fornisce i comandi
gcloud
enomos
. Se utilizzi Cloud Shell, Google Cloud CLI è preinstallato. Se hai già installato Google Cloud CLI, scarica l'ultima versione eseguendogcloud components update
. Abilita l'API GKE.
Esamina i requisiti del cluster
Prima di installare Config Sync sul cluster, esamina i requisiti e i consigli per la configurazione del cluster.
Prepara il cluster
Dopo aver creato un cluster adatto, completa i seguenti passaggi:
Concedi i ruoli IAM richiesti all'utente che registra il cluster.
Se prevedi di utilizzare Google Cloud CLI per configurare Config Sync o utilizzare cluster esterni a Google Cloud, assicurati che i tuoi cluster GKE o cluster esterni a Google Cloud siano registrati a un parco risorse. Se prevedi di utilizzare la console Google Cloud , puoi registrare i cluster GKE quando configuri Config Sync.
Installazione di Config Sync
Nelle sezioni seguenti, concedi a Config Sync l'accesso a una delle seguenti fonti di verità:
Dopo aver concesso l'accesso, puoi configurare Config Sync.
Concedere l'accesso a Git
Config Sync richiede l'accesso di sola lettura al tuo repository Git in modo da poter leggere le configurazioni di cui è stato eseguito il commit nel repository e applicarle ai tuoi cluster.
Se il repository non richiede l'autenticazione per l'accesso di sola lettura, puoi
continuare a configurare Config Sync e
utilizzare none
come tipo di autenticazione. Ad esempio, se puoi sfogliare il repository utilizzando un'interfaccia web senza eseguire l'accesso o se puoi utilizzare git
clone
per creare un clone del repository in locale senza fornire credenziali o utilizzare credenziali salvate, non devi autenticarti. In questo caso,
non è necessario creare un secret.
Tuttavia, la maggior parte degli utenti deve creare credenziali perché l'accesso in lettura al proprio repository è limitato. Se sono richieste credenziali, queste vengono archiviate nel
secret git-creds
su ogni cluster registrato (a meno che tu non stia utilizzando un account di servizio Google). Il secret deve essere denominato git-creds
perché si tratta di un valore fisso.
Config Sync supporta i seguenti meccanismi di autenticazione:
- Coppia di chiavi SSH (
ssh
) - Cookiefile (
cookiefile
) - Token (
token
) - Account di servizio Google (
gcpserviceaccount
) - Account di servizio predefinito di Compute Engine (
gcenode
) - App GitHub (
githubapp
)
Il meccanismo che scegli dipende da ciò che supporta il tuo repository. In genere, consigliamo di utilizzare una coppia di chiavi SSH. GitHub e Bitbucket supportano entrambi l'utilizzo di una coppia di chiavi SSH. Tuttavia, se utilizzi un repository in Cloud Source Repositories o Secure Source Manager, ti consigliamo di utilizzare unaccount di serviziot Google in quanto la procedura è più semplice. Se la tua organizzazione ospita il repository e non sai quali metodi di autenticazione sono supportati, contatta il tuo amministratore.
Per utilizzare un repository in Cloud Source Repositories come repository Config Sync, completa i seguenti passaggi per recuperare l'URL di Cloud Source Repositories:
Elenca tutti i repository:
gcloud source repos list
Copia l'URL dal repository che vuoi utilizzare dall'output. Ad esempio:
REPO_NAME PROJECT_ID URL my-repo my-project https://source.developers.google.com/p/my-project/r/my-repo-csr
Devi utilizzare questo URL quando configuri Config Sync nella sezione seguente. Se configuri Config Sync utilizzando la consoleGoogle Cloud , aggiungi l'URL nel campo URL. Se configuri Config Sync utilizzando Google Cloud CLI, aggiungi l'URL al campo
syncRepo
del file di configurazione.
Coppia di chiavi SSH
Una coppia di chiavi SSH è costituita da due file: una chiave pubblica e una chiave privata. La chiave pubblica in genere ha un'estensione .pub
.
Per utilizzare una coppia di chiavi SSH, completa i seguenti passaggi:
Crea una coppia di chiavi SSH per consentire a Config Sync di eseguire l'autenticazione nel repository Git. Questo passaggio è necessario se devi autenticarti al repository per clonarlo o leggerlo. Salta questo passaggio se un amministratore della sicurezza ti fornisce una coppia di chiavi. Puoi utilizzare una singola coppia di chiavi per tutti i cluster o una coppia di chiavi per cluster, a seconda dei requisiti di sicurezza e conformità.
Il seguente comando crea una chiave RSA a 4096 bit. I valori più bassi non sono consigliati:
ssh-keygen -t rsa -b 4096 \ -C "GIT_REPOSITORY_USERNAME" \ -N '' \ -f /path/to/KEYPAIR_FILENAME
Sostituisci quanto segue:
GIT_REPOSITORY_USERNAME
: il nome utente che vuoi che Config Sync utilizzi per l'autenticazione al repository/path/to/KEYPAIR_FILENAME
: un percorso della coppia di chiavi
Se utilizzi un host di repository Git di terze parti come GitHub o vuoi utilizzare un account di servizio con Cloud Source Repositories, ti consigliamo di utilizzare un account separato.
Configura il repository per riconoscere la chiave pubblica appena creata. Fai riferimento alla documentazione del tuo provider host Git. Per comodità, sono incluse le istruzioni per alcuni provider di hosting Git più diffusi:
- Cloud Source Repositories
- Bitbucket
- GitHub Ti consigliamo di creare chiavi di deployment separate per fornire l'accesso in sola lettura a un singolo repository GitHub.
- GitLab
Aggiungi la chiave privata a un nuovo secret nel cluster:
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
Sostituisci
/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
con il nome della chiave privata (quella senza il suffisso.pub
).(Consigliato) Per configurare il controllo degli host noti utilizzando l'autenticazione SSH, puoi aggiungere la chiave degli host noti al campo
data.known_hosts
nel secretgit_creds
. Per disattivare il controlloknown_hosts
, puoi rimuovere il campoknown_hosts
dal secret. Per aggiungere la chiave degli host noti, esegui:kubectl edit secret git-creds \ --namespace=config-management-system
Quindi, in
data
, aggiungi la voce degli host noti:known_hosts: KNOWN_HOSTS_KEY
Elimina la chiave privata dal disco locale oppure proteggila.
Quando configuri Config Sync e aggiungi l'URL del tuo repository Git, utilizza il protocollo SSH. Se utilizzi un repository in Cloud Source Repositories, devi utilizzare il seguente formato quando inserisci l'URL:
ssh://EMAIL@source.developers.google.com:2022/p/PROJECT_ID/r/REPO_NAME
Sostituisci quanto segue:
EMAIL
: il tuo Google Cloud nome utentePROJECT_ID
: l'ID del progetto Google Cloud in cui si trova il repositoryREPO_NAME
: il nome del repository
File dei cookie
La procedura per acquisire un cookiefile
dipende dalla configurazione del tuo
repository. Per un esempio, vedi
Generare credenziali statiche
nella documentazione di Cloud Source Repositories.
Solitamente, le credenziali sono archiviate nel file .gitcookies
nella home directory oppure ti potrebbero essere fornite da un amministratore della sicurezza.
Per utilizzare un cookiefile
, completa i seguenti passaggi:
Dopo aver creato e ottenuto il
cookiefile
, aggiungilo a un nuovo secret nel cluster.Se non utilizzi un proxy HTTPS, crea il secret con il seguente comando:
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-file=cookie_file=/path/to/COOKIEFILE
Se devi utilizzare un proxy HTTPS, aggiungilo al secret insieme a
cookiefile
eseguendo questo comando:kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-file=cookie_file=/path/to/COOKIEFILE \ --from-literal=https_proxy=HTTPS_PROXY_URL
Sostituisci quanto segue:
/path/to/COOKIEFILE
: il percorso e il nome file appropriatiHTTPS_PROXY_URL
: l'URL del proxy HTTPS che utilizzi quando comunichi con il repository Git
Proteggi i contenuti di
cookiefile
se ti occorrono ancora a livello locale. In caso contrario, eliminalo.
Token
Se la tua organizzazione non consente l'uso di chiavi SSH, potresti preferire l'utilizzo di un token. Con Config Sync, puoi utilizzare i token di accesso personali (PAT) di GitHub, i PAT o le chiavi di deployment di GitLab o la password per l'app di Bitbucket come token.
Per creare un secret utilizzando il tuo token, segui questi passaggi:
Crea un token utilizzando GitHub, GitLab o Bitbucket:
- GitHub: crea un PAT.
Concedi al token l'ambito
repo
in modo che possa leggere da repository privati. Poiché associ un PAT a un account GitHub, ti consigliamo inoltre di creare un utente della macchina e associare il tuo PAT a quest'ultimo. - GitLab: crea un PAT o crea un token di distribuzione
- Bitbucket: crea una password per l'app.
- GitHub: crea un PAT.
Concedi al token l'ambito
Dopo aver creato e ottenuto il token, aggiungilo a un nuovo secret nel cluster.
Se non utilizzi un proxy HTTPS, crea il secret con il seguente comando:
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace="config-management-system" \ --from-literal=username=USERNAME \ --from-literal=token=TOKEN
Sostituisci quanto segue:
USERNAME
: il nome utente che vuoi utilizzare.TOKEN
: il token creato nel passaggio precedente.
Se devi utilizzare un proxy HTTPS, aggiungilo al secret insieme a
username
etoken
eseguendo questo comando:kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-literal=username=USERNAME \ --from-literal=token=TOKEN \ --from-literal=https_proxy=HTTPS_PROXY_URL
Sostituisci quanto segue:
USERNAME
: il nome utente che vuoi utilizzare.TOKEN
: il token creato nel passaggio precedente.HTTPS_PROXY_URL
: l'URL del proxy HTTPS che utilizzi quando comunichi con il repository Git.
Proteggi il token se ti occorre ancora a livello locale. In caso contrario, eliminalo.
Service account Google
Se il tuo repository si trova in Cloud Source Repositories o in Secure Source Manager, e il tuo cluster utilizza Workload Identity Federation per GKE o Workload Identity Federation per GKE della fleet, puoi concedere a Config Sync l'accesso a un repository nello stesso progetto del tuo cluster gestito utilizzando un account di servizio Google.
- Se non hai ancora un account di servizio, creane uno.
Concedi i ruoli IAM corretti al account di servizio in modo che possa accedere al repository:
Cloud Source Repositories
Concedi il ruolo IAM Cloud Source Repositories Reader (
roles/source.reader
) al account di servizio Google. Per ulteriori informazioni su ruoli e autorizzazioni di Cloud Source Repositories, consulta Concedere autorizzazioni per visualizzare i repository.Concedi l'autorizzazione a livello di progetto se le stesse autorizzazioni si applicano a tutti i repository del progetto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/source.reader \ --member="serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com"
Concedi un'autorizzazione specifica per il repository quando vuoi che gli account di servizio abbiano diversi livelli di accesso per ogni repository del tuo progetto.
gcloud source repos set-iam-policy REPOSITORY POLICY_FILE --project=PROJECT_ID
Secure Source Manager
Concedi i ruoli IAM Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor
) e Secure Source Manager Repo Reader (roles/securesourcemanager.repoReader
) al account di servizio Google. Per ulteriori informazioni sui ruoli e sulle autorizzazioni di Secure Source Manager, consulta Gestione dei ruoli del repository.Concedi l'autorizzazione a livello di progetto se le stesse autorizzazioni si applicano a tutti i repository del progetto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/securesourcemanager.instanceAccessor \ --member="serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/securesourcemanager.repoReader \ --member="serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com"
Per concedere autorizzazioni specifiche per il repository, puoi utilizzare l'interfaccia web di Secure Source Manager per il repository. Per saperne di più, vedi Concedere agli utenti ruoli a livello di repository.
Se configuri Config Sync utilizzando la console Google Cloud , seleziona Federazione delle identità per i carichi di lavoro per GKE come Tipo di autenticazione e poi aggiungi l'email delaccount di serviziot.
Se configuri Config Sync utilizzando Google Cloud CLI, aggiungi
gcpserviceaccount
comesecretType
e poi aggiungi l'indirizzo email del service account agcpServiceAccountEmail
.Se utilizzi un repository in Secure Source Manager, devi utilizzare il seguente formato quando configuri Config Sync e aggiungi l'URL del tuo repository Git:
https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev/PROJECT_ID/REPO_NAME.git
Sostituisci quanto segue:
INSTANCE_ID
: il nome dell'istanza Secure Source Manager.PROJECT_ID
: l'ID del progetto Google Cloud in cui si trova l'istanza.PROJECT_NUMBER
: il Google Cloud numero di progetto in cui si trova l'istanza.LOCATION
: la regione in cui si trova l'istanza.REPO_NAME
: il nome del repository.
Dopo aver configurato Config Sync, crea un'associazione dei criteri IAM tra il account di servizio Kubernetes e il account di servizio Google. Il account di servizio Kubernetes non viene creato finché non configuri Config Sync per la prima volta.
Se utilizzi cluster registrati in un parco risorse, devi creare l'associazione di policy una sola volta per parco risorse. Tutti i cluster registrati in un parco risorse condividono lo stesso pool di federazione delle identità per i carichi di lavoro per GKE. Con il concetto di identicità del parco risorse, se aggiungi la policy IAM al account di servizio Kubernetes in un cluster, anche il account di servizio Kubernetes dello stesso spazio dei nomi sugli altri cluster dello stesso parco risorse riceve la stessa policy IAM.
Questa associazione consente al account di servizio Kubernetes di Config Sync di agire come account di servizio Google:
gcloud iam service-accounts add-iam-policy-binding \ GSA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.workloadIdentityUser \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto dell'organizzazione.FLEET_HOST_PROJECT_ID
: se utilizzi Workload Identity Federation for GKE, questo valore è uguale aPROJECT_ID
. Se utilizzi la federazione delle identità per i carichi di lavoro per GKE del parco risorse, questo è l'ID progetto del parco risorse a cui è registrato il cluster.GSA_NAME
: il account di servizio Google personalizzato che vuoi utilizzare per connetterti ad Artifact Registry. Il account di servizio deve avere il ruolo IAM Artifact Registry Reader (roles/artifactregistry.reader
).KSA_NAME
: il account di servizio Kubernetes per il reconciler.- Per i repository radice, se il nome
RootSync
èroot-sync
, utilizzaroot-reconciler
. Altrimenti, utilizzaroot-reconciler-ROOT_SYNC_NAME
. Se installi Config Sync utilizzando la console Google Cloud o Google Cloud CLI, Config Sync crea automaticamente un oggetto RootSync denominatoroot-sync
.
- Per i repository radice, se il nome
REPOSITORY
: il nome del repository.POLICY_FILE
: il file JSON o YAML con la policy Identity and Access Management.
Account di servizio predefinito Compute Engine
Se il repository si trova in Cloud Source Repositories
e il cluster è GKE con la federazione delle identità dei carichi di lavoro per GKE disabilitata, puoi utilizzare gcenode
come tipo di autenticazione.
Se configuri Config Sync utilizzando la console Google Cloud , seleziona Repository Google Cloud come Tipo di autenticazione.
Se configuri Config Sync utilizzando Google Cloud CLI, aggiungi gcenode
come
secretType
.
Se selezioni Repository Google Cloud o gcenode
, puoi utilizzare l'account di servizio predefinito di Compute Engine. Devi concedere il ruolo IAM
Lettore Cloud Source Repositories (roles/source.reader
)
al account di servizio Compute Engine predefinito. Per ulteriori informazioni su
ruoli e autorizzazioni di Cloud Source Repositories, consulta
Concedere autorizzazioni per visualizzare i repository.
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/source.reader \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
Sostituisci PROJECT_ID
con l'ID progetto della tua organizzazione e
sostituisci PROJECT_NUMBER
con il numero di progetto della tua organizzazione.
App GitHub
Se il repository si trova su GitHub, puoi utilizzare githubapp
come tipo di autenticazione.
Per utilizzare un'app GitHub, completa i seguenti passaggi:
Segui le istruzioni su GitHub per eseguire il provisioning di un'app GitHub e concederle l'autorizzazione a leggere dal tuo repository.
Aggiungi la configurazione dell'app GitHub a un nuovo secret nel cluster:
Utilizzo dell'ID client
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-literal=github-app-client-id=CLIENT_ID \ --from-literal=github-app-installation-id=INSTALLATION_ID \ --from-file=github-app-private-key=/path/to/GITHUB_PRIVATE_KEY \ --from-literal=github-app-base-url=BASE_URL
- Sostituisci
CLIENT_ID
con l'ID client dell'app GitHub. - Sostituisci
INSTALLATION_ID
con l'ID installazione dell'app GitHub. - Sostituisci
/path/to/GITHUB_PRIVATE_KEY
con il nome del file contenente la chiave privata. - Sostituisci
BASE_URL
con l'URL di base dell'endpoint API GitHub. Questo è necessario solo quando il repository non è ospitato su www.github.com. L'argomento può essere omesso e il valore predefinito saràhttps://api.github.com/
.
Utilizzo dell'ID applicazione
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-literal=github-app-application-id=APPLICATION_ID \ --from-literal=github-app-installation-id=INSTALLATION_ID \ --from-file=github-app-private-key=/path/to/GITHUB_PRIVATE_KEY \ --from-literal=github-app-base-url=BASE_URL
- Sostituisci
APPLICATION_ID
con l'ID applicazione per l'app GitHub. - Sostituisci
INSTALLATION_ID
con l'ID installazione dell'app GitHub. - Sostituisci
/path/to/GITHUB_PRIVATE_KEY
con il nome del file contenente la chiave privata. - Sostituisci
BASE_URL
con l'URL di base dell'endpoint API GitHub. Questo è necessario solo quando il repository non è ospitato su www.github.com. L'argomento può essere omesso e il valore predefinito saràhttps://api.github.com/
.
- Sostituisci
Elimina la chiave privata dal disco locale oppure proteggila.
Quando configuri Config Sync e aggiungi l'URL del tuo repository Git, utilizza il tipo di autenticazione
githubapp
.
Concedere l'accesso di sola lettura a Config Sync a OCI
Config Sync ha bisogno dell'accesso di sola lettura all'immagine OCI archiviata in Artifact Registry per poter leggere le configurazioni incluse nell'immagine e applicarle ai tuoi cluster.
Se l'immagine non richiede l'autenticazione per l'accesso in sola lettura, puoi
continuare a
configurare Config Sync
e utilizzare none
come tipo di autenticazione. Ad esempio, se la tua immagine è pubblica
e accessibile a chiunque su internet, non è necessario autenticarsi.
Tuttavia, la maggior parte degli utenti deve creare credenziali per accedere alle immagini con restrizioni. Config Sync supporta i seguenti meccanismi di autenticazione:
- Account di servizio Kubernetes (
k8sserviceaccount
) - Account di servizio Google (
gcpserviceaccount
) Account di servizio predefinito di Compute Engine (
gcenode
)
Service account Kubernetes
Puoi utilizzare un account di servizio Kubernetes come tipo di autenticazione se memorizzi l'immagine OCI in Artifact Registry e il tuo cluster utilizza Workload Identity Federation for GKE o Workload Identity Federation for GKE per il parco risorse.
Concedi il ruolo IAM Lettore Artifact Registry (
roles/artifactregistry.reader
) al account di servizio Kubernetes con il pool Workload Identity Federation for GKE. Per ulteriori informazioni su ruoli e autorizzazioni di Artifact Registry, consulta Configurare ruoli e autorizzazioni per Artifact Registry.Concedi l'autorizzazione a livello di progetto se le stesse autorizzazioni si applicano a tutti i repository del progetto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Concedi un'autorizzazione specifica per il repository quando vuoi che gli account di servizio abbiano diversi livelli di accesso per ogni repository del tuo progetto.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto dell'organizzazione.FLEET_HOST_PROJECT_ID
: se utilizzi Workload Identity Federation for GKE, questo valore è uguale aPROJECT_ID
. Se utilizzi la federazione delle identità per i carichi di lavoro per GKE del parco risorse, questo è l'ID progetto del parco risorse a cui è registrato il cluster.KSA_NAME
: il account di servizio Kubernetes per il reconciler.- Per i repository radice, se il nome
RootSync
èroot-sync
, utilizzaroot-reconciler
. Altrimenti, utilizzaroot-reconciler-ROOT_SYNC_NAME
. Se installi Config Sync utilizzando la console Google Cloud o Google Cloud CLI, Config Sync crea automaticamente un oggetto RootSync denominatoroot-sync
.
- Per i repository radice, se il nome
REPOSITORY
: l'ID del repository.LOCATION
: la posizione regionale o multiregionale del repository.
Account di servizio predefinito Compute Engine
Se memorizzi il grafico Helm in Artifact Registry e il tuo cluster è GKE
con la federazione delle identità dei carichi di lavoro per GKE disabilitata, puoi utilizzare gcenode
come
tipo di autenticazione.
Config Sync utilizza il account di servizio predefinito di Compute Engine.
Devi concedere all'account di servizio Compute Engine predefinito
l'accesso in lettura ad Artifact Registry.
Concedi all'account di servizio Compute Engine l'autorizzazione di lettura per Artifact Registry eseguendo questo comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.reader
Sostituisci
PROJECT_ID
con l'ID progetto della tua organizzazione ePROJECT_NUMBER
con il numero di progetto della tua organizzazione.
Concedere l'accesso di sola lettura a Config Sync per Helm
Config Sync ha bisogno dell'accesso in sola lettura al tuo repository Helm per poter leggere i grafici Helm nel repository e installarli nei tuoi cluster.
Se il repository non richiede l'autenticazione per l'accesso di sola lettura, puoi
continuare a
configurare Config Sync
e utilizzare none
come tipo di autenticazione. Ad esempio, se il repository Helm
è pubblico e chiunque su internet può accedervi, non è necessario
eseguire l'autenticazione.
Tuttavia, la maggior parte degli utenti deve creare credenziali per accedere ai repository Helm privati. Config Sync supporta i seguenti meccanismi di autenticazione:
- Token (
token
) - Account di servizio Kubernetes (
k8sserviceaccount
) - Account di servizio Google (
gcpserviceaccount
) - Account di servizio predefinito di Compute Engine (
gcenode
)
Token
Crea un secret con un nome utente e una password del repository Helm:
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Sostituisci quanto segue:
SECRET_NAME
: il nome che vuoi assegnare al secret.USERNAME
: il nome utente del repository Helm.PASSWORD
: la password del repository Helm.
Quando configuri Config Sync,
utilizzerai il nome del secret che hai scelto per spec.helm.secretRef.name
.
Service account Kubernetes
Puoi utilizzare un account di servizio Kubernetes come tipo di autenticazione se memorizzi il grafico Helm in Artifact Registry e il tuo cluster utilizza Workload Identity Federation for GKE o Workload Identity Federation for GKE per il parco risorse.
Concedi il ruolo IAM Lettore Artifact Registry (
roles/artifactregistry.reader
) al account di servizio Kubernetes con il pool Workload Identity Federation for GKE. Per ulteriori informazioni su ruoli e autorizzazioni di Artifact Registry, consulta Configurare ruoli e autorizzazioni per Artifact Registry.Concedi l'autorizzazione a livello di progetto se le stesse autorizzazioni si applicano a tutti i repository del progetto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Concedi un'autorizzazione specifica per il repository quando vuoi che gli account di servizio abbiano diversi livelli di accesso per ogni repository del tuo progetto.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto dell'organizzazione.FLEET_HOST_PROJECT_ID
: se utilizzi Workload Identity Federation for GKE, questo valore è uguale aPROJECT_ID
. Se utilizzi la federazione delle identità per i carichi di lavoro per GKE del parco risorse, questo è l'ID progetto del parco risorse a cui è registrato il cluster.KSA_NAME
: il account di servizio Kubernetes per il reconciler.- Per i repository radice, se il nome
RootSync
èroot-sync
, utilizzaroot-reconciler
. Altrimenti, utilizzaroot-reconciler-ROOT_SYNC_NAME
.
- Per i repository radice, se il nome
REPOSITORY
: l'ID del repository.LOCATION
: la posizione regionale o multiregionale del repository.
Account di servizio predefinito Compute Engine
Se memorizzi il grafico Helm in Artifact Registry e il tuo cluster è GKE
con la federazione delle identità dei carichi di lavoro per GKE disabilitata, puoi utilizzare gcenode
come
tipo di autenticazione.
Config Sync utilizza il account di servizio predefinito di Compute Engine.
Devi concedere all'account di servizio Compute Engine predefinito
l'accesso in lettura ad Artifact Registry. Potresti dover concedere l'storage-ro
accesso
all'ambito per concedere l'autorizzazione
di sola lettura per estrarre le immagini.
Concedi al account di servizio Compute Engine l'autorizzazione di lettura per Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.reader
Sostituisci
PROJECT_ID
con l'ID progetto della tua organizzazione ePROJECT_NUMBER
con il numero di progetto della tua organizzazione.
Configurare Config Sync
In questa sezione configuri le impostazioni per il repository radice. Se esegui la sincronizzazione con un repository Git, puoi utilizzare la console Google Cloud per guidarti nella procedura di installazione e automatizzare alcuni passaggi.
Quando installi Config Sync utilizzando la console Google Cloud o Google Cloud CLI, Config Sync crea automaticamente un oggetto RootSync denominato root-sync
. Puoi utilizzare i comandi kubectl
per modificare root-sync
e aggiungere
configurazioni Config Sync aggiuntive. Per saperne di più, vedi
Configurare Config Sync con i comandi kubectl
.
Console
Installazione di Config Sync
Per installare Config Sync, tutti i cluster devono essere registrati in un parco risorse. Quando installi Config Sync nella console Google Cloud , la selezione dei singoli cluster li registra automaticamente nel tuo parco risorse.
- Nella console Google Cloud , vai alla pagina Config nella sezione Funzionalità.
- Fai clic su add Installa Config Sync.
- Seleziona la versione di Config Sync che vuoi utilizzare.
- Nella sezione Opzioni di installazione, seleziona una delle seguenti opzioni:
- Installa Config Sync sull'intero parco risorse (consigliato): Config Sync verrà installato su tutti i cluster del parco risorse.
- Installa Config Sync su singoli cluster: tutti i cluster selezionati verranno registrati automaticamente in un parco risorse. Config Sync verrà installato su tutti i cluster del parco risorse.
- Se stai installando Config Sync su singoli cluster, nella tabella Cluster disponibili, seleziona i cluster su cui vuoi installare Config Sync.
- Fai clic su Installa Config Sync. Nella scheda Impostazioni, dopo qualche minuto, dovresti vedere Attivato nella colonna Stato per i cluster del tuo parco risorse.
Deployment di un pacchetto
Dopo aver registrato i cluster in un parco risorse e installato Config Sync, puoi configurare Config Sync per eseguire il deployment di un pacchetto in un cluster da una fonte attendibile. Puoi eseguire il deployment dello stesso pacchetto in più cluster o di pacchetti diversi in cluster diversi. Puoi modificare un pacchetto dopo averlo implementato, ad eccezione di alcune impostazioni come il nome del pacchetto e il tipo di sincronizzazione. Per saperne di più, consulta Gestire i pacchetti.
Per eseguire il deployment di un pacchetto, completa i seguenti passaggi:
Nella console Google Cloud , vai alla dashboard Config Sync.
Fai clic su Esegui il deployment del pacchetto.
Nella tabella Seleziona i cluster per il deployment del pacchetto, seleziona il cluster in cui vuoi eseguire il deployment di un pacchetto, quindi fai clic su Continua.
Seleziona Pacchetto ospitato su Git o Pacchetto ospitato su OCI come tipo di origine, quindi fai clic su Continua.
Nella sezione Dettagli pacchetto, inserisci un nome pacchetto, che identifica l'oggetto RootSync o RepoSync.
Nel campo Tipo di sincronizzazione, scegli Sincronizzazione con ambito cluster o Sincronizzazione con ambito spazio dei nomi come tipo di sincronizzazione.
La sincronizzazione con ambito cluster crea un oggetto RootSync, mentre la sincronizzazione con ambito spazio dei nomi crea un oggetto RepoSync. Per ulteriori informazioni su questi oggetti, vedi Architettura di Config Sync.
Nella sezione Origine, completa quanto segue:
Per le origini ospitate in un repository Git, inserisci i seguenti campi:
- Inserisci l'URL del repository Git che utilizzi come fonte di riferimento come URL repository.
- (Facoltativo) Aggiorna il campo Revisione per eseguire il controllo se non utilizzi
il valore predefinito
HEAD
. - (Facoltativo) Aggiorna il campo Percorso se non vuoi eseguire la sincronizzazione dal repository principale.
- (Facoltativo) Aggiorna il campo Ramo se non utilizzi il ramo
main
predefinito.
Per le origini ospitate in un'immagine OCI, inserisci i seguenti campi:
- Inserisci l'URL dell'immagine OCI che utilizzi come fonte attendibile come Immagine.
- Inserisci il percorso della directory da sincronizzare, relativo alla root directory, come Directory.
(Facoltativo) Espandi la sezione Impostazioni avanzate per completare le seguenti operazioni:
Seleziona un tipo di autenticazione. Config Sync ha bisogno dell'accesso di sola lettura alla tua fonte attendibile per leggere i file di configurazione nella fonte e applicarli ai tuoi cluster. A meno che la tua origine non richieda l'autenticazione, ad esempio un repository pubblico, assicurati di concedere a Config Sync l'accesso in sola lettura al tuo repository Git, alla tua immagine OCI o al tuo grafico Helm (solo gcloud CLI). Scegli lo stesso tipo di autenticazione che hai configurato durante l'installazione di Config Sync:
- Nessuna: non utilizzare l'autenticazione.
- SSH: esegui l'autenticazione utilizzando una coppia di chiavi SSH.
- Cookiefile: esegui l'autenticazione utilizzando un
cookiefile
. - Token: esegui l'autenticazione utilizzando un token di accesso o una password.
- Google Cloud Repository: utilizza un account di servizio Google per accedere a un repository Cloud Source Repositories. Seleziona questa opzione solo se la federazione delle identità per i carichi di lavoro per GKE non è abilitata nel tuo cluster.
- Workload Identity: utilizza un account di servizio Google per accedere a un repository Cloud Source Repositories.
Inserisci un numero in secondi per impostare il Tempo di attesa della sincronizzazione, che determina per quanto tempo Config Sync attende tra i tentativi di pull dalla fonte di riferimento.
Inserisci un URL proxy Git per il proxy HTTPS da utilizzare quando comunichi con la fonte di riferimento.
Scegli Gerarchia per modificare il Formato origine.
Il valore predefinito Non strutturato è consigliato nella maggior parte dei casi, in quanto ti consente di organizzare la fonte attendibile come preferisci.
Fai clic su Esegui il deployment del pacchetto.
Viene visualizzata la pagina Pacchetti di Config Sync. Dopo qualche minuto, dovresti vedere Sincronizzato nella colonna Stato sincronizzazione per il cluster che hai configurato.
gcloud
Prima di continuare, assicurati di aver registrato i cluster in un parco risorse.
Attiva la funzionalità per il parco risorse
ConfigManagement
:gcloud beta container fleet config-management enable
Prepara la configurazione creando un nuovo manifest
apply-spec.yaml
o utilizzando un manifest esistente. L'utilizzo di un manifest esistente ti consente di configurare il cluster con le stesse impostazioni utilizzate da un altro cluster.Crea nuovo manifest
Per configurare Config Sync con nuove impostazioni per il tuo cluster, crea un file denominato
apply-spec.yaml
e copia al suo interno il seguente file YAML.Puoi impostare tutti i campi
spec.configSync
facoltativi di cui hai bisogno quando crei il manifest e utilizzare in seguito i comandikubectl
per la configurazione. Puoi anche impostare solo il campospec.configSync.enabled
cometrue
e omettere i campi facoltativi. In un secondo momento, puoi utilizzare i comandikubectl
per creare oggetti RootSync aggiuntivi o RepoSync che puoi gestire completamente utilizzando i comandikubectl
in un secondo momento.# apply-spec.yaml applySpecVersion: 1 spec: configSync: enabled: true # If you don't have a source of truth yet, omit the # following fields. You can configure them later. sourceType: SOURCE_TYPE sourceFormat: FORMAT syncRepo: REPO syncRev: REVISION syncBranch: BRANCH secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: PREVENT_DRIFT
Sostituisci quanto segue:
SOURCE_TYPE
: aggiungigit
per la sincronizzazione da un repository Git,oci
per la sincronizzazione da un'immagine OCI ohelm
per la sincronizzazione da un grafico Helm. Se non viene specificato alcun valore, il valore predefinito ègit
.FORMAT
: aggiungiunstructured
per utilizzare un repository non strutturato o aggiungihierarchy
per utilizzare un repository gerarchico. Questi valori sono sensibili alle maiuscole. Questo campo è facoltativo e il valore predefinito èhierarchy
. Ti consigliamo di aggiungereunstructured
, perché questo formato ti consente di organizzare le configurazioni nel modo più conveniente per te.REPO
: aggiungi l'URL della fonte attendibile. Gli URL dei repository Git e Helm utilizzano il protocollo HTTPS o SSH. Ad esempio,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. Se prevedi di utilizzare SSH comesecretType
, inserisci l'URL con il protocollo SSH. Questo campo è obbligatorio e se non inserisci un protocollo, l'URL viene trattato come un URL HTTPS.Gli URL OCI utilizzano il seguente formato:
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Per impostazione predefinita, l'immagine viene estratta dal taglatest
, ma puoi estrarre le immagini tramiteTAG
oDIGEST
. SpecificaTAG
oDIGEST
inPACKAGE_NAME
:- Per estrarre per
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Per estrarre per
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Per estrarre per
REVISION
: la revisione Git (tag o hash) o il nome del ramo da sincronizzare. Quando utilizzi un hash, deve essere un hash completo e non una forma abbreviata.SECRET_TYPE
: uno dei seguentisecretTypes
:git
none
: non utilizzare l'autenticazione.ssh
: utilizza una coppia di chiavi SSH.cookiefile
: utilizza uncookiefile
.token
: utilizza un token.gcpserviceaccount
: utilizza un account di servizio Google per accedere a un repository Cloud Source Repositories o Secure Source Manager. Se selezioni questo tipo di autenticazione, devi creare un binding della policy IAM dopo aver terminato la configurazione di Config Sync. Per maggiori dettagli, vedi la scheda Account di servizio Google della sezione Concedere a Config Sync l'accesso in sola lettura a Git.gcenode
: utilizza un account di servizio Google per accedere a Cloud Source Repositories. Seleziona questa opzione solo se Workload Identity Federation for GKE non è abilitata nel tuo cluster.githubapp
: utilizza un'app GitHub per l'autenticazione a un repository GitHub.
Per ulteriori informazioni su questi tipi di autenticazione, consulta la pagina Concedere a Config Sync l'accesso in sola lettura a Git.
oci
none
: Non utilizzare l'autenticazionegcenode
: utilizza il account di servizio predefinito di Compute Engine per accedere a un'immagine in Artifact Registry. Seleziona questa opzione solo se Workload Identity Federation for GKE non è abilitata nel cluster.gcpserviceaccount
: utilizza un account di servizio Google per accedere a un'immagine.
helm
token
: utilizza un token.gcenode
: utilizza il account di servizio predefinito di Compute Engine per accedere a un'immagine in Artifact Registry. Seleziona questa opzione solo se Workload Identity Federation for GKE non è abilitata nel cluster.gcpserviceaccount
: utilizza un account di servizio Google per accedere a un'immagine.
EMAIL
: se hai aggiuntogcpserviceaccount
comesecretType
, aggiungi l'indirizzo email del service account Google. Ad esempioacm@PROJECT_ID.iam.gserviceaccount.com
.METRICS_EMAIL
: l'email del Google Cloud service account (GSA) utilizzato per esportare le metriche di Config Sync in Cloud Monitoring. Il service account Google deve disporre del ruolo IAM Monitoring Metric Writer (roles/monitoring.metricWriter
). Il service account Kubernetesdefault
nello spazio dei nomiconfig-management-monitoring
deve essere associato al service account Google.DIRECTORY
: il percorso della directory da sincronizzare, relativo alla radice del repository Git. Tutte le sottodirectory della directory specificata vengono incluse e sincronizzate con il cluster. Il valore predefinito è la directory radice del repository.PREVENT_DRIFT
: se impostato sutrue
, attiva il webhook di ammissione di Config Sync per prevenire le derive impedendo l'invio di modifiche in conflitto ai cluster live. L'impostazione predefinita èfalse
. Config Sync corregge sempre le derive indipendentemente dal valore di questo campo.
Per un elenco completo dei campi che puoi aggiungere al campo
spec
, consulta gcloud fields.Utilizza il manifest esistente
Per configurare il cluster con le stesse impostazioni utilizzate da un altro cluster, recupera le impostazioni da un cluster registrato:
gcloud alpha container fleet config-management fetch-for-apply \ --membership=MEMBERSHIP_NAME \ --project=PROJECT_ID \ > CONFIG_YAML_PATH
Sostituisci quanto segue:
MEMBERSHIP_NAME
: il nome del membro del cluster registrato che ha le impostazioni di Config Sync che vuoi utilizzarePROJECT_ID
: il tuo ID progettoCONFIG_YAML_PATH
: il percorso del fileapply-spec.yaml
che contiene le impostazioni recuperate dal cluster
Applica il file
apply-spec.yaml
. Se utilizzi un manifest esistente, devi applicare il file al cluster che vuoi configurare con le impostazioni recuperate nel comando precedente:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Sostituisci quanto segue:
MEMBERSHIP_NAME
: il nome dell'appartenenza al parco risorse che hai scelto quando hai registrato il cluster. Puoi trovare il nome congcloud container fleet memberships list
.CONFIG_YAML_PATH
: il percorso del fileapply-spec.yaml
.PROJECT_ID
: il tuo ID progetto.
Terraform
Per ogni cluster in cui vuoi configurare Config Sync,
applica un blocco di risorse google_gkehub_feature_membership
che contiene
un blocco configmanagement
e config_sync
, come nel seguente esempio:
git
Sostituisci quanto segue:
REPO
: l'URL del repository Git che contiene i file di configurazione.BRANCH
: il ramo del repository, ad esempiomain
.DIRECTORY
: il percorso all'interno del repository Git che rappresenta il livello superiore del repository che vuoi sincronizzare.SECRET
: il tipo di autenticazione del secret.
oci
Sostituisci quanto segue:
REPO
: l'URL del repository di immagini OCI che contiene i file di configurazione.DIRECTORY
: il percorso assoluto della directory contenente le risorse da sincronizzare. Per utilizzare la directory principale, lascia vuoto questo campo.SECRET
: il tipo di autenticazione del secret.
Ripeti questa procedura per ogni cluster che vuoi sincronizzare.
Per scoprire di più sull'utilizzo di Terraform, consulta Supporto di Terraform per Config Sync.
Dopo aver terminato la configurazione del repository radice, puoi facoltativamente scegliere di configurare la sincronizzazione da più repository, inclusi altri repository radice e repository di spazi dei nomi. I repository dello spazio dei nomi sono utili se vuoi che un repository contenente configurazioni con ambito dello spazio dei nomi venga sincronizzato con uno spazio dei nomi specifico nei cluster.
Configura i valori predefiniti a livello di parco risorse
Puoi abilitare e configurare Config Sync come impostazione predefinita a livello di parco risorse per i tuoi cluster. Ciò significa che ogni nuovo cluster GKE su Google Cloud creato nel parco risorse avrà Config Sync abilitato sul cluster con le impostazioni specificate. Puoi scoprire di più sulla configurazione predefinita del parco risorse in Gestire le funzionalità a livello di parco risorse.
Se utilizzi solo la console Google Cloud , puoi abilitare Config Sync per impostazione predefinita sui tuoi cluster e impostare la versione di Config Sync per il tuo parco risorse. Se utilizzi gcloud CLI o Terraform, puoi attivare Config Sync per impostazione predefinita sui tuoi cluster, impostare la versione di Config Sync per il tuo parco risorse e configurare la connessione al tuo repository Git o al repository di immagini OCI.
Per configurare i valori predefiniti a livello di parco risorse per Config Sync, completa i seguenti passaggi:
gcloud
Esegui il comando enable
per la funzionalità, passando il file di configurazione apply-spec.yaml
che hai creato quando hai configurato Config Sync su un singolo cluster:
gcloud beta container fleet config-management enable \
--fleet-default-member-config=apply-spec.yaml
Puoi utilizzare questo comando per aggiornare le impostazioni predefinite della flotta in qualsiasi momento. Se aggiorni le impostazioni predefinite del parco auto, devi sincronizzare nuovamente i cluster esistenti con le impostazioni predefinite.
Console
Nella console Google Cloud , vai alla pagina Feature Manager.
Nel riquadro Config Sync, fai clic su Configura.
Rivedi le impostazioni a livello di parco risorse. Tutti i nuovi cluster che crei nel parco risorse ereditano queste impostazioni.
(Facoltativo) Per modificare le impostazioni predefinite, fai clic su Personalizza impostazioni flotta. Nella finestra di dialogo visualizzata, procedi nel seguente modo:
- Seleziona la versione di Config Sync che vuoi utilizzare.
- Fai clic su Salva modifiche.
Fai clic su Configura.
Nella finestra di dialogo di conferma Configurazione delle impostazioni della flotta, fai clic su Conferma. Se non hai abilitato Config Sync in precedenza, facendo clic su Conferma viene abilitata anche l'API
anthosconfigmanagement.googleapis.com
.
Terraform
Per abilitare Config Sync in un parco risorse, consulta il seguente esempio:
git
Sostituisci quanto segue:
REPO
: l'URL del repository Git che contiene i file di configurazione.BRANCH
: il ramo del repository, ad esempiomain
.DIRECTORY
: il percorso all'interno del repository Git che rappresenta il livello superiore del repository che vuoi sincronizzare.SECRET
: il tipo di autenticazione del secret.
oci
Sostituisci quanto segue:
REPO
: l'URL del repository di immagini OCI che contiene i file di configurazione.DIRECTORY
: il percorso assoluto della directory contenente le risorse da sincronizzare. Per utilizzare la directory principale, lascia vuoto questo campo.SECRET
: il tipo di autenticazione del secret.
Per scoprire di più sull'utilizzo di Terraform, consulta Supporto di Terraform per Config Sync.
Per aggiornare i cluster esistenti in modo che utilizzino le impostazioni predefinite di Config Sync, puoi utilizzare la console Google Cloud o gcloud CLI per sincronizzare i cluster del parco risorse selezionati con le impostazioni predefinite del parco risorse. In alternativa, puoi configurare manualmente ogni cluster con le stesse impostazioni utilizzando Terraform seguendo le istruzioni per configurare Config Sync. Se in precedenza hai utilizzato
Terraform per specificare i valori predefiniti del parco risorse, utilizza lo stesso blocco configmanagement
e
config_sync
che hai utilizzato per impostare i valori predefiniti per configurare i cluster
che hai scelto.
Per sincronizzare le impostazioni predefinite di Config Sync nel tuo parco risorse:
gcloud
Sincronizza un abbonamento esistente con la configurazione predefinita del parco risorse:
gcloud beta container fleet config-management apply \ --origin=FLEET \ --membership=MEMBERSHIP_NAME
Sostituisci
MEMBERSHIP_NAME
con il nome dell'appartenenza al parco risorse del cluster che vuoi sincronizzare con la configurazione predefinita del parco risorse.Verifica che le configurazioni dell'abbonamento siano sincronizzate con il valore predefinito della flotta:
gcloud beta container fleet config-management status
L'output di questo comando dovrebbe essere visualizzato come
Yes
per lo statoSynced_to_Fleet_Default
per l'abbonamento che hai sincronizzato.
console
Vai a Gestore funzionalità:
Nella tabella dei cluster, seleziona i cluster che vuoi sincronizzare con le impostazioni del parco risorse.
Fai clic su Sincronizza con le impostazioni del parco risorse.
Per disattivare le impostazioni predefinite di Config Sync nel tuo parco risorse, segui questi passaggi:
Per disattivare la configurazione predefinita del parco risorse, esegui questo comando:
gcloud beta container fleet config-management disable --fleet-default-member-config
Verifica che la configurazione predefinita del parco risorse sia disattivata:
gcloud beta container fleet config-management status
Le impostazioni predefinite di Config Sync vengono applicate a tutti i cluster che selezioni. Sebbene la console Google Cloud mostri solo un sottoinsieme di impostazioni, come la versione di Config Sync, tutte le impostazioni a livello di parco risorse vengono sincronizzate con i cluster. Ad esempio, se configuri Config Sync per la sincronizzazione con un repository Git utilizzando Terraform o gcloud CLI, questa impostazione viene sincronizzata con i cluster, ma non viene visualizzata nella console Google Cloud .
Verificare l'installazione
Dopo aver installato e configurato Config Sync, puoi verificare che l'installazione sia stata completata correttamente.
Console
Completa i seguenti passaggi:
- Nella console Google Cloud , vai alla pagina Config nella sezione Funzionalità.
- Nella scheda Pacchetti, controlla la colonna Stato della sincronizzazione nella tabella del cluster. Un'installazione riuscita di Config Sync ha lo stato Installato. Una fonte attendibile configurata correttamente ha lo stato Sincronizzato.
gcloud
Esegui questo comando:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Sostituisci PROJECT_ID
con l'ID del tuo progetto.
Un'installazione riuscita ha lo stato SYNCED
con la versione di Config Sync installata.
Se visualizzi un errore dopo
aver eseguito il comando precedente, assicurati di aver creato il secret git-creds
. Se hai creato il secret, prova a eseguire nuovamente il comando seguente:
gcloud beta container fleet config-management apply
Puoi anche utilizzare il
comando nomos status
per
verificare se Config Sync è stato installato correttamente. Un'installazione valida
senza problemi ha lo stato PENDING
o SYNCED
. Un'installazione non valida o incompleta
ha lo stato NOT INSTALLED
O NOT CONFIGURED
. L'output
include anche eventuali errori segnalati.
Richieste di risorse
La seguente sezione elenca le richieste di risorse per Config Sync.
La tabella seguente elenca i requisiti delle risorse Kubernetes per i componenti di Config Sync. Per saperne di più, consulta la sezione Gestione delle risorse per i container nella documentazione di Kubernetes.
Non tutti i componenti elencati vengono creati. Le seguenti condizioni causano la pianificazione di ogni componente:
config-management-operator
viene installato quando Config Sync è abilitato.reconciler-manager
viene installato quando Config Sync è abilitato.admission-webhook
viene installato quando è abilitata la prevenzione della deriva.- Viene installato un
reconciler
per ogni RootSync e RepoSync. otel-collector
viene installato quando Config Sync è abilitato.
Per scoprire di più su questi componenti, consulta Architettura di Config Sync.
Le richieste di risorse sono le stesse per tutte le versioni supportate di Config Sync.
Nome deployment | Richiesta CPU (m) per replica | Richiesta di memoria (Mi) per replica |
---|---|---|
config-management-operator |
100 | 200 |
resource-group-controller-manager |
110 | 300 |
admission-webhook1 |
10 | 100 |
otel-collector |
200 | 400 |
reconciler-manager |
20 | 150 |
reconciler (uno per RootSync e RepoSync) |
Per informazioni dettagliate, consulta Deployment del riconciliatore. |
1 L'webhook di ammissione ha due repliche, quindi quando calcoli le richieste di risorse totali, devi raddoppiare il valore se utilizzi il webhook di ammissione. Il webhook di ammissione è disattivato per impostazione predefinita.
Deployment del riconciliatore
Per ogni oggetto RootSync
e RepoSync
, Config Sync crea un
deployment di riconciliatore indipendente per gestire la sincronizzazione. Il deployment del riconciliatore
è costituito da più container. Per scoprire di più su questi contenitori, consulta
Contenitori di riconciliazione.
Cluster standard
Le richieste di risorse sono le stesse per tutte le versioni supportate di Config Sync.
Nome del contenitore | Richiesta CPU (m) | Memory request (Mi) |
---|---|---|
reconciler |
50 | 200 |
otel-agent |
10 | 100 |
hydration-controller (facoltativo) |
10 | 100 |
git-sync |
10 | 16 |
gcenode-askpass-sidecar (facoltativo) |
10 | 20 |
helm-sync |
75 | 128 |
oci-sync |
25 | 32 |
Cluster Autopilot
Le richieste di risorse sono le stesse per tutte le versioni supportate di Config Sync.
Nome del contenitore | Richiesta e limite di CPU (m) | Richiesta e limite di memoria (Mi) |
---|---|---|
reconciler |
700 | 512 |
otel-agent |
10 | 64 |
hydration-controller (facoltativo) |
200 | 256 |
git-sync |
20 | 32 |
gcenode-askpass-sidecar (facoltativo) |
50 | 64 |
helm-sync |
250 | 384 |
oci-sync |
50 | 64 |
Per scoprire come eseguire l'override delle richieste e dei limiti delle risorse predefiniti, consulta Override delle risorse.
Versioni di Helm e Kustomize incluse
Config Sync utilizza gli eseguibili Helm e Kustomize per eseguire il rendering delle configurazioni in background. La tabella seguente fornisce un elenco delle versioni di Config Sync che supportano la funzionalità di rendering, insieme alle versioni di Helm e Kustomize incluse.
Versioni di Config Sync | Helm version | Versione di Kustomize |
---|---|---|
1.22.0 | v3.15.3 | v5.3.0 |
1.21.0 | v3.15.3 | v5.3.0 |
1.20.0 | v3.15.3 | v5.3.0 |
Per informazioni sul rendering di Helm tramite Kustomize, vedi Configurazione di Kubernetes con Kustomize. Per informazioni sull'utilizzo dell'API Helm, vedi Sincronizzazione dei grafici Helm da Artifact Registry.
Passaggi successivi
- Scopri come eseguire l'upgrade di Config Sync.
- Scopri di più sui comandi
gcloud
per configurare Config Sync. - Scopri come configurare la sincronizzazione da più repository.
- Utilizza il comando
nomos
. - Leggi l'introduzione alla risoluzione dei problemi di Config Sync.
- Scopri come disinstallare Config Sync.
- Esamina le autorizzazioni predefinite di Config Sync.