In questo tutorial, creerai un cluster Google Kubernetes Engine (GKE) Enterprise e usa Config Sync per sincronizzare le configurazioni nel repository di esempi con più repository.
Immagina che il team responsabile della conformità abbia la responsabilità di assicurarsi che tutti della tua organizzazione segue regole interne. Per applicare queste regole, del team responsabile della conformità ha creato le configurazioni, che sono state aggiunte agli esempi repository Git. Ogni cluster della tua organizzazione deve sincronizzarsi con repository e tu sei responsabile della creazione e della sincronizzazione dei cluster.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Assicurati di disporre dei seguenti ruoli nel progetto: GKE Hub Admin
Verifica i ruoli
-
Nella console Google Cloud, vai alla pagina IAM.
Vai a IAM - Seleziona il progetto.
-
Nella colonna Entità, individua la riga contenente il tuo indirizzo email.
Se il tuo indirizzo email non è in questa colonna, significa che non disponi di alcun ruolo.
- Nella colonna Ruolo per la riga contenente il tuo indirizzo email, controlla se l'elenco dei ruoli include quelli richiesti.
Concedi i ruoli
-
Nella console Google Cloud, vai alla pagina IAM.
Vai a IAM - Seleziona il progetto.
- Fai clic su Concedi l'accesso.
- Nel campo Nuove entità, inserisci il tuo indirizzo email.
- Nell'elenco Seleziona un ruolo, scegli un ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ciascun ruolo aggiuntivo.
- Fai clic su Salva.
-
Crea un cluster
In questa sezione creerai un cluster da utilizzare in questo tutorial. Anche se in uno scenario reale probabilmente gestiresti più cluster. Per semplificare questo tutorial, dovrai creare e gestire un solo cluster.
Per creare un cluster, completa questi passaggi:
Nella console Google Cloud, vai alla pagina Kubernetes Engine.
Se utilizzi GKE per la prima volta, fai clic su Abilita per abilitare l'API Kubernetes Engine.
Fai clic su add_box Crea.
Nella sezione Autopilot, seleziona Configura.
Nella sezione Impostazioni di base del cluster, inserisci
cs-cluster
in Nome. e lascia invariate le impostazioni predefinite consigliate per tutti gli altri campi.Fai clic su Crea. Si aprirà la pagina Cluster Kubernetes. it la creazione del cluster richiede alcuni minuti. Quando vedi un'icona verde segno di spunta nella colonna Stato accanto al cluster, significa che è pronto.
Configura il cluster
Ora che hai creato un cluster, puoi configurare Config Sync per la sincronizzazione
alle configurazioni della directory config-sync-quickstart
del repository di esempi.
Per configurare Config Sync sulla console Google Cloud, completa seguenti passaggi:
Nella console Google Cloud, abilita l'API GKE Hub.
- Nella console Google Cloud, vai alla pagina Configurazione nella sezione Funzionalità.
Fai clic su add Installa Config Sync.
Seleziona Upgrade automatici per Abilita Config Sync per eseguire automaticamente l'upgrade delle versioni.
Nella sezione Opzioni di installazione, seleziona Installa Config Sync su singoli cluster.
Nella Nella tabella Cluster disponibili, seleziona
cs-cluster
e fai clic su Installa Config Sync. Nella scheda Impostazioni dovresti visualizzare lo stato delcs-cluster
su Attivato dopo qualche minuto.Nella dashboard di Config Sync, fai clic su Esegui il deployment del pacchetto.
Nella tabella Seleziona i cluster per il deployment dei pacchetti, seleziona
cs-cluster
e fai clic su Continua.Lascia selezionato Pacchetto ospitato su Git e fai clic su Continua.
Nel campo Nome pacchetto, inserisci
sample-repository
.Nel campo URL repository, inserisci
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
.Nel campo Percorso, inserisci
config-sync-quickstart/multirepo/root
.Lascia invariati i valori predefiniti di tutti gli altri campi.
Fai clic su Esegui il deployment del pacchetto.
Dopo alcuni minuti, dovrebbe essere visualizzato il messaggio Sincronizzato in Stato sincronizzazione colonna per
cs-cluster
.
Ora che Config Sync è sincronizzato con un repository, esegue continuamente le riconciliazioni lo stato dei cluster con le configurazioni nel repository.
Esplora l'installazione di Config Sync
Nelle sezioni seguenti userai Cloud Shell per esplorare il repository
cs-cluster
sta eseguendo la sincronizzazione da e conferma che le configurazioni nel repository
è in corso il deployment.
Apri Cloud Shell
-
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Per utilizzare i comandi nelle sezioni seguenti, configura
kubectl
l'accesso tramite riga di comando:gcloud container clusters get-credentials cs-cluster \ --zone ZONE \ --project PROJECT_ID
Sostituisci quanto segue:
ZONE
: la zona in cui hai creato il clusterPROJECT_ID
: il tuo ID progetto
L'output è il seguente:
Fetching cluster endpoint and auth data. kubeconfig entry generated for cs-cluster.
Se ti viene richiesta l'autorizzazione, fai clic su Autorizza.
Esamina il cluster e il repository
La directory config-sync-quickstart
include ClusterRole,
Configurazioni CustomResourceDefinition, Rolebinding, Spazio dei nomi e RepoSync. it
include anche le configurazioni dell'operatore Prometheus per il monitoraggio.
Queste configurazioni vengono applicate non appena Config Sync viene configurato su
vengono lette dal repository.
Tutti gli oggetti gestiti da Config Sync hanno
Etichetta app.kubernetes.io/managed-by
impostata su configmanagement.gke.io
. Puoi
utilizza questa etichetta per visualizzare
gli oggetti gestiti.
Per elencare gli spazi dei nomi gestiti da Config Sync, esegui questo comando:
kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
L'output è simile al seguente:
NAME STATUS AGE
gamestore Active 58s
monitoring Active 58s
Puoi accedere alla /config-sync-quickstart/multirepo/ del repository in GitHub per esplorare le configurazioni che ha causato la creazione di questi spazi dei nomi.
Puoi esaminare altri oggetti, come ClusterRole, Reposyncs, CRD e Associazioni di ruoli, nello stesso modo.
Controllare lo stato della sincronizzazione
Quando utilizzi Config Sync, puoi utilizzare
strumento a riga di comando nomos
. Questo strumento
fornisce funzionalità aggiuntive per Config Sync.
In questa sezione, verificherai se Config Sync ha sincronizzato correttamente tutte le configurazioni
nel cluster utilizzando il comando nomos status
:
nomos status
L'output è simile al seguente:
*gke_PROJECT_ID_ZONE_cs-cluster
--------------------
<root>:root-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/root@main
SYNCED @ 2023-02-03 16:58:42 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
clusterrole.rbac.authorization.k8s.io/namespace-reader Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/webstore-admin Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/anvils.acme.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/webstores.marketplace.com Current 1fbab5c
namespace/gamestore Current 1fbab5c
namespace/monitoring Current 1fbab5c
gamestore reposync.configsync.gke.io/repo-sync Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-admin Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin Current 1fbab5c
monitoring deployment.apps/prometheus-operator Current 1fbab5c
monitoring prometheus.monitoring.coreos.com/acm Current 1fbab5c
monitoring service/prometheus-acm Current 1fbab5c
monitoring service/prometheus-operator Current 1fbab5c
monitoring serviceaccount/prometheus-acm Current 1fbab5c
monitoring serviceaccount/prometheus-operator Current 1fbab5c
monitoring servicemonitor.monitoring.coreos.com/acm-service Current 1fbab5c
--------------------
gamestore:repo-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/namespaces/gamestore@main
SYNCED @ 2023-02-03 16:58:51 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
gamestore configmap/store-inventory Current 1fbab5c
gamestore webstore.marketplace.com/gameplace Current 1fbab5c
In questo output, puoi vedere che cs-cluster
è
la sincronizzazione da due repository. Inoltre, poiché tutte le risorse hanno uno stato
di Current
, lo stato della risorsa corrisponde a quello che vuoi.
Esegui la pulizia
Vai al menu GKE nella console Google Cloud.
Accanto a
cs-cluster
, fai clic su more_vert Azioni e poi su delete Elimina.Quando ti viene chiesto di confermare, fai di nuovo clic su Elimina.
Passaggi successivi
- Scopri di più sulla convalida delle configurazioni.