Introducció a Kubernetes Engine

Google Kubernetes Engine (GKE) és un servei gestionat de Kubernetes que permet desplegar, gestionar i escalar aplicacions contenidoritzades utilitzant la infraestructura de Google Cloud Platform. Kubernetes és una plataforma de codi obert per a l'automatització del desplegament, l'escalat i les operacions de les aplicacions contenidoritzades.

Objectius d'aprenentatge

En aquest tema, aprendràs:

  • Què és Google Kubernetes Engine (GKE).
  • Com crear i gestionar clústers de Kubernetes a GKE.
  • Com desplegar aplicacions en un clúster de GKE.
  • Com escalar i actualitzar aplicacions en GKE.
  • Bones pràctiques per a la gestió de clústers i aplicacions en GKE.

Què és Google Kubernetes Engine (GKE)?

Google Kubernetes Engine és un servei gestionat que facilita l'ús de Kubernetes per desplegar, gestionar i escalar aplicacions contenidoritzades. GKE proporciona una infraestructura segura i escalable, amb integració nativa amb altres serveis de Google Cloud.

Característiques clau de GKE

  • Gestió Automàtica de Clústers: GKE gestiona automàticament el clúster de Kubernetes, incloent-hi l'actualització i el manteniment dels nodes.
  • Escalabilitat: Permet escalar automàticament les aplicacions i els clústers segons la demanda.
  • Seguretat: Integració amb Google Cloud IAM i altres serveis de seguretat per protegir les aplicacions.
  • Monitoratge i Registre: Integració amb Stackdriver per al monitoratge i registre de les aplicacions.

Crear un Clúster de Kubernetes a GKE

Pas 1: Configurar el teu entorn

Abans de crear un clúster, assegura't de tenir el SDK de Google Cloud instal·lat i configurat al teu entorn local.

# Instal·lar el SDK de Google Cloud
curl https://sdk.cloud.google.com | bash

# Inicialitzar el SDK de Google Cloud
gcloud init

Pas 2: Crear un Clúster

Utilitza la consola de Google Cloud o la línia de comandes per crear un clúster de Kubernetes.

Utilitzant la línia de comandes

# Crear un clúster de Kubernetes
gcloud container clusters create my-cluster --zone us-central1-a

Utilitzant la consola de Google Cloud

  1. Ves a la consola de Google Cloud.
  2. Navega a "Kubernetes Engine" > "Clústers".
  3. Fes clic a "Crear clúster".
  4. Configura els paràmetres del clúster i fes clic a "Crear".

Pas 3: Configurar kubectl

Després de crear el clúster, configura kubectl per interactuar amb el clúster.

# Obtenir les credencials del clúster
gcloud container clusters get-credentials my-cluster --zone us-central1-a

Desplegar Aplicacions en un Clúster de GKE

Crear un fitxer de desplegament

Crea un fitxer YAML per definir el desplegament de la teva aplicació.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: gcr.io/my-project/my-app:latest
        ports:
        - containerPort: 80

Desplegar l'aplicació

Utilitza kubectl per desplegar l'aplicació al clúster.

# Desplegar l'aplicació
kubectl apply -f deployment.yaml

Exposar l'aplicació

Exposa l'aplicació per accedir-hi des de fora del clúster.

# Crear un servei per exposar l'aplicació
kubectl expose deployment my-app --type=LoadBalancer --port 80 --target-port 80

Escalar i Actualitzar Aplicacions en GKE

Escalar l'aplicació

Pots escalar l'aplicació ajustant el nombre de rèpliques.

# Escalar l'aplicació a 5 rèpliques
kubectl scale deployment my-app --replicas=5

Actualitzar l'aplicació

Per actualitzar l'aplicació, modifica la imatge del contenidor al fitxer de desplegament i aplica els canvis.

spec:
  containers:
  - name: my-app
    image: gcr.io/my-project/my-app:v2
# Aplicar els canvis
kubectl apply -f deployment.yaml

Bones Pràctiques per a la Gestió de Clústers i Aplicacions en GKE

  • Utilitza Namespaces: Organitza els recursos en namespaces per a una millor gestió i seguretat.
  • Monitoratge i Registre: Utilitza Stackdriver per monitoritzar i registrar les aplicacions.
  • Gestió de Secrets: Utilitza Kubernetes Secrets per gestionar informació sensible.
  • Escalabilitat Automàtica: Configura l'escalabilitat automàtica per gestionar la càrrega de treball de manera eficient.
  • Actualitzacions Ràpides: Implementa estratègies d'actualització com Rolling Updates per minimitzar el temps d'inactivitat.

Exercicis Pràctics

Exercici 1: Crear i Desplegar una Aplicació en GKE

  1. Crea un clúster de Kubernetes a GKE.
  2. Desplega una aplicació contenidoritzada al clúster.
  3. Exposa l'aplicació utilitzant un LoadBalancer.

Exercici 2: Escalar i Actualitzar una Aplicació

  1. Escala l'aplicació desplegada a 5 rèpliques.
  2. Actualitza la imatge del contenidor de l'aplicació a una nova versió.
  3. Verifica que l'actualització s'ha realitzat correctament.

Solucions als Exercicis

Solució a l'Exercici 1

# Crear un clúster de Kubernetes
gcloud container clusters create my-cluster --zone us-central1-a

# Configurar kubectl
gcloud container clusters get-credentials my-cluster --zone us-central1-a

# Crear un fitxer de desplegament (deployment.yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: gcr.io/my-project/my-app:latest
        ports:
        - containerPort: 80

# Desplegar l'aplicació
kubectl apply -f deployment.yaml

# Exposar l'aplicació
kubectl expose deployment my-app --type=LoadBalancer --port 80 --target-port 80

Solució a l'Exercici 2

# Escalar l'aplicació a 5 rèpliques
kubectl scale deployment my-app --replicas=5

# Actualitzar la imatge del contenidor al fitxer de desplegament (deployment.yaml)
spec:
  containers:
  - name: my-app
    image: gcr.io/my-project/my-app:v2

# Aplicar els canvis
kubectl apply -f deployment.yaml

Conclusió

En aquest tema, has après a crear i gestionar clústers de Kubernetes a Google Kubernetes Engine, desplegar aplicacions, escalar-les i actualitzar-les. També has après bones pràctiques per a la gestió de clústers i aplicacions en GKE. Amb aquests coneixements, estàs preparat per gestionar aplicacions contenidoritzades a gran escala utilitzant GKE.

© Copyright 2024. Tots els drets reservats