Pode encriptar os dados de carga de trabalho da GPU em utilização executando as cargas de trabalho em nós do Google Kubernetes Engine confidenciais encriptados. Esta página mostra aos engenheiros de segurança e aos operadores como melhorar a segurança dos dados em cargas de trabalho aceleradas, como tarefas de IA/ML. Deve conhecer os seguintes conceitos:
Acerca da execução de cargas de trabalho de GPU em Confidential GKE Nodes
Pode pedir Confidential GKE Nodes para as suas cargas de trabalho de GPU através de um dos seguintes métodos:
- Aprovisione automaticamente Confidential GKE Nodes para as suas cargas de trabalho de GPU usando as ComputeClasses do GKE. Pode usar este método em clusters do Autopilot e em clusters padrão. Para mais informações, consulte a secção Use ComputeClasses to run GPU workloads on Confidential GKE Nodes (Use ComputeClasses para executar cargas de trabalho de GPU em nós do GKE confidenciais).
- Configure manualmente os nós GKE confidenciais para os seus clusters ou conjuntos de nós Standard. Para mais informações, consulte a secção Configure manualmente nós confidenciais do GKE no GKE Standard.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Requisitos e limitações
Independentemente do método de configuração dos Confidential GKE Nodes que escolher, tem de cumprir todos os seguintes requisitos:
- Os nós têm de estar numa zona que suporte a computação confidencial da NVIDIA. Para mais informações, consulte o artigo Veja as zonas suportadas.
- Os nós têm de usar apenas uma GPU NVIDIA H100 de 80 GB e o
a3-highgpu-1g
tipo de máquina. - Os nós têm de usar a tecnologia de computação confidencial Intel TDX.
- Tem de ter quota para GPUs H100 de 80 GB preemptíveis (
compute.googleapis.com/preemptible_nvidia_h100_gpus
) nas localizações dos nós. Para mais informações sobre a gestão da sua quota, consulte o artigo Veja e faça a gestão das quotas.
Além destes requisitos, tem de cumprir condições específicas consoante o método de configuração dos nós GKE confidenciais que escolher, conforme descrito na tabela seguinte:
Método de configuração | Requisitos | Limitações |
---|---|---|
ComputeClasses |
|
|
Configuração manual no modo padrão |
|
|
Funções necessárias
Para receber as autorizações de que precisa para criar nós do GKE confidenciais, peça ao seu administrador para lhe conceder as seguintes funções de IAM no Google Cloud projeto:
-
Crie nós do GKE confidenciais:
Administrador do cluster do Kubernetes Engine (
roles/container.clusterAdmin
) -
Implemente cargas de trabalho de GPU:
Kubernetes Engine Developer (
roles/container.developer
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Use ComputeClasses para executar cargas de trabalho de GPU confidenciais
Pode definir a configuração dos Confidential GKE Nodes numa ComputeClass. As ComputeClasses são recursos personalizados do Kubernetes que lhe permitem definir declarativamente as configurações dos nós para a escala automática e o agendamento do GKE. Pode seguir os passos nesta secção em qualquer cluster do Autopilot ou Standard que execute a versão 1.33.3-gke.1392000 ou posterior do GKE.
Para usar uma ComputeClass para executar cargas de trabalho de GPU em nós do GKE confidenciais, siga estes passos:
Guarde o seguinte manifesto ComputeClass como um ficheiro YAML:
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTECLASS_NAME spec: nodePoolConfig: confidentialNodeType: TDX priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - gpu: type: nvidia-h100-80gb count: 1 driverVersion: default spot: true activeMigration: optimizeRulePriority: true nodePoolAutoCreation: enabled: true whenUnsatisfiable: DoNotScaleUp
Substitua o seguinte:
COMPUTECLASS_NAME
: um nome para o ComputeClass.ZONE1,ZONE2
: uma lista separada por vírgulas de zonas para criar nós, como['us-central1-a','us-central1-b']
. Especifique zonas que suportam a tecnologia de computação confidencial Intel TDX. Para mais informações, consulte o artigo Veja as zonas suportadas.
Crie a ComputeClass:
kubectl apply -f PATH_TO_MANIFEST
Substitua
PATH_TO_MANIFEST
pelo caminho para o ficheiro de manifesto ComputeClass.Para executar a sua carga de trabalho de GPU em nós do GKE confidenciais, selecione a ComputeClass no manifesto da carga de trabalho. Por exemplo, guarde o seguinte manifesto de implementação, que seleciona uma ComputeClass e GPUs, como um ficheiro YAML:
apiVersion: apps/v1 kind: Deployment metadata: name: confidential-gpu-deployment labels: app: conf-gpu spec: selector: matchLabels: app: conf-gpu replicas: 1 template: metadata: labels: app: conf-gpu spec: nodeSelector: cloud.google.com/compute-class: COMPUTECLASS_NAME containers: - name: example-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: limits: cpu: "4" memory: "16Gi" nvidia.com/gpu: 1 requests: cpu: "4" memory: "16Gi"
Substitua
COMPUTECLASS_NAME
pelo nome da ComputeClass que criou.Crie a implementação:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Substitua
PATH_TO_DEPLOYMENT_MANIFEST
pelo caminho para o manifesto de implementação.
Quando cria a sua carga de trabalho de GPU, o GKE usa a configuração na ComputeClass para criar nós do GKE confidenciais com GPUs anexadas.
Configure manualmente nós do GKE confidenciais no GKE Standard
Pode executar cargas de trabalho de GPU em nós do GKE confidenciais em clusters ou conjuntos de nós no modo padrão. Para cargas de trabalho de GPU, os nós do GKE confidenciais têm de usar a tecnologia de computação confidencial Intel TDX.
Ative os nós do GKE confidenciais em novos clusters padrão
Pode ativar os nós do GKE confidenciais para todo o cluster padrão, para que cada conjunto de nós de GPU que criar use a mesma tecnologia de computação confidencial. Quando cria um novo cluster no modo padrão que usa nós do GKE confidenciais para cargas de trabalho de GPU, certifique-se de que especifica as seguintes definições do cluster:
- Localização: uma região ou uma zona que suporta a computação confidencial da NVIDIA. Para mais informações, consulte o artigo Veja as zonas suportadas.
- Tipo de computação confidencial: Intel TDX
Versão do cluster: uma das seguintes versões, consoante a forma como quer instalar os controladores da GPU:
- Instalação manual do controlador da GPU: 1.32.2-gke.1297000 ou posterior.
- Instalação automática de controladores de GPU: 1.33.3-gke.1392000 ou posterior.
Opcionalmente, pode configurar GPUs para o conjunto de nós predefinido que o GKE cria no seu cluster. No entanto, recomendamos que use um conjunto de nós separado para as GPUs, para que, pelo menos, um conjunto de nós no cluster possa executar qualquer carga de trabalho.
Para mais informações, consulte o artigo Ative os nós confidenciais do GKE em clusters padrão.
Use nós do GKE confidenciais com GPUs em node pools padrão
Se o seu cluster não tiver os nós GKE confidenciais ativados, pode ativar os nós GKE confidenciais em pools de nós GPU novos ou existentes específicos. O plano de controlo e os conjuntos de nós têm de cumprir os requisitos na secção Disponibilidade. Quando configura o conjunto de nós, pode optar por instalar os controladores de GPU automaticamente ou manualmente.
Para criar um novo conjunto de nós de GPU que use nós do GKE confidenciais, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Clusters do Kubernetes:
Clique no nome do cluster do modo padrão a modificar.
Clique em
Adicionar conjunto de nós. É apresentada a página Adicionar um node pool.No painel Detalhes do conjunto de nós, faça o seguinte:
- Selecione Especificar localizações de nós.
- Selecione apenas as zonas suportadas que estão listadas na secção Disponibilidade.
- Certifique-se de que a versão do plano de controlo é uma das versões indicadas na secção Disponibilidade.
No menu de navegação, clique em Nodes.
No painel Configurar definições do nó, faça o seguinte:
- Na secção Configuração da máquina, clique em GPUs.
- No menu Tipo de GPU, selecione NVIDIA H100 80 GB.
- No menu Número de GPUs, selecione 1.
- Certifique-se de que a opção Ativar partilha de GPU não está selecionada.
Na secção Instalação do controlador da GPU, selecione uma das seguintes opções:
Gerido pela Google: o GKE instala automaticamente um controlador. Se selecionar esta opção, na lista pendente Versão, selecione uma das seguintes versões do controlador:
- Predefinição: instale a versão do controlador predefinida para a versão do GKE do nó. Requer a versão 1.33.3-gke.1392000 ou posterior do GKE.
- Mais recente: instale a versão mais recente do controlador para a versão do GKE do nó. Requer a versão 1.33.3-gke.1392000 ou posterior do GKE.
Gerido pelo utilizador: ignore a instalação automática de controladores. Se selecionar esta opção, tem de instalar manualmente um controlador de GPU compatível. Requer a versão 1.32.2-gke.1297000 ou posterior.
Na secção Tipo de máquina, certifique-se de que o tipo de máquina é
a3-highgpu-1g
.Selecione Ativar nós em VMs de capacidade instantânea ou configure o início flexível com aprovisionamento em fila.
Quando tiver tudo a postos para criar o node pool, clique em Criar.
gcloud
Pode criar pools de nós de GPU que executam nós do GKE confidenciais em VMs Spot ou usando o início flexível com aprovisionamento em fila.
Crie um node pool de GPU que execute Confidential GKE Nodes em VMs Spot:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --confidential-node-type=tdx --location=LOCATION \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --spot --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=DRIVER_VERSION \ --machine-type=a3-highgpu-1g
Substitua o seguinte:
NODE_POOL_NAME
: um nome para o novo node pool.CLUSTER_NAME
: o nome do cluster existente.LOCATION
: a localização do novo node pool. A localização tem de suportar a utilização de GPUs em Confidential GKE Nodes.NODE_LOCATION1,NODE_LOCATION2,...
: uma lista separada por vírgulas de zonas onde executar os nós. Estas zonas têm de suportar a utilização da computação confidencial da NVIDIA. Para mais informações, consulte o artigo Veja as zonas suportadas.DRIVER_VERSION
: a versão do controlador da GPU a instalar. Especifique um dos seguintes valores:default
: instale a versão do controlador predefinida para a versão do GKE do nó. Requer a versão 1.33.3-gke.1392000 ou posterior do GKE.latest
: instale a versão mais recente do controlador para a versão do GKE do nó. Requer a versão 1.33.3-gke.1392000 ou posterior do GKE.disabled
: ignorar a instalação automática de controladores. Se especificar este valor, tem de instalar manualmente um controlador de GPU compatível. Requer a versão 1.32.2-gke.1297000 ou posterior.
Crie um node pool de GPU que execute Confidential GKE Nodes através do início flexível com aprovisionamento em fila:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --machine-type=a3-highgpu-1g --confidential-node-type=tdx \ --location=LOCATION \ --flex-start --enable-queued-provisioning \ --enable-autoscaling --num-nodes=0 --total-max-nodes=TOTAL_MAX_NODES \ --location-policy=ANY --reservation-affinity=none --no-enable-autorepair \ --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=DRIVER_VERSION
Substitua
TOTAL_MAX_NODES
pelo número máximo de nós para o qual o conjunto de nós pode ser dimensionado automaticamente.Para mais informações sobre as opções de configuração no início flexível com aprovisionamento em fila, consulte o artigo Execute uma carga de trabalho em grande escala com início flexível com aprovisionamento em fila.
Para atualizar os node pools existentes para usar a tecnologia de computação confidencial Intel TDX, consulte o artigo Atualize um node pool existente.
Instale manualmente controladores de GPU que suportam Confidential GKE Nodes
Se não ativou a instalação automática de controladores quando criou ou atualizou os seus pools de nós, tem de instalar manualmente um controlador de GPU que suporte nós do GKE confidenciais.
Esta alteração requer a recriação dos nós, o que pode causar interrupções nas cargas de trabalho em execução. Para ver detalhes sobre esta alteração específica, procure a linha correspondente na tabela alterações manuais que recriam os nós através de uma estratégia de atualização de nós sem respeitar as políticas de manutenção. Para saber mais sobre as atualizações de nós, consulte o artigo Planeamento de interrupções de atualizações de nós.
Para ver instruções, consulte o separador "COS" em Instale manualmente os controladores da GPU NVIDIA.
Resolver problemas
Para ver informações de resolução de problemas, consulte o artigo Resolva problemas de GPUs no GKE.
O que se segue?
- Verifique se os seus nós de GPU usam Confidential GKE Nodes
- Implemente uma carga de trabalho nos seus nós de GPU
- Saiba mais sobre os métodos para executar cargas de trabalho em grande escala com GPUs