Con Config Sync, puoi gestire le risorse Kubernetes sincronizzando le configurazioni da una fonte attendibile centrale, ad esempio un repository Git, un'immagine OCI o un grafico Helm. Se le istruzioni di installazione predefinite non soddisfano le tue esigenze, potresti dover personalizzare l'installazione di Config Sync.
Questa pagina mostra come eseguire un'installazione e una configurazione avanzate di Config Sync. La procedura di installazione include quanto segue:
- Installazione di Config Sync sui singoli cluster utilizzando la Google Cloud console, Google Cloud CLI o Terraform.
- Configurazione del repository radice, inclusi tipo di origine, formato e autenticazione.
- Verifica della corretta installazione e configurazione di Config Sync.
Limitazioni
Config Sync non supporta la configurazione di helm come tipo di origine
utilizzando la Google Cloud console o Google Cloud CLI. Puoi configurare l'oggetto
RootSync o RepoSync per la sincronizzazione da un repository Helm utilizzando l'
API Kubernetes o
dichiararlo in un'altra fonte attendibile.
Per ulteriori informazioni, consulta la sezione
Configurazione per il repository Helm.
Prima di iniziare
Prima di installare Config Sync, prepara la fonte attendibile e un cluster adatto.
Concedi a Config Sync l'accesso alla fonte attendibile
Per sincronizzare la configurazione da una fonte attendibile ai cluster, Config Sync richiede l'accesso in sola lettura al repository. Per autorizzare Config Sync a leggere le configurazioni, completa i seguenti passaggi:
Crea o accedi a una fonte attendibile contenente i file di configurazione che vuoi che Config Sync sincronizzi con i cluster. Per ulteriori informazioni, consulta le seguenti risorse:
- Aggiungere configurazioni a una fonte attendibile: informazioni concettuali sulle configurazioni.
- Best practice di GitOps: suggerimenti e best practice generali per organizzare e gestire il repository.
- Utilizzare un repository non strutturato: consigli per l'utilizzo e l'organizzazione di un repository non strutturato.
Se la fonte attendibile è pubblica, non sono necessarie ulteriori azioni. Config Sync non richiede autorizzazioni aggiuntive.
Se la fonte attendibile è privata, completa le istruzioni in una delle seguenti pagine:
Esamina i requisiti del cluster
Prima di creare un cluster, esamina i requisiti del cluster.
Installazione di Config Sync
Quando installi Config Sync utilizzando la Google Cloud console o la
Google Cloud CLI, Config Sync crea automaticamente un oggetto RootSync denominato
root-sync. Puoi utilizzare i comandi kubectl per modificare root-sync e aggiungere altre configurazioni di Config Sync. Per ulteriori informazioni, consulta
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 Google Cloud console, la selezione dei singoli cluster li registra automaticamente nel parco risorse.
- Nella Google Cloud console, vai alla pagina Config Management nella sezione Funzionalità.
- Fai clic su add Installa Config Sync.
- Seleziona la versione di Config Sync che vuoi utilizzare.
- In Opzioni di installazione, seleziona una delle seguenti opzioni:
- Installa Config Sync sull'intero parco risorse (consigliato): Config Sync viene installato su tutti i cluster del parco risorse.
- Installa Config Sync sui singoli cluster: Config Sync viene installato sui cluster selezionati. Tutti i cluster selezionati vengono registrati automaticamente nel parco risorse.
- Se stai installando Config Sync sui 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 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 su più cluster o eseguire il deployment di pacchetti diversi su cluster diversi. Puoi modificare un pacchetto dopo averlo eseguito il deployment, ad eccezione di alcune impostazioni come il nome del pacchetto e il tipo di sincronizzazione. Per ulteriori informazioni, consulta Gestire i pacchetti.
Per eseguire il deployment di un pacchetto, completa i seguenti passaggi:
Nella Google Cloud console, vai alla dashboard di Config Sync.
Fai clic su Esegui il deployment del pacchetto.
Nella tabella Seleziona i cluster per il deployment del pacchetto, seleziona il cluster su cui vuoi eseguire il deployment di un pacchetto e poi fai clic su Continua.
Seleziona Pacchetto ospitato su Git o Pacchetto ospitato su OCI come tipo di origine e poi 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 e la sincronizzazione con ambito spazio dei nomi crea un oggetto RepoSync. Per ulteriori informazioni su questi oggetti, consulta Architettura di Config Sync.
Nella sezione Origine, completa i seguenti passaggi:
Per le origini ospitate in un repository Git, inserisci i seguenti campi:
- Inserisci l'URL del repository Git che stai utilizzando come fonte attendibile come URL repository.
- (Facoltativo) Aggiorna il campo Revisione per estrarre se non utilizzi il valore predefinito
HEAD. - (Facoltativo) Aggiorna il campo Percorso se non vuoi eseguire la sincronizzazione dal repository radice.
- (Facoltativo) Aggiorna il campo Ramo se non utilizzi il ramo
mainpredefinito.
Per le origini ospitate in un'immagine OCI, inserisci i seguenti campi:
- Inserisci l'URL dell'immagine OCI che stai utilizzando come fonte attendibile come Immagine.
- Inserisci il percorso della directory da cui eseguire la sincronizzazione, relativo alla directory radice, come Directory.
(Facoltativo) Espandi la sezione Impostazioni avanzate per completare i seguenti passaggi:
Seleziona un Tipo di autenticazione. Config Sync richiede l'accesso in sola lettura alla fonte attendibile per leggere i file di configurazione nell'origine e applicarli ai cluster. A meno che l'origine non richieda l'autenticazione, ad esempio un repository pubblico, assicurati di concedere a Config Sync l'accesso in sola lettura al repository Git, immagine OCI o grafico Helm (solo gcloud CLI). Scegli lo stesso tipo di autenticazione configurato durante l'installazione di Config Sync:
- Nessuna: non utilizzare l'autenticazione.
- SSH: esegui l'autenticazione utilizzando una coppia di chiavi SSH.
- File cookie: 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 workload per GKE non è abilitata nel 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 per la sincronizzazione, che determina per quanto tempo Config Sync attende tra i tentativi di pull dalla fonte attendibile.
Inserisci un URL proxy Git per il proxy HTTPS da utilizzare per la comunicazione con la fonte attendibile.
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.
Abilita la funzionalità del parco risorse
ConfigManagement:gcloud beta container fleet config-management enablePrepara la configurazione creando un file denominato
apply-spec.yamle copiando il seguente file YAML al suo interno.Puoi impostare tutti i campi facoltativi
spec.configSyncdi cui hai bisogno quando crei il manifest e utilizzare in un secondo momentokubectlcomandi per la configurazione. Puoi anche impostare solo il campospec.configSync.enabledsutruee omettere i campi facoltativi. In un secondo momento, puoi utilizzare i comandikubectlper creare altri oggetti RootSync o RepoSync che puoi gestire completamente utilizzando i comandikubectl.# 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 secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: falseSostituisci quanto segue:
SOURCE_TYPE: aggiungigitper eseguire la sincronizzazione da un repository Git,ociper eseguire la sincronizzazione da un'immagine OCI ohelmper eseguire la sincronizzazione da un grafico Helm. Se non viene specificato alcun valore, il valore predefinito ègit.FORMAT: aggiungiunstructuredper utilizzare un repository non strutturato o aggiungihierarchyper utilizzare un repository gerarchico. Questi valori distinguono tra maiuscole e minuscole. 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 anche perTAGoDIGEST. SpecificaTAGoDIGESTinPACKAGE_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 cui eseguire la sincronizzazione. 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, consulta la scheda account di servizio Google della sezione Concedere a Config Sync l'accesso a Git con un service account Google.gcenode: utilizza un account di servizio Google per accedere a Cloud Source Repositories. Seleziona questa opzione solo se la federazione delle identità per i workload per GKE non è abilitata nel cluster.githubapp: utilizza un'app GitHub per l'autenticazione a un repository GitHub.
Per ulteriori informazioni su questi tipi di autenticazione, consulta Concedere a Config Sync l'accesso a Git.
oci
none: non utilizzare l'autenticazionetoken: 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 la federazione delle identità per i workload per 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 la federazione delle identità per i workload per GKE non è abilitata nel cluster.gcpserviceaccount: utilizza un account di servizio Google per accedere a un'immagine.
EMAIL: se hai aggiuntogcpserviceaccountcomesecretType, aggiungi l'indirizzo email del tuo service account Google. Ad esempio,acm@PROJECT_ID.iam.gserviceaccount.com.METRICS_EMAIL: l'indirizzo email del Google Cloud service account (SA) utilizzato per esportare le metriche di Config Sync in Cloud Monitoring. Il SA deve avere il ruolo IAM Writer metriche Monitoring (roles/monitoring.metricWriter). Il ServiceAccount Kubernetesdefaultnello spazio dei nomiconfig-management-monitoringdeve essere associato al SA.DIRECTORY: il percorso della directory da cui eseguire la sincronizzazione, 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.
Per un elenco completo dei campi che puoi aggiungere al campo
spec, consulta Campi gcloud.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_IDSostituisci 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 contenga un blocco configmanagement e config_sync, come nell'esempio seguente:
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 che vuoi sincronizzare. Per utilizzare la directory radice, lascia vuoto questo campo.SECRET: il tipo di autenticazione del secret.
Ripeti questa procedura per ogni cluster che vuoi sincronizzare.
Per ulteriori informazioni sull'utilizzo di Terraform, consulta Supporto di Terraform per Config Sync.
Dopo aver configurato il repository radice, puoi facoltativamente configurare la sincronizzazione da più repository, inclusi altri repository radice e repository di spazi dei nomi. I repository di spazi dei nomi sono utili se vuoi che un repository contenente configurazioni con ambito spazio dei nomi venga sincronizzato con uno spazio dei nomi specifico tra i cluster.
Verifica l'installazione
Dopo aver installato e configurato Config Sync, puoi verificare che l'installazione sia stata completata correttamente.
gcloud
Esegui questo comando:
nomos status
Un'installazione riuscita mostra lo stato SYNCED o PENDING.
Per ulteriori dettagli sulle informazioni fornite da nomos status, inclusi
gli errori segnalati, consulta Controllare lo stato di Config Sync
nella documentazione dello strumento a riga di comando nomos.
console
Completa i seguenti passaggi:
- Nella Google Cloud console, vai alla pagina Config Management nella sezione Funzionalità.
- Nella scheda Pacchetti, controlla la colonna Stato sincronizzazione nella tabella del cluster. Un'installazione riuscita di Config Sync ha lo stato Installato. Una fonte attendibile configurata correttamente ha lo stato Sincronizzato.
Esegui l'override delle richieste e dei limiti delle risorse
Nella maggior parte dei casi, le
richieste e i limiti delle risorse predefiniti
per i componenti di Config Sync sono sufficienti. Tuttavia, puoi eseguire l'override delle richieste e dei limiti per la CPU e la memoria predefinite per assicurarti che i componenti dispongano di risorse sufficienti per funzionare in modo affidabile. Ad esempio, se stai sincronizzando un numero elevato di risorse con il cluster, potresti dover fornire più risorse a reconciler-manager.
Puoi eseguire l'override delle richieste e dei limiti delle risorse per alcuni componenti di Config Sync utilizzando il campo deploymentOverrides nel file apply-spec.yaml quando installi Config Sync con gcloud CLI. Non puoi utilizzare il campo deploymentOverrides per eseguire l'override di altri campi in un deployment, ad esempio il numero di repliche.
Il campo deploymentOverrides può eseguire l'override delle richieste e dei limiti delle risorse solo per i deployment che non sono un riconciliatore radice o di spazi dei nomi, ad esempio reconciler-manager. Se devi eseguire l'override delle risorse per un riconciliatore radice o di spazi dei nomi, puoi utilizzare il campo spec.override.resources nell'oggetto RootSync o RepoSync.
L'esempio seguente mostra come utilizzare il campo deploymentOverrides per impostare una nuova richiesta e un nuovo limite di CPU e una nuova richiesta e un nuovo limite di memoria per il container reconciler-manager:
applySpecVersion: 1
spec:
configSync:
enabled: true
# ... other fields...
deploymentOverrides:
- name: reconciler-manager
namespace: config-management-system
containers:
- name: reconciler-manager
cpuRequest: 50m
cpuLimit: 100m
memoryRequest: 256Mi
memoryLimit: 512Mi
Dopo aver creato il file apply-spec.yaml, applicalo eseguendo questo comando:
gcloud beta container fleet config-management apply \
--membership=MEMBERSHIP_NAME \
--config=apply-spec.yaml \
--project=PROJECT_ID
Per un elenco completo dei campi di cui puoi eseguire l'override, consulta la documentazione di riferimento dei campi di specifica di gcloud apply.
Passaggi successivi
- Scopri come eseguire l'upgrade di Config Sync.
- Scopri di più sui comandi
gcloudper la configurazione di 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.