Distributed Cloud connected supporta il deployment di una serie di Google Cloud servizi. Questi carichi di lavoro dei servizi vengono eseguiti nei container Kubernetes sui cluster Distributed Cloud connected.
Servizi supportati Google Cloud
Distributed Cloud connected supporta il deployment dei seguenti Google Cloud servizi:
| Tipo di servizio | Incluso nei costi di GDC connected | Fatturazione separata |
|---|---|---|
| Computing | Google Distributed Cloud solo software VM Runtime su Google Distributed Cloud |
Sistemi operativi guest (devi ottenere le tue licenze) |
| Spazio di archiviazione | Container Storage Interface (CSI) Spazio di archiviazione ibrido |
Software Defined Storage (SDS), come Symcloud Storage (devi ottenere le tue licenze) |
| Networking | API Edge Network Supporto VLAN Plug-in GKE Custom Network Interface (CNI) Bilanciamento del carico L4 in bundle GKE |
Non applicabile |
| AI/ML | Deployment di modelli AutoML nei container | Non applicabile |
| Database | Nessuno | AlloyDB Omni (anteprima) Soluzioni di database di terze parti, come MongoDB (devi ottenere le tue licenze) |
| Osservabilità | Cloud Logging Cloud Monitoring API Cloud Logging Log e metriche GDCc |
Prometheus per l'osservabilità disconnessa Log e metriche personalizzati a livello di applicazione |
| Gestione della configurazione | Config Sync Utilizzare i pacchetti del parco risorse in Distributed Cloud connected Pacchetti del parco risorse (anteprima) |
Non applicabile |
| Gestione | Dashboard Google Kubernetes Engine nella Google Cloud console Gateway di connessione Lo strumento locale kubectlUpgrade del software Distributed Cloud connected |
Non applicabile |
| Sicurezza | Integrazione di Cloud Key Management Service Unità SED (Self-Encrypting Disk) Fleet Workload Identity Logging di audit |
Non applicabile |
Prerequisiti
Prima di poter eseguire il deployment dei servizi su Distributed Cloud connected, devi completare i prerequisiti elencati in questa sezione. Google Cloud
Ottenere le credenziali del cluster
Utilizza il seguente comando per ottenere le credenziali per accedere al cluster di destinazione:
gcloud container hub memberships get-credentials CLUSTER_ID \
--project="PROJECT_ID"
Sostituisci quanto segue:
CLUSTER_ID: il nome del cluster di destinazione.PROJECT_ID: l'ID del progetto di destinazione. Google Cloud
Creare o selezionare un cluster
Se non l'hai ancora fatto, crea un cluster Distributed Cloud connected come descritto in Creare un cluster. Quando crei il cluster, specifica almeno 8 indirizzi IP virtuali (VIP). Questi VIP verranno utilizzati dai container Kubernetes che eseguono i carichi di lavoro dei Google Cloud servizi.
Se utilizzi un cluster esistente, utilizza il seguente comando per verificare che siano disponibili VIP sufficienti sul cluster:
kubectl get cluster --all-namespaces -o jsonpath="{.items[0].spec.loadBalancer.addressPools}"
Il comando restituisce un output simile al seguente:
[
{
"addresses": [
"10.200.11.188-10.200.11.196"
],
"name": "loadBalancerAddressPool-1"
}
]
Se non sono stati sottoposti a provisioning VIP sufficienti sul cluster, viene visualizzato il seguente errore,
dove n è il numero di VIP richiesto e m è il numero di VIP rilevati sul
cluster:
Cluster has less than n external IPs, got m.
Se ricevi questo errore, devi eliminare e ricreare il cluster con un numero sufficiente di VIP.
Configurare il sottodominio del Google Cloud servizio
Prima di eseguire il deployment del primo Google Cloud servizio in una zona Distributed Cloud connected, hai la possibilità di personalizzare il sottodominio su cui tutti i Google Cloud servizi di cui è stato eseguito il deployment in quella zona ascolteranno le connessioni. Non puoi modificare questo sottodominio dopo aver eseguito il deployment di almeno un servizio nella zona Distributed Cloud.
Utilizza il seguente comando per visualizzare la configurazione del sottodominio:
kubectl -n dns-system get celldns cell-dns -o yaml
Il comando restituisce un output simile al seguente:
apiVersion: system.private.gdc.goog/v1alpha1
kind: CellDNS
metadata:
name: cell-dns
namespace: dns-system
spec:
delegatedSubdomain: private.goog
Utilizza il seguente comando per modificare la configurazione del sottodominio:
kubectl -n dns-system edit celldns cell-dns
Eseguire il deployment di un Google Cloud servizio su Distributed Cloud connected
Per eseguire il deployment di un Google Cloud servizio sul cluster Distributed Cloud connected, segui i passaggi di deployment descritti nella documentazione del servizio.
Configurare il servizio di cui è stato eseguito il deployment Google Cloud
Questa sezione descrive i passaggi di configurazione post-deployment che puoi scegliere di completare in base ai requisiti aziendali.
Inoltrare le query DNS dal DNS interno al DNS del cluster
Quando esegui il deployment di un Google Cloud servizio sul cluster Distributed Cloud connected, sul cluster viene eseguito il deployment di un server DNS dedicato per quel servizio. Ti consigliamo di inoltrare le query DNS per il sottodominio del servizio al server DNS appena creato sul cluster.
Utilizza i seguenti comandi per ottenere il sottodominio del cluster:
CLUSTER_SUBDOMAIN=$(kubectl get configmap -n \ $(kubectl get clusters -A -o jsonpath="{.items[0].metadata.namespace}") \ dns-prefix -o jsonpath="{.data.dnsPrefix}") DELEGATED_SUBDOMAIN=$(kubectl get celldns -n dns-system cell-dns -o \ jsonpath="{.spec.delegatedSubdomain}") CLUSTER_FQDN="${CLUSTER_SUBDOMAIN?}.${DELEGATED_SUBDOMAIN?}" echo "${CLUSTER_FQDN?}"L'ultimo comando restituisce un output simile al seguente:
my-zone.google.private.googUtilizza il seguente comando per ottenere il VIP del server DNS sul cluster:
DNS_EXT_IP=$(k -n dns-system get service gpc-coredns-external-tcp -o "jsonpath={.status.loadBalancer.ingress[0].ip}")Configura il server DNS interno in modo che inoltri le query DNS per il servizio di cui è stato eseguito il deployment Google Cloud al VIP ottenuto nel passaggio precedente. Ad esempio:
Per
dnsmasq, aggiungi quanto segue a/etc/dnsmasq.conf:server=/${CLUSTER_FQDN?}/${DNS_EXT_IP?}Per CoreDNS, aggiungi quanto segue al Corefile:
${CLUSTER_FQDN?}:53 { errors cache 30 forward . ${DNS_EXT_IP?} { max_concurrent 1000 } }
Verificare la risoluzione DNS
Utilizza il seguente comando dig per verificare la corretta risoluzione del dominio. Presta particolare attenzione alla ANSWER SECTION:
dig "ais-core.${CLUSTER_FQDN?}"
Il comando restituisce un output simile al seguente:
...
;; ANSWER SECTION:
ais-core.my-zone.google.private.goog. 300 IN A 10.200.0.0
...
Recuperare il certificato autofirmato per il servizio di cui è stato eseguito il deployment Google Cloud
Quando esegui il deployment di un Google Cloud servizio sul cluster Distributed Cloud connected, Distributed Cloud connected emette un certificato autofirmato che utilizza per criptare il traffico di rete per quel servizio. Ti consigliamo di recuperare questo certificato e configurare il tuo ambiente aziendale in modo che lo consideri attendibile.
Per ottenere questo certificato in formato con codifica PEM, utilizza il seguente comando:
kubectl get secret -n cert-manager-cluster-resources web-ca-cert -o jsonpath="{.data.ca\.crt}" | base64 -d
Distributed Cloud connected genera diversi bundle di attendibilità in tutto il cluster. Questi bundle di attendibilità vengono archiviati come ConfigMap in ogni spazio dei nomi del cluster. Questi sono:
trust-store-internal-only. Contiene le autorità di certificazione (CA) per i servizi interni di Distributed Cloud connected.trust-store-root-ext. Contiene tutte le CA intrust-store-root-ext, oltre alla CA che ha firmato il certificato autofirmato del servizio di destinazione.Google Cloud Monta questo bundle di attendibilità in un pod se devi consentire al pod di accedere al servizio di destinazione Google Cloud .trust-store-user-ext. Contiene tutte le CA intrust-store-root-ext, oltre a tutte le CA che hai aggiunto manualmente. Monta questo bundle in un pod se devi consentire al pod di accedere sia al servizio di destinazione Google Cloud sia a tutte le risorse interne che utilizzano certificati firmati dalle CA che hai aggiunto manualmente.
Utilizza il seguente comando per visualizzare il ConfigMap di destinazione:
kubectl -n default get configmap trust-store-user-root-ext -o yaml
L'output di esempio seguente mostra una risorsa ConfigMap trust-store-user-root-ext tipica:
apiVersion: v1
binaryData:
ca.jks: WW91IGFyZSBhd2Vzb21lIQo=
data:
ca.crt: |-
-----BEGIN CERTIFICATE-----
WW91IGFyZSBncmVhdCEK
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
WW91IGFyZSBmYW50YXN0aWMhCg==
-----END CERTIFICATE-----
kind: ConfigMap
metadata:
labels:
trust.cert-manager.io/bundle: trust-store-user-root-ext
name: trust-store-user-root-ext
namespace: default
Configurare un servizio di cui è stato eseguito il deployment in modo che consideri attendibili i tuoi certificati Google Cloud
Puoi creare un secret TLS nel cluster Distributed Cloud connected e annotarlo con l'annotazione security.private.gdc.goog/bundles=trust-store-user-root-ext nello spazio dei nomi cert-manager-cluster-resources. In questo modo, il servizio di cui è stato eseguito il deployment Google Cloud
considera attendibili i servizi interni di terze parti per facilitare lo scambio di dati tra
loro.
Quando applichi questo secret al cluster, il servizio di cui è stato eseguito il deployment considera attendibile il certificato CA archiviato nel file ca.crt a cui fa riferimento il secret. Google Cloud Ad esempio:
apiVersion: v1
data:
ca.crt: base64EncodedCaCert
tls.crt: base64EncodedCert
tls.key: base64EncodedKey
kind: Secret
metadata:
annotations:
security.private.gdc.goog/bundles: trust-store-user-root-ext
name: my-corporate-cert
namespace: cert-manager-cluster-resources
type: kubernetes.io/tls
Configurare un provider di autenticazione
Puoi configurare un provider di autenticazione per facilitare l'accesso tramite l'interfaccia utente del servizio di cui è stato eseguito il deployment Google Cloud . L'esempio seguente mostra una configurazione per un OpenID Connect provider:
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: "google-oidc"
oidc:
clientID: "my-supersecret-client-id.apps.googleusercontent.com"
clientSecret: "my-supersecret-secret"
issuerURI: "https://accounts.google.com"
scopes: "email"
userClaim: "email"
name: "default"
Per saperne di più, consulta Configurare GKE Identity Service per i singoli cluster.
Utilizzare un servizio di cui è stato eseguito il deployment Google Cloud
Consulta la documentazione del servizio di cui è stato eseguito il deployment Google Cloud per informazioni su come configurarlo in modo che soddisfi i requisiti aziendali.
Rimuovere un servizio di cui è stato eseguito il deployment Google Cloud
Per rimuovere un servizio di cui è stato eseguito il deployment dal cluster Distributed Cloud connected, segui i passaggi descritti nella documentazione del servizio. Google Cloud Se hai completato uno dei passaggi post-deployment facoltativi descritti in questa pagina, esegui anche le seguenti operazioni:
- Disattiva l'inoltro DNS al sottodominio del servizio nel DNS interno.
- Disattiva l'attendibilità per il certificato autofirmato del servizio ovunque sia stata stabilita.