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.
- 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.
- 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.
- 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.
- 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
- 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
- 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
- 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.
- 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.
- 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
- 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
- Què és Kubernetes?
- Arquitectura de Kubernetes
- Conceptes i Terminologia Clau
- Configuració d'un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
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
- Monitorització amb Prometheus
- Registre amb Elasticsearch, Fluentd i Kibana (EFK)
- Controls de Salut i Probes
- Servidor de Mètriques
Mòdul 8: Seguretat en Kubernetes
- Control d'Accés Basat en Rols (RBAC)
- Polítiques de Seguretat de Pods
- Seguretat de Xarxa
- Seguretat d'Imatges
Mòdul 9: Escalabilitat i Rendiment
- Autoscalat Horitzontal de Pods
- Autoscalat Vertical de Pods
- Autoscalat de Clúster
- Optimització del Rendiment
Mòdul 10: Ecosistema i Eines de Kubernetes
Mòdul 11: Estudis de Cas i Aplicacions del Món Real
- Desplegament d'una Aplicació Web
- CI/CD amb Kubernetes
- Execució d'Aplicacions Stateful
- Gestió Multi-Clúster