Questa pagina spiega come aggiungere e organizzare le configurazioni archiviate in una fonte attendibile.
Informazioni sulle configurazioni
Config Sync è progettato per cluster e operatori 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 nell'intero 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. Configurazioni
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, alcune
Gli oggetti Kubernetes, come i secret, contengono informazioni sensibili che potrebbero essere
inappropriati da memorizzare
in una fonte di dati. Usa il buon senso quando prendi in considerazione
se gestire questi tipi di oggetti
usando Config Sync.
Puoi anche utilizzare Config Sync Config Connector per cui sincronizzare le configurazioni Risorse Google Cloud. 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 i campi immutabili di una configurazione modificando il valore nella una fonte attendibile. Se devi aggiornare un campo immutabile, elimina manualmente il valore nel cluster. Config Sync può quindi ricreare l'oggetto con nuovo valore del campo.
Seleziona come organizzare le configurazioni
Config Sync utilizza una fonte attendibile per l'archiviazione della configurazione e il controllo della versione. Puoi scegliere tra due diversi formati per la tua fonte di riferimento: non strutturati e gerarchiche.
Il formato di origine non strutturato ti consente di organizzare le configurazioni nel modo più adatto alle tue esigenze pratico. 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 separa le configurazioni in categorie distinte per aiutarti a organizzarle. Le categorie sono sistema configurazione, metadati del cluster, configurazione a livello di cluster e spazio dei nomi configurazione. Per ulteriori informazioni sul formato di origine gerarchico, consulta Struttura del repository gerarchico.
Non strutturato è il formato consigliato per la maggior parte degli utenti. Inoltre, quando configuri gli oggetti RepoSync, devi usare il formato di origine non strutturato.
Funzionalità supportate per i formati non strutturati e gerarchici
La seguente tabella evidenzia le differenze tra le colonne non strutturate e formati 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 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.
Non è possibile eseguire il commit di directory vuote in un repository Git, quindi prima configurare Config Sync, devi creare le configurazioni e aggiungerle al repository.
Dopo aver creato la fonte attendibile e aver aggiunto le configurazioni, utilizza
nomos vet
per verificare
struttura della tua fonte di riferimento e controlla la sintassi e la validità
configurazioni.
Configura Config Sync per la lettura dalla fonte attendibile
Dopo aver creato una fonte attendibile e avervi inserito le configurazioni, e configurare Config Sync per la lettura dall'origine. Al termine di questo passaggio, Config Sync sincronizza le configurazioni dalla tua origine attendibile ai tuoi cluster.
Configuri la località della fonte di riferimento quando installare Config Sync, e potrai 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
configurazione del secret git-creds
.
Ignora le mutazioni degli oggetti
Se non vuoi che Config Sync mantenga lo stato dell'oggetto nel
esistente, puoi aggiungere il cluster
client.lifecycle.config.k8s.io/mutation: ignore
sull'oggetto che
vuoi che Config Sync ignori le mutazioni.
Per utilizzare l'annotazione, devi attivare il parametro 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 basati sugli spazi dei nomi.
- Per scoprire come pubblicare un'immagine OCI, consulta Sincronizza gli artefatti OCI da Artifact Registry.
- Per scoprire come eseguire la sincronizzazione da un grafico Helm, vedi Sincronizza i grafici Helm da Artifact Registry.