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:
Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma qual é o nome do cluster.
Inicie sessão e gere o ficheiro kubeconfig para o cluster Kubernetes, se não tiver um.
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 Deployment
manifesto 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 objetosPod
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, comoREGISTRY_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.