Noticias
New Serverspace Centro de datos en Uzbekistán: Tashkent
Serverspace Black Friday
BS
De marzo de 30 2025
Actualizado el 30 de agosto de 2025

Guía paso a paso para implementar y administrar Kubernetes Clusters para principiantes

Kubernetes

El panorama digital moderno se caracteriza por un rápido crecimiento de aplicaciones, servicios y soluciones en la nube, lo que impulsa la necesidad de un uso eficiente de los recursos. Con el aumento de las demandas computacionales y la necesidad de optimización, surgió la demanda de herramientas que permitan:

- El despliegue múltiples aplicaciones en el mismo hardware.
- Gestionando recursos (CPU, RAM, almacenamiento) con gastos generales mínimos.
- Garantizar  Aislamiento y seguridad de las cargas de trabajo.

 

 

El primer paso para abordar estos desafíos fue hipervisores, lo que permitió que se ejecutaran máquinas virtuales aisladas. Sin embargo, con el auge de contenedorizaciónSurgió la necesidad de soluciones más flexibles y ligeras. Por eso Kubernetes fue creado.
Definición

Kubernetes (K8s) es una plataforma de código abierto para orquestar aplicaciones en contenedores. Sus funciones principales incluyen:

- Automatización Implementación, escalado y gestión de aplicaciones.
- Optimización Utilización de recursos del clúster.
- Garantizar Tolerancia a fallos y autocuración.

Originalmente desarrollado por Google basado en su estructura interna. Borg sistema, Kubernetes se convirtió en un Fundación de computación nativa en la nube (CNCF) proyecto en 2014. Hoy en día, es el estándar para la gestión de sistemas distribuidos en entornos híbridos y multicloud.

Por qué Kubernetes ¿En lugar de hipervisores?

A diferencia de los hipervisores, que funcionan con máquinas virtuales, Kubernetes con obras contenedores—Procesos ligeros y de inicio rápido que comparten un núcleo del sistema operativo. Esto proporciona:
- Mayor densidad de carga de trabajo.
- Gastos generales mínimos.
- Portabilidad de aplicaciones entre entornos.

Propósito

KubernetesSu objetivo principal es automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores, incluyendo la autorreparación, el balanceo de carga, la gestión del almacenamiento, la seguridad y la compatibilidad con entornos híbridos. Garantiza la tolerancia a fallos, la optimización de recursos y la gestión unificada de aplicaciones en infraestructuras locales o en la nube.

Kubernetes aborda varios desafíos críticos:

1. Elimina la fragilidad del contenedor Mediante la monitorización y restauración de contenedores fallidos.
2. Automatiza el escalado manual, lo que permite la asignación de recursos sin tiempo de inactividad del servicio.
3. Reduce y automatiza la complejidad de la configuración de la red.
4. Mejora la eficiencia de los recursos, minimizando la capacidad ociosa.

Conceptos básicos

1. Despliegue — Administra el ciclo de vida de los pods: maneja la implementación, el escalamiento y las actualizaciones de las aplicaciones.
2. Vaina — La unidad más pequeña en Kubernetes, ejecutando uno o más contenedores con recursos de red/almacenamiento compartidos.
3. Servicio — Una abstracción que proporciona acceso estable a los pods a través del equilibrio de carga y DNS.
4. ConfigMap y Secret — Almacene configuraciones (ConfigMap) y datos confidenciales (Secret) para uso seguro en aplicaciones.
5. Volumen  — Proporciona almacenamiento persistente para pods y sobrevive a los reinicios.
6. Espacio de nombres — Particiona lógicamente un clúster en entornos aislados (por ejemplo, desarrollo/producción) para el control de acceso y la gestión de recursos.

Arquitectura

Kubernetes La arquitectura se divide en dos partes:

1. Plano de control — Administra el clúster.

 

Architecture of the Kubernetes Control Plane
Imagen 1 - Arquitectura de la Kubernetes Plano de control

2.Nodos trabajadores — Ejecutar cargas de trabajo y tareas.

Components of Kubernetes Worker Nodes
Imagen 2 - Componentes de Kubernetes Nodos trabajadores

Implementación y gestión Kubernetes

Requisitos para Kubernetes Despliegue

Para implementar un sistema completamente funcional Kubernetes clúster, necesitas:

1. Al menos un nodo del plano de control (maestro) y múltiples nodos de trabajo.
2. Único Direcciones IP para cada nodo.
3. Requisitos mínimos de hardware: 2 vCPU núcleos y 2 GB de RAM por nodo.
4. Conectividad de red entre todos los nodos.

La instalación de Kubernetes (k8):

1. Actualizar el sistema e instalar dependencias
Para mitigar vulnerabilidades e instalar paquetes (apt-transporte-httpsgnupg2) requerido para Kubernetes y repositorios CRI-O:

apt-get install -y
apt-transport-https gnupg2

2. Deshabilitar la memoria de intercambio
- Evita conflictos de gestión de memoria en KubernetesEl intercambio puede provocar errores de OOM Killer y reducir el rendimiento.

swapoff -a # Temporarily disable swap
rm /swap.img # Remove swap file
sed -i '/swap/d' /etc/fstab # Comment out swap in /etc/fstab

3. Habilitar módulos del kernel br_netfilter además superpuesto (overlay)
- br_netfilter permite el filtrado de red para complementos CNI.
- superpuesto (overlay) Admite sistemas de archivos superpuestos (necesarios para el almacenamiento de contenedores).

modprobe br_netfilter overlay
echo "br_netfilter" >> /etc/modules
echo "overlay" >> /etc/modules

4. Configurar el reenvío de IP
Permite el enrutamiento del tráfico de red entre pods y nodos.

echo 1 > /proc/sys/net/ipv4/ip_forward

5. Instalar  kubeletkubeadmy el ámbito kubectl
kubelet:Agente para ejecutar Pods en nodos.
kubeadm:Herramienta para inicializar clusters.
kubectl: CLI para la gestión de clústeres.

apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl # Bloquear actualizaciones automáticas

6. Instalar CRI-O (Container Runtime)
Tiempo de ejecución ligero compatible con Kubernetes IRC.

echo "deb https://download.opensuse.org/.../ /" > /etc/apt/sources.list.d/cri-o.list
apt-get update
apt-get install -y cri-o cri-o-runc
systemctl habilitar crio y systemctl iniciar crio

7. Inicialice el clúster con `kubeadm`
Despliega el plano de control (API Servidor, etcd, Programador, Administrador de controladores).

kubeadm init --pod-network-cidr=10.100.0.0/16 # Assign Pod IP range

8. Unirse a un nodo de trabajo
Expande el clúster para ejecutar aplicaciones. Usa el token de inicio de kubeadm salida:

kubeadm join :6443 --token --discovery-token-ca-cert-hash

9. Configure los ajustes del  kubectl Acceda a
Administre el clúster desde su máquina local:

mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config

Gestionando Kubernetes

Nuestras kubectl Comandos

Gestión de Recursos

Estado de visualización:

kubectl get pods # List Pods
kubectl get nodes # List nodes
kubectl get deployments # List Deployments
kubectl describe pod # Show Pod details

Creando/Actualizando:
kubectl apply -fployment.yaml # Implementar desde un manifiesto
kubectl createployment nginx --image=nginx:1.25 # Crear una implementación
Descamación:

kubectl scaleployment/nginx --replicas=5 # Aumentar el número de réplicas

Actualizaciones y reversiones:

kubectl set image deployment/nginx nginx=nginx:1.26 # Update the container image
kubectl rollout undo deployment/nginx # Roll back changes

Eliminacion:

kubectl delete pod kubectl delete -f deployment.yaml # Delete resources defined in a manifest

Depuración

Registros de contenedores:

kubectl logs # Logs of the main container
kubectl logs
-c # Logs of a specific container

Acceder a un contenedor:

kubectl exec -it -- sh

Monitoreo de recursos:

kubectl top nodes # View CPU/RAM usage of nodes
kubectl top pods # View CPU/RAM usage of Pods

Administrar configuraciones y secretos

Mapa de configuración

Se utiliza para almacenar configuraciones (variables de entorno, archivos).

Ejemplo:

apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
app.env: |
LOG_LEVEL=INFO
DB_HOST=postgres

Secreto

Se utiliza para almacenar datos confidenciales (contraseñas, certificados TLS).

- Ejemplo:

apiVersion: v1
kind: Secret
metadata:
name: db-secret
type: Opaque
data:
password: dGVzdC1wYXNzd29yZA== # base64-encoded

Uso en pods

env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: app-config
key: LOG_LEVEL
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password

Administración de almacenamiento

Volúmenes persistentes (PV) y reclamaciones de volúmenes persistentes (PVC)

- PV:Recurso de almacenamiento físico (por ejemplo, disco en la nube).
- PVC:Solicitud para asignar almacenamiento desde un PV.
- Ejemplo de PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

Uso en pods

volumes:
- name: data-storage
persistentVolumeClaim:
claimName: data-pvc
containers:
- name: app
volumeMounts:
- mountPath: "/data"
name: data-storage

Seguridad

RBAC (Control de acceso basado en roles)

Administra los derechos de acceso para usuarios y servicios.

- Ejemplo de rol:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
Políticas de red

Restringe el tráfico de red entre pods.
- Ejemplo:Bloquear todo el tráfico entrante

yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-ingress
spec:
podSelector: {}
policyTypes:
- Ingress

Monitoreo y registro

Accesorios

Prometeo + Grafana:Recopilar métricas (CPU, RAM, tráfico de red).
Pila EFK (Elasticsearch, Fluentd, Kibana):Agregar y analizar registros.
Kubernetes Panel de Control:Interfaz web para la gestión de clústeres.

Configurar el monitoreo

Instalar Prometheus a través de Helm

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/prometheus

Automatización y CI/CD

GitOperaciones con Argo CD

Implementar aplicaciones automáticamente desde un Git repositorio.

Ejemplo:

argocd app create my-app --repo https://github.com/user/repo --path manifests

Integración con Jenkins/GitLab CI

# .gitlab-ci.yml
deploy:
stage: deploy
script:
- kubectl apply -f k8s/
Localización de averías

Comprobar eventos del clúster:

kubectl get events --sort-by=.metadata.creationTimestamp

Comprobar el estado del nodo:

kubectl describe node # View node resources and issues

Diagnóstico de red:

kubectl run -it --rm debug --image=nicolaka/netshoot -- sh # Run a network debug container

Preguntas Frecuentes (FAQ)

  • P1: ¿Cuáles son los requisitos básicos para la implementación? Kubernetes en un servidor?
    A: Para implementar KubernetesNecesita al menos un nodo de plano de control y uno o más nodos de trabajo, cada uno con direcciones IP únicas. El hardware mínimo recomendado es 2. vCPUs y 2 GB RAM por nodo, junto con una conectividad de red estable.
  • P2: ¿Por qué debería elegir? Kubernetes ¿Sobre la virtualización tradicional con hipervisores?
    A: Kubernetes aprovecha contenedores en lugar de máquinas virtuales completas, lo que significa tiempos de inicio más rápidos, mayor densidad de carga de trabajo, sobrecarga mínima y portabilidad más fácil en diferentes entornos.
  • Q3: puede Kubernetes ¿Ejecutar tanto en la nube como en la infraestructura local?
    R: Sí. Kubernetes Es altamente flexible y admite implementaciones híbridas y multi-cloud, así como clústeres locales, lo que la convierte en una plataforma unificada para diversas necesidades de infraestructura.
  • P4: ¿Cómo puedo garantizar que las aplicaciones permanezcan disponibles si falla un contenedor?
    A: Kubernetes Incluye funciones de autorreparación. Reinicia automáticamente los contenedores con fallos, reprograma las cargas de trabajo a nodos en buen estado y reemplaza los pods que no responden, garantizando así el tiempo de actividad de las aplicaciones.
  • P5: ¿Qué herramientas puedo utilizar para monitorear y visualizar mis Kubernetes ¿grupo?
    R: Las herramientas comúnmente utilizadas incluyen Prometheus + Grafana para la visualización de métricas, la pila EFK (Elasticsearch, Fluentd, Kibana) para la agregación de registros y Kubernetes Panel de control para una interfaz de gestión basada en web.
  • Q6: es Kubernetes ¿Seguro por defecto?
    A: Kubernetes Ofrece sólidas funciones de seguridad, como el control de acceso basado en roles (RBAC), la gestión de secretos y las políticas de red. Sin embargo, proteger un clúster requiere una configuración adecuada y una monitorización continua.
  • P7: ¿Necesito? Docker para ejecutar Kubernetes?
    A: No. Mientras Kubernetes Originalmente dependía de DockerAhora admite varios entornos de ejecución de contenedores como CRI-O y containerd, que son livianos y totalmente compatibles con Kubernetes.
Votar:
5 de 5
Calificación promedio: 5
Calificado por: 1
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

También le podría interesar...

Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies además Política de privacidad.