Crie um cluster e uma carga de trabalho do Google Kubernetes Engine (GKE) de alta segurança otimizados para produção. Este guia descreve os seguintes modelos, que podem ser usados para implantar um aplicativo da Web de produção:
Modelo de cluster do GKE de produção de nível empresarial: crie a infraestrutura básica necessária para um aplicativo de produção. Esse modelo configura um cluster do GKE particular e seguro otimizado para integridade, rede avançada e recuperação de desastres.
Carga de trabalho do GKE de produção de nível empresarial (prévia): implante um gráfico do Helm que inclua a configuração de um aplicativo da Web sem estado de alta disponibilidade. A carga de trabalho é configurada para melhorar a segurança, a confiabilidade e a continuidade do serviço.
Por exemplo, é possível implantar os modelos de cluster e carga de trabalho para atender às seguintes necessidades comerciais:
| Exemplo | Necessidade comercial | Implementação |
|---|---|---|
| Plataforma de negociação global | Uma instituição financeira exige uma plataforma de negociação distribuída globalmente e de baixa latência com tempo de atividade máximo, segurança rigorosa e conformidade auditável para lidar com negociações de alta frequência. | Use clusters multirregionais distribuídos globalmente com rede avançada para garantir latência ultrabaixa e resiliência. Implemente políticas de rede fortes, configurações de cluster particular e recursos de segurança avançados para proteção de dados e conformidade regulatória. |
| Plataforma SaaS multilocatária | Um provedor de software como serviço (SaaS) precisa hospedar uma plataforma altamente escalonável, segura e otimizada para custos para milhares de clientes corporativos, exigindo isolamento rigoroso de locatários, alocação dinâmica de recursos e entrega contínua de novos recursos sem tempo de inatividade. | Use clusters multilocatários com isolamento robusto de namespace, segmentação de rede e gerenciamento de cotas para garantir o compartilhamento justo de recursos e a segurança entre locatários. |
| Inferência em tempo real para operações críticas | Uma organização precisa implantar modelos de IA/ML para inferência em tempo real em aplicativos de detecção de fraudes essenciais, exigindo latência extremamente baixa, alta capacidade de processamento e a capacidade de se adaptar rapidamente a novas versões de modelos com capacidade de auditoria completa. | Configure clusters com pools de nós especializados para inferência de IA. Garanta a conectividade de rede de baixa latência e ative o roteamento de tráfego eficiente para endpoints de inferência. |
Arquitetura
A imagem a seguir mostra os componentes e as conexões no modelo:
A seguir, descrevemos as configurações de componentes neste modelo:
Cluster do GKE Standard: um cluster em que a carga de trabalho é executada.
A tabela a seguir descreve a configuração do cluster neste modelo:
Configuração Finalidade location: us-central1Garante a localidade e a conformidade dos dados dentro de um limite geográfico. Uma configuração multizonal na região oferece alta disponibilidade. network: projects/PROJECT_ID/global/networks/enterprise-vpcEspecifica uma VPC pré-existente que normalmente é projetada para segmentação e conectividade de rede. subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnetEspecifica uma sub-rede para o cluster na VPC que normalmente é projetada com alocação de IP e isolamento de rede adequados. master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}]Restringe o acesso ao endpoint do plano de controle a blocos CIDR de IP específicos e confiáveis. Isso impede o acesso não autorizado às APIs de gerenciamento de clusters. private_cluster_config.enable_private_endpoint: trueGarante que o plano de controle só possa ser acessado usando endereços IP internos na VPC ou em redes autorizadas. Isso melhora a segurança removendo a exposição pública. private_cluster_config.enable_private_nodes: trueGarante que todos os nós de trabalho tenham apenas endereços IP particulares, isolando-os da Internet pública e reduzindo a superfície de ataque. release_channel: STABLEAtualizações previsíveis e totalmente testadas mantêm a estabilidade em um ambiente de produção. network_policy.enabled: trueAtiva a política de rede do Kubernetes, que fornece controle sobre a comunicação entre pods para maior segurança e microsegmentação. binary_authorization: trueAplica políticas de implantação, garantindo que apenas imagens de contêineres confiáveis e assinadas possam ser executadas no cluster. database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"}As chaves de criptografia gerenciadas pelo cliente (CMEK) criptografam o banco de dados, fornecendo segurança de dados e atendendo aos requisitos de conformidade. workload_identity_config: {"enabled": true}Permite que as contas de serviço do Kubernetes atuem como Google Cloud contas de serviço, permitindo acesso seguro e refinado aos recursos usando o IAM. logging_configemonitoring_configestão definidos como{"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}}Integra-se ao Cloud Logging e ao Cloud Monitoring, garantindo observabilidade, auditoria e alertas abrangentes para cargas de trabalho de produção. maintenance_policy: {"daily_maintenance_window": {"start_time": "03:00"}, "recurring_window": {"start_time": "00:00", "end_time": "04:00", "recurrence": "FREQ=WEEKLY;BYDAY=SAT,SUN"}}As janelas de manutenção controlam quando o GKE realiza upgrades automáticos, minimizando a interrupção de aplicativos críticos. enable_shielded_nodes: trueOs nós protegidos do GKE oferecem recursos de segurança, como inicialização segura e monitoramento de integridade, para proteger contra rootkits e malware no nível de inicialização. gateway_api_config: {"channel": "CHANNEL_STANDARD"}Gerenciamento avançado de tráfego para roteamento complexo, balanceamento de carga e gerenciamento de APIs em aplicativos empresariais. security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"}Gerenciamento avançado da postura de segurança, incluindo verificação de vulnerabilidades e aplicação de políticas. Pool de nós do GKE: um grupo de nós de trabalho que executam os contêineres do aplicativo.
A tabela a seguir descreve as configurações do pool de nós neste modelo:
Configuração Finalidade location: us-central1.Especifica a região em que esse pool de nós é criado. Semelhante ao local do cluster, isso garante que os recursos do pool de nós estejam em uma única área geográfica. autoscaling: {"max_node_count":3, "min_node_count":1}.Configura o escalonador automático de clusters para esse pool de nós. Garante que o pool de nós sempre mantenha pelo menos um nó e define o limite superior para três nós para controlar custos e consumo de recursos. node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}.Agrupa configurações para os nós nesse pool. O tipo de máquina é um equilíbrio de CPU e memória adequado para cargas de trabalho de uso geral. Define o acesso concedido à conta de serviço. Ativa a inicialização segura para as instâncias de VM protegida, ajudando a proteger contra malware no nível de inicialização.
Configuração do gráfico do Helm
A tabela a seguir lista as configurações do gráfico do Helm, que foram personalizadas para implantar e escalonar um aplicativo da Web básico no GKE.
| Configuração | Finalidade |
|---|---|
replicaCount: 3 |
Cria três réplicas iniciais para estabelecer um nível inicial de redundância e alta disponibilidade básica para o aplicativo. |
image.repository: gcr.io/google-samples/hello-app |
Usa uma imagem Docker básica do servidor da Web como um marcador. |
resources.requests: {"cpu": "100m", "memory": "128Mi"} |
Especifica a quantidade mínima de CPU e memória reservada para cada pod, garantindo recursos disponíveis e programação eficiente. |
resources.limits: {"cpu": "250m", "memory": "256Mi"} |
Especifica a quantidade máxima de CPU e memória reservada para cada pod, impedindo a monopolização de recursos por um único pod. |
networkPolicy.enabled: true |
Ativa as políticas de rede do Kubernetes para o aplicativo, que permite definir regras para como os pods se comunicam entre si e com outros endpoints de rede, aplicando segmentação e isolamento de rede. |
service: {"type": "ClusterIP", "port": 80} |
Configura o serviço para acesso interno no cluster na porta HTTP padrão. |
pdb: {"enabled": true, "minAvailable": 1} |
Ativa um orçamento de interrupção de pods para garantir que pelo menos uma réplica permaneça disponível durante interrupções voluntárias, mantendo a alta disponibilidade. |
Criar seu aplicativo da Web
Use os modelos Cluster do GKE e carga de trabalho de produção com padrões empresariais para implantar seu aplicativo da Web.
Implantar sua infraestrutura da Web
Configure e implante o modelo Cluster do GKE de produção de nível empresarial para criar a infraestrutura básica em que a carga de trabalho da Web é executada.
Duplique e implante o modelo Cluster do GKE de produção de nível empresarial como um aplicativo.
Um cluster do GKE é criado no projeto de implantação escolhido.
Configure os componentes. Para ver mais informações, consulte os seguintes tópicos:
Clique em Implantar. O aplicativo é implantado após vários minutos.
No painel Detalhes do aplicativo, clique na guia Saídas.
Identifique o cluster_id do aplicativo. Você vai usar essas informações ao implantar o gráfico do Helm.
Implantar sua carga de trabalho da Web
Use o modelo Carga de trabalho do GKE de produção de nível empresarial para implantar sua carga de trabalho da Web no cluster criado. Você vai implantar um gráfico do Helm que inclui a configuração da carga de trabalho da Web.
Na página Catálogo do Google, no modelo Carga de trabalho do GKE de produção de nível empresarial, clique em Criar novo aplicativo.
No campo Nome, insira um nome exclusivo para o aplicativo.
Na área Destino de implantação do GKE, faça o seguinte:
Na lista de projetos, selecione o projeto em que você implantou o cluster do GKE no aplicativo Cluster do GKE de produção de nível empresarial.
Na lista Região, selecione a região em que você implantou o cluster do GKE.
Na lista Clusters, selecione o cluster do GKE implantado.
Na lista Namespace, insira o namespace da carga de trabalho. Se você não mudou o nome, insira
default.Clique em Criar aplicativo.
O aplicativo é criado e os arquivos de configuração são exibidos.
No painel Gráfico do Helm, faça o seguinte:
Revise os detalhes da configuração.
Opcional: personalize a configuração para atender às suas necessidades exclusivas.
Para implantar o gráfico do Helm no cluster, clique em Implantar.
Para ver as etapas detalhadas, consulte Implantar aplicativos.
Após vários minutos, a configuração do gráfico do Helm será implantada no cluster do GKE.
A seguir
- Duplique e personalize esse modelo criando modelos do Google.
- Defina suas próprias configurações criando modelos de aplicativos.
- Identifique as práticas recomendadas de arquitetura geral com o Google Cloud Framework de arquitetura.