O Distributed Cloud conectado oferece suporte à implantação de vários serviços Google Cloud . Essas cargas de trabalho de serviço são executadas em contêineres do Kubernetes nos clusters do Distributed Cloud conectado.
Serviços com suporte Google Cloud
O Distributed Cloud conectado oferece suporte à implantação dos seguintes Google Cloud serviços:
| Tipo de serviço | Incluído nos custos do GDC conectado | Faturado separadamente |
|---|---|---|
| Computação | Google Distributed Cloud somente de software Ambiente de execução de VM no Google Distributed Cloud |
Sistemas operacionais convidados (é necessário adquirir suas próprias licenças) |
| Armazenamento | Interface de armazenamento em contêineres (CSI, na sigla em inglês) Armazenamento híbrido |
Armazenamento definido por software (SDS, na sigla em inglês), como o Symcloud Storage (é necessário adquirir suas próprias licenças) |
| Rede | API Edge Network Suporte a VLAN Plug-ins de interface de rede personalizada (CNI, na sigla em inglês) do GKE Balanceador de carga L4 agrupado do GKE |
Não relevante |
| IA/ML | Como implantar modelos do AutoML em contêineres | Não relevante |
| Banco de dados | Nenhum | AlloyDB Omni (autogerenciado) (prévia) Soluções de banco de dados de terceiros, como o MongoDB (é necessário adquirir suas próprias licenças) |
| Observabilidade | Cloud Logging Cloud Monitoring API Cloud Logging Registros e métricas do GDCc Registro da frota Monitoramento da frota |
Prometheus para observabilidade desconectada Registros e métricas personalizados no nível do aplicativo |
| Gerenciamento de configuração | Config Sync (incluindo pacotes de frota) | Não relevante |
| Gerenciamento | Painel do Google Kubernetes Engine no Google Cloud console Gateway de conexão A ferramenta local kubectlUpgrades de software do Distributed Cloud conectado Gerenciamento de equipes e namespaces da frota A CLI gcloud |
Não relevante |
| Segurança | Integração do Cloud Key Management Service Unidades de disco auto-criptografadas (SED, na sigla em inglês) Identidade da carga de trabalho da frota Registro de auditoria |
Não relevante |
Pré-requisitos
Antes de implantar Google Cloud serviços no Distributed Cloud conectado, é necessário concluir os pré-requisitos listados nesta seção.
Receber credenciais do cluster
Use o comando a seguir para receber as credenciais de acesso ao cluster de destino:
gcloud container hub memberships get-credentials CLUSTER_ID \
--project="PROJECT_ID"
Substitua:
CLUSTER_ID: o nome do cluster de destino.PROJECT_ID: o ID do projeto de destino. Google Cloud
Criar ou selecionar um cluster
Se você ainda não fez isso, crie um cluster do Distributed Cloud conectado conforme descrito em Criar um cluster. Ao criar o cluster, especifique pelo menos oito endereços IP virtuais (VIPs). Esses VIPs serão usados pelos contêineres do Kubernetes que executam suas Google Cloud cargas de trabalho de serviço.
Se você estiver usando um cluster atual, use o comando a seguir para verificar se há VIPs suficientes disponíveis nele:
kubectl get cluster --all-namespaces -o jsonpath="{.items[0].spec.loadBalancer.addressPools}"
O comando retorna uma saída semelhante a esta:
[
{
"addresses": [
"10.200.11.188-10.200.11.196"
],
"name": "loadBalancerAddressPool-1"
}
]
Se houver VIPs insuficientes provisionados no cluster, o erro a seguir vai aparecer,
em que n é o número necessário de VIPs e m é o número de VIPs descobertos no
cluster:
Cluster has less than n external IPs, got m.
Se você receber esse erro, exclua e recrie o cluster com um número suficiente de VIPs.
Configurar o subdomínio doserviço Google Cloud
Antes de implantar o primeiro Google Cloud serviço em uma zona do Distributed Cloud conectado, você tem a opção de personalizar o subdomínio em que todos os Google Cloud serviços implantados nessa zona vão detectar conexões. Não é possível modificar esse subdomínio depois de implantar pelo menos um serviço nessa zona do Distributed Cloud.
Use o comando a seguir para conferir a configuração do subdomínio:
kubectl -n dns-system get celldns cell-dns -o yaml
O comando retorna uma saída semelhante a esta:
apiVersion: system.private.gdc.goog/v1alpha1
kind: CellDNS
metadata:
name: cell-dns
namespace: dns-system
spec:
delegatedSubdomain: private.goog
Use o comando a seguir para modificar a configuração do subdomínio:
kubectl -n dns-system edit celldns cell-dns
Implantar um Google Cloud serviço no Distributed Cloud conectado
Para implantar um Google Cloud serviço no cluster do Distributed Cloud conectado, siga as etapas de implantação descritas na documentação desse serviço.
Configurar oserviço implantado Google Cloud
Esta seção descreve as etapas de configuração pós-implantação que você pode concluir com base nos requisitos de negócios.
Encaminhar consultas DNS do DNS interno para o DNS do cluster
Ao implantar um Google Cloud serviço no cluster do Distributed Cloud conectado, um servidor DNS dedicado a esse serviço é implantado no cluster. Recomendamos que você encaminhe consultas DNS para o subdomínio do serviço ao servidor DNS recém-criado no cluster.
Use os comandos a seguir para receber o subdomínio do 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?}"O último comando retorna uma saída semelhante a esta:
my-zone.google.private.googUse o comando a seguir para receber o VIP do servidor DNS no cluster:
DNS_EXT_IP=$(kubectl -n dns-system get service gpc-coredns-external-tcp -o "jsonpath={.status.loadBalancer.ingress[0].ip}")Configure o servidor DNS interno para encaminhar consultas DNS para o serviço implantado Google Cloud ao VIP recebido na etapa anterior. Exemplo:
Para
dnsmasq, adicione o seguinte a/etc/dnsmasq.conf:server=/${CLUSTER_FQDN?}/${DNS_EXT_IP?}Para o CoreDNS, adicione o seguinte ao Corefile:
${CLUSTER_FQDN?}:53 { errors cache 30 forward . ${DNS_EXT_IP?} { max_concurrent 1000 } }
Testar a resolução de DNS
Use o comando dig a seguir para testar a resolução de domínio adequada. Preste atenção especial à ANSWER SECTION:
dig "ais-core.${CLUSTER_FQDN?}"
O comando retorna uma saída semelhante a esta:
...
;; ANSWER SECTION:
ais-core.my-zone.google.private.goog. 300 IN A 10.200.0.0
...
Recuperar o certificado autoassinado para oserviço implantado Google Cloud
Ao implantar um Google Cloud serviço no cluster do Distributed Cloud conectado, o Distributed Cloud conectado emite um certificado autoassinado que é usado para criptografar o tráfego de rede desse serviço. Recomendamos que você recupere esse certificado e configure seu ambiente de negócios para confiar nele.
Para receber esse certificado no formato codificado por PEM, use o comando a seguir:
kubectl get secret -n cert-manager-cluster-resources web-ca-cert -o jsonpath="{.data.ca\.crt}" | base64 -d
O Distributed Cloud conectado gera vários pacotes de confiança em todo o cluster. Esses pacotes de confiança são armazenados como ConfigMaps em todos os namespaces do cluster. São eles:
trust-store-internal-only. Contém autoridades de certificação (ACs) para serviços internos do Distributed Cloud conectado.trust-store-root-ext. Contém todas as ACs notrust-store-root-ext, além da AC que assinou o certificado autoassinado do serviço de destino Google Cloud . Monte esse pacote de confiança em um pod se ele precisar acessar o Google Cloud serviço de destino.trust-store-user-root-ext. Contém todas as ACs notrust-store-root-ext, além de todas as ACs adicionadas manualmente. Monte esse pacote em um pod se ele precisar acessar o serviço de destino e todos os recursos internos que usam certificados assinados pelas ACs adicionadas manualmente. Google Cloud
Use o comando a seguir para conferir o ConfigMap de destino:
kubectl -n default get configmap trust-store-user-root-ext -o yaml
O exemplo de saída a seguir mostra um recurso ConfigMap trust-store-user-root-ext típico:
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
Configurar umserviço implantado para confiar nos seus próprios certificados Google Cloud
É possível criar um secret TLS no cluster do Distributed Cloud conectado e fazer a anotação dele com a anotação security.private.gdc.goog/bundles=trust-store-user-root-ext no namespace cert-manager-cluster-resources. Isso permite que o serviço implantado Google Cloud
confie nos seus serviços internos de terceiros para facilitar a troca de dados entre
eles.
Ao aplicar esse Secret ao cluster, o serviço implantado confia no certificado de CA armazenado no arquivo ca.crt referenciado no Secret. Google Cloud Exemplo:
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
Configurar um provedor de autenticação
É possível configurar um provedor de autenticação para facilitar o login pela interface do usuário do serviço implantado.Google Cloud O exemplo a seguir mostra uma configuração para um OpenID Connect provedor:
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"
Para mais informações, consulte Configurar o Serviço de identidade do GKE para clusters individuais.
Usar umserviço implantado Google Cloud
Consulte a documentação doserviço Google Cloud implantado para saber como configurá-lo para atender aos requisitos de negócios.
Remover umserviço implantado Google Cloud
Para remover umserviço Google Cloud implantado do cluster do Distributed Cloud conectado, siga as etapas na documentação desse serviço. Se você concluiu alguma das etapas opcionais pós-implantação descritas nesta página, faça o seguinte:
- Desative o encaminhamento de DNS para o subdomínio do serviço no DNS interno.
- Desative a confiança no certificado autoassinado do serviço sempre que essa confiança tiver sido estabelecida.