Que fait gke-basics ?
Planifiez, créez et configurez des clusters Google Kubernetes Engine (GKE) prêts pour la production en utilisant la configuration Autopilot de la voie dorée. Couvre la liste de contrôle du jour 0, Autopilot vs Standard, le réseau (clusters privés, VPC natif, API Gateway), la sécurité (Workload Identity, Secret Manager, renforcement RBAC), l'observabilité, la mise à l'échelle, l'optimisation des coûts et l'inférence IA/ML. UTILISER QUAND : créer un cluster GKE, provisionner un environnement GKE, concevoir le réseau GKE, sécuriser GKE, optimiser les coûts GKE, mise à l'échelle automatique GKE, inférence GKE, mise à niveau GKE, observabilité GKE, multi-location GKE, batch GKE, HPC GKE, classe de calcul GKE.
Pour commencer
Ce skill vous guide à travers le processus de planification et de création d'un cluster GKE prêt pour la production. Avant de commencer, assurez-vous d'avoir :
- Un projet Google Cloud Platform (GCP) avec la facturation activée
- Les API Kubernetes Engine et Cloud Resource Manager activées
gcloudCLI installé et configuré- Les autorisations IAM nécessaires :
roles/container.adminetroles/iam.serviceAccountAdmin
Liste de contrôle du jour 0
- Déterminer le mode de fonctionnement : Autopilot ou Standard
- Choisir une région et une zone de disponibilité
- Planifier l'adressage IP du cluster (plages de pods, de services et de nœuds)
- Activer les fonctionnalités réseau : VPC natif, cluster privé, maillage de services
- Configurer l'authentification et l'autorisation : Workload Identity, RBAC
- Intégrer Secret Manager pour la gestion des secrets
- Activer la surveillance et la journalisation : Cloud Monitoring, Cloud Logging
- Configurer la mise à l'échelle automatique : Cluster Autoscaler, Vertical Pod Autoscaler, Horizontal Pod Autoscaler
- Mettre en place des budgets et des alertes de coûts
- Définir la stratégie de mise à niveau
Autopilot vs Standard
Autopilot
- Gestion entièrement gérée du plan de contrôle et des nœuds
- Optimisation automatique des ressources
- Modèle de facturation basé sur les ressources consommées (CPU, mémoire, éphémère)
- Idéal pour les charges de travail conteneurisées standard
Standard
- Contrôle total sur la configuration des nœuds (images, disques, métriques)
- Possibilité d'utiliser des pools de nœuds personnalisés
- Facturation basée sur les nœuds (vCPU, mémoire) plus les frais de gestion du plan de contrôle
- Adapté aux charges de travail nécessitant un matériel spécifique (GPU, TPU, nœuds à haute mémoire)
Configuration réseau
Cluster privé
# Exemple de configuration pour un cluster privé
privateClusterConfig:
enablePrivateNodes: true
enablePrivateEndpoint: false
masterIpv4CidrBlock: "10.0.0.0/28"
VPC natif (alias IP)
gcloud container clusters create CLUSTER_NAME \
--network NETWORK_NAME \
--subnetwork SUBNET_NAME \
--enable-ip-alias \
--cluster-secondary-range-name POD_RANGE \
--services-secondary-range-name SERVICE_RANGE
API Gateway
Activer l'API Gateway pour la gestion du trafic entrant et sortant :
gcloud services enable gateway.googleapis.com
gcloud container clusters update CLUSTER_NAME \
--gateway-api=standard
Sécurité
Workload Identity
Permet aux conteneurs d'utiliser des comptes de service GCP sans secrets :
gcloud container clusters create CLUSTER_NAME \
--workload-pool=PROJECT_ID.svc.id.goog
Gestion des secrets avec Secret Manager
# Exemple de déploiement avec montage de secrets
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: my-app
image: gcr.io/my-project/my-app
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: my-secret
key: password
Renforcement RBAC
# Exemple de rôle RBAC minimaliste
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
Observabilité
- Activer Cloud Monitoring pour la collecte des métriques
- Configurer Cloud Logging pour les journaux d'audit et d'application
- Utiliser Managed Service pour Prometheus pour les métriques personnalisées
- Configurer les alertes : Seuils de CPU/mémoire, déploiements échoués, nœuds indisponibles
Mise à l'échelle
Cluster Autoscaler
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--min-nodes 3 \
--max-nodes 10
Vertical Pod Autoscaler
# Exemple de VPA en mode recommend
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: my-app-vpa
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
updatePolicy:
updateMode: "Auto"
Horizontal Pod Autoscaler
# Exemple de HPA basé sur l'utilisation CPU
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
Optimisation des coûts
- Utiliser des réservations de capacité (committed use discounts) pour les charges de travail prévisibles
- Configurer des budgets et des alertes dans Cloud Billing
- Activer l'arrêt automatique des nœuds inactifs avec Cluster Autoscaler
- Utiliser des classes de calcul pour les charges de travail à courte durée de vie
- Éviter le gaspillage de ressources en utilisant des limites de conteneurs précises
Inférence IA/ML
Pour les charges de travail d'inférence IA/ML sur GKE :
- Utiliser des nœuds GPU (A100, T4, etc.) avec des drivers NVIDIA
- Déployer des modèles avec Triton Inference Server ou TensorFlow Serving
- Activer le scaling automatique basé sur la latence et le débit
- Utiliser des services de cache pour les modèles fréquemment utilisés
- Configurer des stratégies de mise en cache des résultats
Ressources supplémentaires
- Documentation GKE officielle
- Guide de planification réseau GKE
- Bonnes pratiques de sécurité GKE
- Stratégies d'optimisation des coûts GKE
Ce skill est maintenu par la communauté. Pour les problèmes ou les suggestions, veuillez ouvrir un ticket dans le référentiel GitHub.