Questa pagina spiega come aggiungere e organizzare le configurazioni archiviate in una fonte attendibile.
Informazioni sulle configurazioni
Config Sync è progettato per gli operatori di cluster che gestiscono molti cluster. Puoi assicurarti che i tuoi cluster soddisfino gli standard aziendali e di conformità consentendo a Config Sync di gestire gli spazi dei nomi, i ruoli, le associazioni di ruoli, le quote risorse e altri oggetti Kubernetes importanti nel tuo parco risorse.
Quando Config Sync gestisce queste risorse, mantiene sincronizzati i cluster registrati utilizzando le configurazioni. Una configurazione è un file YAML o JSON archiviato in una fonte di verità. Config Sync supporta i repository Git, le immagini OCI e i grafici Helm come fonte attendibile. I file Configs contengono lo stesso tipo di dettagli di configurazione che puoi applicare manualmente a un cluster utilizzando il comando kubectl apply
. Puoi creare una configurazione per qualsiasi oggetto Kubernetes che può esistere in un cluster. Tuttavia, alcuni oggetti Kubernetes, come i secret, contengono informazioni sensibili che potrebbero essere inappropriate da archiviare in una fonte attendibile. Valuta attentamente se gestire questi tipi di oggetti utilizzando Config Sync.
Puoi anche utilizzare Config Sync con Config Connector per sincronizzare le configurazioni per le risorse . Per scoprire di più sull'utilizzo di Config Connector, consulta la sezione sulla gestione delle risorse Google Cloud utilizzando Config Connector. Puoi anche semplificare l'installazione di Config Sync e Config Connector configurando Config Controller.
Limitazioni
Non puoi modificare un campo immutabile in una configurazione modificando il valore nella verità. Se devi aggiornare un campo immutabile, elimina manualmente l'oggetto nel cluster. Config Sync può quindi ricreare l'oggetto con il nuovo valore del campo.
Seleziona come organizzare le configurazioni
Config Sync utilizza una fonte attendibile per lo spazio di archiviazione delle configurazioni e il controllo delle versioni. Puoi scegliere tra due diversi formati per la tua origine attendibile: non strutturato e gerarchico.
Il formato dell'origine non strutturata ti consente di organizzare le configurazioni nel modo più comodo. Questo formato può essere particolarmente utile se organizzi o generi configurazioni utilizzando uno strumento come Kustomize, kpt o Helm. Per un esempio di come organizzare le configurazioni, consulta Formato di esempio per un repository non strutturato.
Il formato di origine gerarchico o strutturato suddivide le configurazioni in categorie distinte per aiutarti a organizzarle. Le categorie sono configurazione del sistema, metadati del cluster, configurazione a livello di cluster e configurazione dello spazio dei nomi. Per ulteriori informazioni sul formato delle origini gerarchiche, consulta Struttura del repository gerarchico.
Il formato non strutturato è consigliato per la maggior parte degli utenti. Inoltre, quando configuri gli oggetti RepoSync, devi utilizzare il formato dell'origine non strutturata.
Funzionalità supportate per i formati non strutturati e gerarchici
La seguente tabella evidenzia le differenze tra i formati non strutturati e gerarchici:
Funzionalità | Formato non strutturato (consigliato) | Formato gerarchico |
---|---|---|
Utilizzato come formato per un oggetto RootSync o la fonte attendibile centrale | Supportato | Supportato |
Utilizzato come formato per un oggetto RepoSync | Supportato | Non supportata |
ClusterSelector |
Supportato | Supportato |
NamespaceSelector |
Supportato | Supportato |
Il comando nomos hydrate |
Supportato con il flag --source-format=unstructured |
Supportato |
Il comando nomos init |
Non supportata | Supportato |
Il comando nomos vet |
Supportato con il flag --source-format=unstructured |
Supportato |
Tutti gli altri comandi nomos |
Supportato | Supportato |
Spazi dei nomi astratti | Non supportata | Supportato |
Repo oggetti |
Non supportata | Supportato |
Oggetti HierarchyConfig |
Non supportata | Supportato |
Quando aggiungere le configurazioni all'origine
Se stai creando un formato non strutturato, puoi iniziare ad aggiungere configurazioni non appena viene creato. Se stai creando un formato gerarchico, utilizza il comando nomos init
per inizializzare la fonte attendibile o crea la struttura della directory manualmente.
Le directory vuote non possono essere committate in un repository Git, quindi prima di configurare Config Sync devi creare le configurazioni e aggiungerle al tuo repository.
Dopo aver creato l'origine di riferimento e avervi aggiunto le configurazioni, utilizza il comando
nomos vet
per verificare la
struttura dell'origine di riferimento e controllare la sintassi e la validità delle
configurazioni.
Configura Config Sync in modo che legga dall'origine attendibile
Dopo aver creato una fonte di riferimento e avervi inserito le configurazioni, puoi configurare Config Sync in modo che le legga dall'origine. Al termine di questo passaggio, Config Sync sincronizza le configurazioni dalla tua origine attendibile ai tuoi cluster.
Configura la posizione della fonte attendibile quando installi Config Sync, e puoi modificare la configurazione di Config Sync in un secondo momento. Oltre alla posizione della fonte attendibile, puoi specificare un ramo o una sottodirectory da monitorare, se la sorgente contiene contenuti diversi dalle configurazioni.
Se utilizzi un formato gerarchico e installi Config Sync manualmente con kubectl
, non inserire la configurazione dell'operatore nella directory system/
o in una delle altre directory riservate come cluster/
o namespaces/
. Se la config viene posizionata in una delle directory riservate,
nomos vet
non va a buon fine e viene registrato un errore come
KNV1033: IllegalSystemResourcePlacementError,
KNV1038: IllegalKindInNamespacesError o
KNV1039: IllegalKindInClusterError.
Puoi concedere alle persone l'accesso alla fonte attendibile di un determinato team di prodotto. Tuttavia, quando concedi a una persona l'accesso a una fonte di verità di deployment, a questa viene concesso anche lo stesso RBAC del riconciliatore in esecuzione per la fonte di verità.
Per configurare l'autenticazione e l'autorizzazione tra Config Sync e la fonte attendibile, consulta il passaggio di installazione relativo alla configurazione del segreto git-creds
.
Ignora le mutazioni degli oggetti
Se non vuoi che Config Sync mantenga lo stato dell'oggetto nel
cluster dopo che è stato creato, puoi aggiungere l'annotazione
client.lifecycle.config.k8s.io/mutation: ignore
all'oggetto per il quale vuoi che Config Sync ignori le mutazioni.
Per utilizzare l'annotazione, devi abilitare le API RootSync e RepoSync.
L'esempio seguente mostra come aggiungere l'annotazione a un oggetto:
metadata:
annotations:
client.lifecycle.config.k8s.io/mutation: ignore
Non puoi modificare manualmente questa annotazione sugli oggetti gestiti nel cluster.
Passaggi successivi
- Scopri come gestire gli spazi dei nomi e gli oggetti con ambito di spazio dei nomi.
- Per scoprire come pubblicare un'immagine OCI, consulta Sincronizzare gli elementi OCI da Artifact Registry.
- Per scoprire come eseguire la sincronizzazione da un grafico Helm, consulta Sincronizzare i grafici Helm da Artifact Registry.