En esta página, se explica cómo crear y administrar cargas de trabajo sin estado en un clúster de Kubernetes aislado de Google Distributed Cloud (GDC). Las cargas de trabajo sin estado te permiten ajustar la escala de la implementación de tu aplicación según las demandas de la carga de trabajo, todo sin tener que administrar el almacenamiento persistente en un clúster de Kubernetes para almacenar datos o el estado de la aplicación. Esta página te ayudará a comenzar a optimizar y ajustar de manera eficiente la disponibilidad de tu aplicación.
Esta página está dirigida a los desarrolladores que forman parte del grupo de operadores de aplicaciones y que son responsables de crear cargas de trabajo de aplicaciones para su organización. Para obtener más información, consulta Audiences for GDC air-gapped documentation.
Antes de comenzar
Para ejecutar comandos en un clúster de Kubernetes, asegúrate de tener los siguientes recursos:
Ubica el nombre del clúster de Kubernetes o pregúntale al administrador de la plataforma cuál es el nombre del clúster.
Accede y genera el archivo kubeconfig para el clúster de Kubernetes si no tienes uno.
Usa la ruta de acceso de kubeconfig del clúster de Kubernetes para reemplazar
KUBERNETES_CLUSTER_KUBECONFIG
en estas instrucciones.
Para obtener los permisos necesarios para crear cargas de trabajo sin estado, pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de espacios de nombres (namespace-admin
) en el espacio de nombres de tu proyecto.
Crear una implementación
Para crear una implementación, escribe un manifiesto de Deployment
y ejecuta kubectl apply
para crear el recurso. Este método también mantiene las actualizaciones realizadas a recursos activos sin transferir los cambios a los archivos de manifiesto.
Para crear un objeto Deployment
a partir de su archivo de manifiesto, ejecuta lo siguiente:
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
Reemplaza lo siguiente:
KUBERNETES_CLUSTER_KUBECONFIG
: Es el archivo kubeconfig del clúster de Kubernetes en el que implementas cargas de trabajo de contenedores.NAMESPACE
: Es el espacio de nombres del proyecto en el que se implementarán las cargas de trabajo de los contenedores.DEPLOYMENT_NAME
: Es el archivo kubeconfig del clúster en el que implementas cargas de trabajo de contenedores.APP_NAME
: Es el nombre de la aplicación que se ejecutará dentro de la implementación.NUMBER_OF_REPLICAS
: Es la cantidad de objetosPod
replicados que administra la implementación.CONTAINER_NAME
: Es el nombre del contenedor.CONTAINER_IMAGE
por el nombre de la imagen de contenedor Debes incluir la ruta de acceso al registro de contenedores y la versión de la imagen, comoREGISTRY_PATH/hello-app:1.0
.
Por ejemplo:
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
Si implementas cargas de trabajo de GPU en tus contenedores, consulta Administra cargas de trabajo de contenedores de GPU para obtener más información.