En aquest tema, explorarem els conceptes i la terminologia clau que necessites conèixer per treballar amb Kubernetes. Aquests conceptes són fonamentals per entendre com funciona Kubernetes i com gestionar aplicacions en un clúster de Kubernetes.

  1. Clúster de Kubernetes

Un clúster de Kubernetes és un conjunt de màquines (nodes) que executen aplicacions contenidoritzades. Un clúster de Kubernetes consta de dos tipus de nodes:

  • Node Mestre (Master Node): Gestiona el clúster i coordina totes les activitats, com ara l'assignació de recursos, la programació de pods i la gestió de l'estat del clúster.
  • Nodes de Treball (Worker Nodes): Executen les aplicacions contenidoritzades. Cada node de treball conté els components necessaris per executar pods.

  1. Node

Un node és una màquina (física o virtual) que forma part del clúster de Kubernetes. Cada node conté els següents components:

  • Kubelet: Agent que s'executa en cada node i garanteix que els contenidors s'executin en un pod.
  • Kube-proxy: Component de xarxa que manté les regles de xarxa en cada node.
  • Container Runtime: Programari que executa els contenidors, com Docker o containerd.

  1. Pod

Un pod és la unitat bàsica de desplegament en Kubernetes. Un pod pot contenir un o més contenidors que comparteixen el mateix espai de xarxa i emmagatzematge. Els pods són efímers i poden ser recreats en qualsevol moment.

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx

  1. ReplicaSet

Un ReplicaSet assegura que un nombre específic de rèpliques d'un pod estiguin executant-se en tot moment. Si un pod falla, el ReplicaSet crearà un nou pod per reemplaçar-lo.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: my-replicaset
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx

  1. Deployment

Un Deployment proporciona actualitzacions declaratives per als pods i ReplicaSets. Permet gestionar el desplegament d'aplicacions, actualitzacions i revertir canvis.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx

  1. Service

Un Service és una abstracció que defineix un conjunt lògic de pods i una política per accedir-hi. Els serveis permeten la comunicació entre diferents components d'una aplicació.

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

  1. Namespace

Un Namespace és una manera de dividir un clúster de Kubernetes en múltiples entorns virtuals. Els namespaces permeten gestionar recursos de manera aïllada i organitzada.

apiVersion: v1
kind: Namespace
metadata:
  name: my-namespace

  1. ConfigMap

Un ConfigMap és un objecte que permet emmagatzemar dades de configuració en format clau-valor. Els ConfigMaps es poden utilitzar per configurar aplicacions sense necessitat de reconstruir les imatges dels contenidors.

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-configmap
data:
  key1: value1
  key2: value2

  1. Secret

Un Secret és similar a un ConfigMap, però s'utilitza per emmagatzemar dades sensibles, com ara contrasenyes, claus d'API i certificats.

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

  1. Ingress

Un Ingress és un objecte que gestiona l'accés extern als serveis en un clúster de Kubernetes, normalment HTTP i HTTPS. L'Ingress proporciona regles de trànsit per dirigir les sol·licituds a diferents serveis.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - host: my-app.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80

Resum

En aquesta secció, hem cobert els conceptes i la terminologia clau de Kubernetes, incloent-hi clústers, nodes, pods, ReplicaSets, Deployments, Services, Namespaces, ConfigMaps, Secrets i Ingress. Aquests conceptes són fonamentals per comprendre com funciona Kubernetes i com gestionar aplicacions en un clúster de Kubernetes. En el proper tema, explorarem com configurar un clúster de Kubernetes.

Curs de Kubernetes

Mòdul 1: Introducció a Kubernetes

Mòdul 2: Components Bàsics de Kubernetes

Mòdul 3: Gestió de Configuració i Secrets

Mòdul 4: Xarxes en Kubernetes

Mòdul 5: Emmagatzematge en Kubernetes

Mòdul 6: Conceptes Avançats de Kubernetes

Mòdul 7: Monitorització i Registre

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats