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
Pas 2: Instal·lar Docker
Docker és necessari per executar els contenidors. Instal·lem Docker amb les següents comandes:
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:
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ò:
Pas 4: Afegir Worker Nodes al Clúster
Executa la següent comanda al Master Node per obtenir el token d'unió:
Executa la comanda resultant als Worker Nodes per unir-los al clúster.
Verificació del Clúster
Pas 1: Verificar els 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ó
Accedeix a l'aplicació Nginx utilitzant l'adreça IP del node i el port assignat.
Exercicis Pràctics
- Desplegar una Aplicació de Prova: Desplega una aplicació de prova diferent (per exemple, Apache) i exposa-la utilitzant un servei de tipus NodePort.
- 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ó
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
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades de la Línia de Comandes
- Ús de Comodins i Expressions Regulars
- Piping i Redirecció
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting de Shell
- Introducció al Scripting de Shell
- Variables i Tipus de Dades
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- Gestió de Discs
- Gestió de Paquets
- Monitorització del Sistema i Optimització del Rendiment
- Còpia de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxa
- Tallafocs i Seguretat
- SSH i Accés Remot
- Sistemes de Detecció d'Intrusions
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Optimització del Nucli de Linux
- Alta Disponibilitat i Balanceig de Càrrega