Aggiungi configurazioni a una fonte attendibile

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 cluster soddisfino agli standard aziendali e di conformità consentendo a Config Sync di gestire gli spazi dei nomi, ruoli, RoleBindings, ResourceQuotas e altri importanti oggetti Kubernetes, all'interno del parco risorse.

Quando Config Sync gestisce queste risorse, mantiene i cluster registrati in eseguire la sincronizzazione 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, 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 con Config Sync.

Puoi anche utilizzare Config Sync Config Connector per cui sincronizzare le configurazioni Risorse Google Cloud. Per apprendere sull'utilizzo di Config Connector, consulta gestione delle risorse Google Cloud mediante 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 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 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 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 configurazione del sistema, metadati del cluster, configurazione a livello di cluster e configurazione dello spazio dei nomi. Per ulteriori informazioni sul formato di origine gerarchico, consulta Struttura del repository gerarchico.

Il formato non strutturato è 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 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
HierarchyConfig oggetti Non supportata Supportato

Quando aggiungere configurazioni all'origine

Se stai creando un formato non strutturato, puoi iniziare ad aggiungere configurazioni appena creato. Se crei un formato gerarchico, utilizza il comando nomos init per inizializzare la fonte attendibile o creare manualmente la struttura della directory.

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 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 attendibile e avervi inserito le configurazioni, e configurare Config Sync per la lettura dall'origine. Dopo aver completato Questo passaggio, Config Sync sincronizza le configurazioni dalla tua fonte di riferimento con i 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 sezione località della fonte attendibile, puoi specificare un ramo o una sottodirectory guarda, se l'origine ha contenuti diversi dalle configurazioni.

Se utilizzi un formato gerarchico installando manualmente Config Sync con kubectl, non inserire la configurazione dell'operatore nel campo system/ o qualsiasi altra directory riservata, come cluster/ o namespaces/, Se posizioni la configurazione in una delle directory riservate, nomos vet in caso di errore e registra un errore come KNV1033: LegalSystemResourceplacementError. KNV1038: PoliticalKindInNamespacesError, oppure KNV1039: adsenseKindInClusterError.

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