Cette page explique comment créer et gérer des charges de travail sans état dans un cluster Kubernetes Google Distributed Cloud (GDC) isolé. Les charges de travail sans état vous permettent de faire évoluer le déploiement de votre application en fonction des exigences de la charge de travail, sans avoir à gérer le stockage persistant dans un cluster Kubernetes pour stocker les données ou l'état de l'application. Cette page vous aide à vous lancer afin que vous puissiez optimiser et ajuster efficacement la disponibilité de votre application.
Cette page s'adresse aux développeurs du groupe des opérateurs d'applications, qui sont chargés de créer des charges de travail d'application pour leur organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC en mode air-gapped.
Avant de commencer
Pour exécuter des commandes sur un cluster Kubernetes, assurez-vous de disposer des ressources suivantes :
Recherchez le nom du cluster Kubernetes ou demandez-le à votre administrateur de plate-forme.
Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes si vous n'en avez pas.
Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer
KUBERNETES_CLUSTER_KUBECONFIG
dans ces instructions.
Pour obtenir les autorisations requises pour créer des charges de travail sans état, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle d'administrateur de l'espace de noms (namespace-admin
) dans l'espace de noms de votre projet.
Créer un déploiement
Pour créer un déploiement, écrivez un fichier manifeste Deployment
et exécutez kubectl apply
pour créer la ressource. Cette méthode conserve également les mises à jour apportées aux ressources actives sans fusionner les modifications dans les fichiers manifestes.
Pour créer un Deployment
à partir de son fichier manifeste, exécutez la commande suivante :
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
Remplacez les éléments suivants :
KUBERNETES_CLUSTER_KUBECONFIG
: fichier kubeconfig du cluster Kubernetes sur lequel vous déployez des charges de travail de conteneurs.NAMESPACE
: espace de noms du projet dans lequel déployer les charges de travail du conteneur.DEPLOYMENT_NAME
: fichier kubeconfig du cluster sur lequel vous déployez des charges de travail de conteneur.APP_NAME
: nom de l'application à exécuter dans le déploiement.NUMBER_OF_REPLICAS
: nombre d'objetsPod
répliqués gérés par le déploiement.CONTAINER_NAME
: nom du conteneur.CONTAINER_IMAGE
: nom de l'image du conteneur. Vous devez inclure le chemin d'accès au registre de conteneurs et la version de l'image, par exempleREGISTRY_PATH/hello-app:1.0
.
Exemple :
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 vous déployez des charges de travail de GPU dans vos conteneurs, consultez Gérer les charges de travail de conteneurs GPU pour en savoir plus.