Introducció

Kubernetes és una plataforma de codi obert per a l'automatització del desplegament, l'escalat i la gestió d'aplicacions en contenidors. En aquest tema, aprendrem a desplegar un clúster de Kubernetes des de zero, utilitzant eines com kubeadm, kubectl i kubelet.

Objectius

  • Entendre els components bàsics d'un clúster de Kubernetes.
  • Instal·lar i configurar les eines necessàries per desplegar un clúster.
  • Desplegar un clúster de Kubernetes utilitzant kubeadm.
  • Verificar el funcionament del clúster i desplegar una aplicació de prova.

Components Bàsics de Kubernetes

Abans de començar amb el desplegament, és important conèixer els components bàsics d'un clúster de Kubernetes:

  • Node: Una màquina (física o virtual) que executa aplicacions en contenidors.
  • Master Node: El node que gestiona el clúster, coordinant totes les activitats.
  • Worker Node: Els nodes que executen les aplicacions en contenidors.
  • Pod: La unitat bàsica de desplegament en Kubernetes, que pot contenir un o més contenidors.
  • Service: Una abstracció que defineix un conjunt lògic de pods i una política per accedir-hi.
  • Namespace: Una manera de dividir els recursos del clúster entre múltiples usuaris.

Requisits Previs

Abans de començar, assegura't de tenir:

  • Accés a almenys dues màquines (físiques o virtuals) amb un sistema operatiu Linux (preferiblement Ubuntu).
  • Accés a Internet per descarregar les eines necessàries.
  • Privilegis d'administrador (root) a les màquines.

Instal·lació de les Eines Necessàries

Pas 1: Actualitzar els Paquets del Sistema

sudo apt-get update
sudo apt-get upgrade -y

Pas 2: Instal·lar Docker

Docker és necessari per executar els contenidors. Instal·lem Docker amb les següents comandes:

sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker

Pas 3: Instal·lar kubeadm, kubelet i kubectl

Kubeadm és una eina que simplifica el procés de desplegament d'un clúster de Kubernetes. Kubelet és l'agent que s'executa en cada node del clúster. Kubectl és l'eina de línia de comandes per interactuar amb el clúster.

sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Desplegament del Clúster

Pas 1: Inicialitzar el Master Node

Executa la següent comanda al node que vols que sigui el Master:

sudo kubeadm init --pod-network-cidr=192.168.0.0/16

Pas 2: Configurar kubectl per l'Usuari

Executa les següents comandes per permetre a l'usuari actual utilitzar kubectl:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Pas 3: Desplegar una Xarxa de Pod

Perquè els pods puguin comunicar-se entre ells, necessitem desplegar una xarxa de pod. Utilitzarem Calico per això:

kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

Pas 4: Afegir Worker Nodes al Clúster

Executa la següent comanda al Master Node per obtenir el token d'unió:

kubeadm token create --print-join-command

Executa la comanda resultant als Worker Nodes per unir-los al clúster.

Verificació del Clúster

Pas 1: Verificar els Nodes

kubectl get nodes

Pas 2: Desplegar una Aplicació de Prova

Desplegarem una aplicació Nginx per verificar que el clúster funciona correctament:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

Pas 3: Verificar l'Estat de l'Aplicació

kubectl get pods
kubectl get services

Accedeix a l'aplicació Nginx utilitzant l'adreça IP del node i el port assignat.

Exercicis Pràctics

  1. Desplegar una Aplicació de Prova: Desplega una aplicació de prova diferent (per exemple, Apache) i exposa-la utilitzant un servei de tipus NodePort.
  2. Escalar l'Aplicació: Escala l'aplicació Nginx a tres rèpliques i verifica que totes les rèpliques estan funcionant correctament.

Solucions

Exercici 1: Desplegar una Aplicació de Prova

kubectl create deployment apache --image=httpd
kubectl expose deployment apache --port=80 --type=NodePort

Exercici 2: Escalar l'Aplicació

kubectl scale deployment nginx --replicas=3
kubectl get pods

Conclusió

En aquesta secció, hem après a desplegar un clúster de Kubernetes des de zero, utilitzant kubeadm, kubectl i kubelet. Hem configurat els nodes, desplegat una xarxa de pod i verificat el funcionament del clúster amb una aplicació de prova. Amb aquests coneixements, estàs preparat per gestionar i desplegar aplicacions en un clúster de Kubernetes.

Domini de Linux: De Principiant a Avançat

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats