Herramientas de usuario

Herramientas del sitio


kubernetesdeploy

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
kubernetesdeploy [2025/06/04 07:10]
fmolinuevo [1. Define tu Deployment en un archivo YAML:]
kubernetesdeploy [2025/08/27 06:49] (actual)
fmolinuevo [3. Service de tipo LoadBalancer (Acceso Externo Avanzado - Solo en la Nube)]
Línea 36: Línea 36:
 Explicación de los campos clave: Explicación de los campos clave:
  
-apiVersion: La versión de la API de Kubernetes que estás utilizando.+**apiVersion**: La versión de la API de Kubernetes que estás utilizando.
  
-kind: El tipo de recurso de Kubernetes que estás creando, en este caso, un Deployment. ​  +**kind**: El tipo de recurso de Kubernetes que estás creando, en este caso, un Deployment. ​  
  
-metadata: Información sobre el Deployment, como su name y labels.  ​ +**metadata**: Información sobre el Deployment, como su name y labels.  ​ç
-spec: La especificación deseada para el Deployment.  ​+
  
-replicasEl número de Pods idénticos que deseas que se ejecuten  ​+**spec**La especificación deseada para el Deployment 
  
-selectorDefine cómo el Deployment encuentra los Pods que debe gestionar. matchLabels asegura que los Pods con la etiqueta app: nginx sean parte de este Deployment. ​  +**replicas**El número de Pods idénticos ​que deseas ​que se ejecuten  ​
-template: La plantilla para los Pods que el Deployment creará +
  
-metadata.labelsEtiquetas ​que se aplicarán a cada Pod, crucial para que el selector ​los identifique  ​+**selector**Define cómo el Deployment encuentra los Pods que debe gestionar. matchLabels asegura ​que los Pods con la etiqueta app: nginx sean parte de este Deployment 
  
-spec.containersDefine ​los contenedores ​que se ejecutarán dentro de cada Pod.  ​+**template**La plantilla para los Pods que el Deployment creará.  ​
  
-nameNombre del contenedor.+**metadata.labels**Etiquetas que se aplicarán a cada Pod, crucial para que el selector los identifique  ​
  
-imageLa imagen de contenedor ​que se utilizará (por ejemplo, nginx:​latest).+**spec.containers**Define los contenedores ​que se ejecutarán dentro de cada Pod 
  
-containerPort:​ El puerto en el que la aplicación dentro del contenedor está escuchando. ​  +**name**: Nombre del contenedor. 
 + 
 +**image**: La imagen de contenedor que se utilizará (por ejemplo, nginx:​latest). 
 + 
 +**containerPort**: El puerto en el que la aplicación dentro del contenedor está escuchando. ​  
  
 ==== 2. Aplica el Deployment a tu clúster: ==== ==== 2. Aplica el Deployment a tu clúster: ====
Línea 82: Línea 84:
 Existen varios tipos de Services, cada uno adecuado para diferentes escenarios de acceso: Existen varios tipos de Services, cada uno adecuado para diferentes escenarios de acceso:
  
-1. Service de tipo ClusterIP (Acceso Interno)+==== 1. Service de tipo ClusterIP (Acceso Interno) ​====
  
 Propósito: Este es el tipo de Service predeterminado. Asigna una dirección IP interna al Service, haciéndolo accesible solo desde dentro del clúster. Es ideal para la comunicación entre diferentes componentes de tu aplicación (microservicios). ​   Propósito: Este es el tipo de Service predeterminado. Asigna una dirección IP interna al Service, haciéndolo accesible solo desde dentro del clúster. Es ideal para la comunicación entre diferentes componentes de tu aplicación (microservicios). ​  
Línea 115: Línea 117:
 Verás una CLUSTER-IP asignada, que es la IP interna del Service. Verás una CLUSTER-IP asignada, que es la IP interna del Service.
  
-2. Service de tipo NodePort (Acceso Externo Básico)+==== 2. Service de tipo NodePort (Acceso Externo Básico) ​====
  
 Propósito: Extiende la funcionalidad de ClusterIP. Expone el Service en un puerto estático (generalmente en el rango 30000-32767) en la dirección IP de cada nodo del clúster. Esto permite que la aplicación sea accesible desde fuera del clúster a través de la IP de cualquier nodo y el NodePort asignado. ​   Propósito: Extiende la funcionalidad de ClusterIP. Expone el Service en un puerto estático (generalmente en el rango 30000-32767) en la dirección IP de cada nodo del clúster. Esto permite que la aplicación sea accesible desde fuera del clúster a través de la IP de cualquier nodo y el NodePort asignado. ​  
Línea 150: Línea 152:
  
 Accede a tu aplicación:​ Accede a tu aplicación:​
-Puedes acceder a tu aplicación desde un navegador o curl utilizando la dirección IP de cualquiera de tus nodos y el NodePort asignado: http://<​IP_del_Nodo>:<​NodePort>​ (ej. http://​192.168.1.10:​30080). 
  
-3. Service de tipo LoadBalancer (Acceso Externo Avanzado - Solo en la Nube)+Puedes acceder a tu aplicación desde un navegador o curl utilizando la dirección IP de cualquiera de tus nodos y el NodePort asignado: 
 + 
 +  http://<​IP_del_Nodo>:<​NodePort>​ (ej. http://​192.168.1.10:​30080) 
 + 
 +==== 3. Service de tipo LoadBalancer (Acceso Externo Avanzado - Solo en la Nube) ====
  
 Propósito: Este tipo de Service solo está disponible en entornos de nube (como AWS EKS, Google Kubernetes Engine, Azure Kubernetes Service). Cuando creas un Service de tipo LoadBalancer,​ Kubernetes provisiona automáticamente un balanceador de carga externo en tu proveedor de nube, asignándole una dirección IP pública. ​   Propósito: Este tipo de Service solo está disponible en entornos de nube (como AWS EKS, Google Kubernetes Engine, Azure Kubernetes Service). Cuando creas un Service de tipo LoadBalancer,​ Kubernetes provisiona automáticamente un balanceador de carga externo en tu proveedor de nube, asignándole una dirección IP pública. ​  
Línea 187: Línea 192:
 Accede a tu aplicación:​ Accede a tu aplicación:​
  
-Una vez que la EXTERNAL-IP esté disponible, puedes acceder a tu aplicación desde un navegador o curl utilizando esa dirección IP pública: ​http://<​EXTERNAL-IP>​.+Una vez que la EXTERNAL-IP esté disponible, puedes acceder a tu aplicación desde un navegador o curl utilizando esa dirección IP pública:
  
-Paso 3: Verificación y Depuración+  http://<​EXTERNAL-IP>​. 
 + 
 + 
 +===== Paso 3: Verificación y Depuración ​=====
  
 Es fundamental verificar el estado de tus recursos y saber cómo depurar si algo no funciona como esperas. Es fundamental verificar el estado de tus recursos y saber cómo depurar si algo no funciona como esperas.
Línea 209: Línea 217:
   kubectl describe service mi-aplicacion-service-nodeport # Para detalles y eventos   kubectl describe service mi-aplicacion-service-nodeport # Para detalles y eventos
  
 +===== Bibliografía =====
 +
 +  * Kubernetes Deployments:​ https://​kubernetes.io/​docs/​concepts/​workloads/​controllers/​deployment/​
 +  * Kubernetes Deployment in YAML: https://​codefresh.io/​learn/​kubernetes-deployment/​kubernetes-deployment-yaml/​
 +  * Kubernetes Deployment YAML examples: https://​octopus.com/​devops/​kubernetes-deployments/​kubernetes-yaml/​
kubernetesdeploy.1749031835.txt.gz · Última modificación: 2025/06/04 07:10 por fmolinuevo