Nesta página, explicamos como criar e gerenciar cargas de trabalho sem estado em um cluster do Kubernetes isolado do Google Distributed Cloud (GDC). Com as cargas de trabalho sem estado, é possível escalonar a implantação de aplicativos com base nas demandas de carga de trabalho, tudo sem precisar gerenciar o armazenamento permanente em um cluster do Kubernetes para armazenar dados ou estado do aplicativo. Esta página ajuda você a começar a otimizar e ajustar a disponibilidade do aplicativo de maneira eficiente.
Esta página é destinada a desenvolvedores do grupo de operadores de aplicativos, que são responsáveis por criar cargas de trabalho de aplicativos para a organização. Para mais informações, consulte Públicos-alvo para documentação isolada do GDC.
Antes de começar
Para executar comandos em um cluster do Kubernetes, verifique se você tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma.
Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.
Use o caminho kubeconfig do cluster do Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIG
nestas instruções.
Para receber as permissões necessárias para criar cargas de trabalho sem estado, peça ao administrador do IAM da organização para conceder a você a função de administrador do namespace (namespace-admin
) no namespace do projeto.
Criar uma implantação
Para criar uma implantação, escreva um manifesto Deployment
e execute
kubectl apply
para criar o recurso. Esse método também mantém atualizações feitas em
recursos ativos sem mesclar as mudanças novamente nos arquivos de manifesto.
Para criar uma Deployment
com base no arquivo de manifesto, execute:
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:
KUBERNETES_CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster do Kubernetes em que você está implantando cargas de trabalho de contêiner.NAMESPACE
: o namespace do projeto em que as cargas de trabalho de contêiner serão implantadas.DEPLOYMENT_NAME
: o arquivo kubeconfig do cluster em que você está implantando cargas de trabalho de contêiner.APP_NAME
: o nome do aplicativo a ser executado na implantação.NUMBER_OF_REPLICAS
: o número de objetosPod
replicados que a implantação gerencia.CONTAINER_NAME
: o nome do contêiner.CONTAINER_IMAGE
: o nome da imagem do contêiner. Inclua o caminho do registro de contêiner e a versão da imagem, comoREGISTRY_PATH/hello-app:1.0
.
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 você estiver implantando cargas de trabalho de GPU nos contêineres, consulte Gerenciar cargas de trabalho de contêiner de GPU para mais informações.