bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
introduccio_kubernetes_kind_podman

Introducció al desplegament i escalat de serveis multi-node amb Kind i Podman

En aquesta activitat crearem un centre de dades de Kubernetes simulat amb tres nodes de Podman, dins d'un contenidor LXD. Hi desplegarem un servei web, i l'escalarem dinàmicament per a que sigui capaç de suportar una càrrega de tràfic web simulada.

Requisits previs

Per a dur a terme l'activitat necessitarem:

  • Tenir una instal·lació de l'eina LXD a la nostra màquina.
  • Un compte a Docker.

Creació i configuració del contenidor LXD

  1. Crearem i executarem el contenidor. Farem servir una imatge Ubuntu 24.04.
    lxc launch ubuntu:24.04 asix-k8s-lab -c security.nesting=true -c security.privileged=true

    Els flags security-nesting i security-privileged permeten al contenidor LXD crear contenidors en niu.

  2. Configurem l'usuari per defecte ubuntu, afegint-li una contrasenya. A continuació, iniciem sessió amb aquest usuari.
    lxc shell asix-k8s-lab
    passwd ubuntu
    exit
    lxc exec asix-k8s-lab login
  3. Per a treballar amb Kubernetes farem servir Kind. Actualitzem el sistema i hi instal·lem podman, kubectl i kind.
    sudo apt update && sudo apt upgrade -y
    sudo apt install podman -y
    sudo curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    sudo curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.32.0/kind-linux-amd64
    sudo chmod +x ./kind
    sudo mv ./kind /usr/local/bin/kind

    .

  4. Iniciem sessió a docker.io a podman.
    exit
    lxc config set asix-k8s-lab raw.lxc "lxc.apparmor.profile = unconfined"
    lxc restart asix-k8s-lab
    lxc exec asix-k8s-lab login
    
    sudo nano /etc/containers/registries.conf
    /etc/containers/registries.conf
    # Registres que Podman farà servir quan s'aportin noms curts com "nginx"
    unqualified-search-registries = ["docker.io"]
     
    # Comportament amb noms amb ambigüitat.
    short-name-mode = "permissive"
    podman login docker.io
  5. Creem el cluster multi-node amb kind.
    mkdir cluster
    cd cluster
    
    cat <<EOF > kind-config.yaml
    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    nodes:
    - role: control-plane
    - role: worker
    - role: worker
    EOF
    
    sudo mkdir -p /dev/mapper
    
    export KIND_EXPERIMENTAL_PROVIDER=podman
    kind create cluster --config kind-config.yaml --name asix-cluster
  6. Verifiquem que el cluster ha estat creat correctament i el visualitzem a podman.
    podman ps

    Podem veure com kind ha creat un controlador i dos treballadors. Visualitzem-ho també des de kubernetes:

    kubectl get nodes

Desplegament d'un servei web al nostre cluster

Ara utilitzarem comandes de kubernetes per a desplegar un manifest d'infraestructura.

# Escrivim un manifest de desplegament configurant una rèplica de Nginx
cat <<EOF > nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: asix-web-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: nginx
        image: docker.io/library/nginx:latest
        ports:
        - containerPort: 80
EOF

# Li diem al cluster que implementi el fitxer d'arquitectura
kubectl apply -f nginx-deployment.yaml

Fixeu-vos en que hem utilitzat una imatge de docker.io de Nginx per a fer el nostre desplegament. Aquesta és la gran avantatge d'utilitzar contenidors. Comprovem que la comanda ha funcionat:

kubectl get pods -o wide

Escalem el nostre servei web

Imaginem, per exemple, que el servidor web experimenta una quantitat de tràfic enorme perquè s'hi ha publicat una pàgina nova extremadament popular. Un sol pod no dona a l'abast. Enlloc d'haver d'iniciar una màquina virtual sencera o una màquina física, i desplegar còpies del web per a alleugerir el tràfic, podem escalar la infraestructura de contenidors instantàniament. Executem:

kubectl scale deployment asix-web-server --replicas=5

kubectl get pods -o wide

Com podeu veure, hem escalat el sistema a un total de cinc instàncies del servei web de forma instantània, aconseguint d'aquesta manera alleugerir la càrrega entre els cinc serveis. Fixeu-vos en la columna NODE: kubernetes automàticament equilibra la càrrega dels cinc pods entre els treballadors per a optimitzar el rendiment del sistema i assegurar alta disponibilitat. Si un node s'apaga o perd la connexió, el cluster transferirà la càrrega als treballadors que segueixin en línia.

Eliminació dels nodes

Per acabar, eliminarem els nodes que hem creat a aquesta activitat:

kind delete cluster --name asix-cluster
introduccio_kubernetes_kind_podman.txt · Darrera modificació: 2026/06/07 12:21 per david_garcia