Crie cargas de trabalho sem estado

Esta página explica como criar e gerir cargas de trabalho sem estado num cluster do Kubernetes isolado do ar do Google Distributed Cloud (GDC). As cargas de trabalho sem estado permitem-lhe dimensionar a implementação da sua aplicação com base nas exigências das cargas de trabalho, tudo sem ter de gerir o armazenamento persistente num cluster do Kubernetes para armazenar dados ou o estado da aplicação. Esta página ajuda a começar para que possa otimizar e ajustar de forma eficiente a disponibilidade da sua aplicação.

Esta página destina-se a programadores no grupo de operadores de aplicações, que são responsáveis por criar cargas de trabalho de aplicações para a respetiva organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Antes de começar

Para executar comandos num cluster do Kubernetes, certifique-se de que tem os seguintes recursos:

  1. Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma qual é o nome do cluster.

  2. Inicie sessão e gere o ficheiro kubeconfig para o cluster Kubernetes, se não tiver um.

  3. Use o caminho kubeconfig do cluster Kubernetes para substituir KUBERNETES_CLUSTER_KUBECONFIG nestas instruções.

Para receber as autorizações necessárias para criar cargas de trabalho sem estado, peça ao administrador de IAM da organização que lhe conceda a função de administrador do espaço de nomes (namespace-admin) no espaço de nomes do projeto.

Cria uma implementação.

Crie uma implementação escrevendo um Deploymentmanifesto e executando kubectl apply para criar o recurso. Este método também retém as atualizações feitas aos recursos ativos sem unir as alterações novamente nos ficheiros de manifesto.

Para criar um Deployment a partir do respetivo ficheiro de manifesto, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: DEPLOYMENT_NAME
spec:
  replicas: NUMBER_OF_REPLICAS
  selector:
    matchLabels:
      run: APP_NAME
  template:
    metadata:
      labels: # The labels given to each pod in the deployment, which are used
              # to manage all pods in the deployment.
        run: APP_NAME
    spec: # The pod specification, which defines how each pod runs in the deployment.
      containers:
      - name: CONTAINER_NAME
        image: CONTAINER_IMAGE
EOF

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster do Kubernetes no qual está a implementar cargas de trabalho de contentores.

  • NAMESPACE: o espaço de nomes do projeto no qual implementar as cargas de trabalho do contentor.

  • DEPLOYMENT_NAME: o ficheiro kubeconfig para o cluster no qual está a implementar cargas de trabalho de contentores.

  • APP_NAME: o nome da aplicação a executar na implementação.

  • NUMBER_OF_REPLICAS: o número de objetos Pod replicados que a implementação gere.

  • CONTAINER_NAME: o nome do contentor.

  • CONTAINER_IMAGE: o nome da imagem do contentor. Tem de incluir o caminho do registo de contentores e a versão da imagem, como REGISTRY_PATH/hello-app:1.0.

Por exemplo:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      run: my-app
  template:
    metadata:
      labels:
        run: my-app
    spec:
      containers:
      - name: hello-app
        image: REGISTRY_PATH/hello-app:1.0

Se estiver a implementar cargas de trabalho de GPU nos seus contentores, consulte o artigo Gerir cargas de trabalho de contentores de GPU para mais informações.