En esta sección aprenderás a desplegar NGINX en tu clúster de Google Kubernetes Engine (GKE). NGINX puede actuar como un servidor web o proxy inverso. A continuación se muestran dos métodos para su instalación: una opción manual y otra utilizando un archivo YAML público.
Primero, asegúrate de que estás conectado a tu clúster de Kubernetes en GKE. Usa este comando para obtener las credenciales del clúster:
gcloud container clusters get-credentials [CLUSTER_NAME] --zone [ZONE]
Reemplaza [CLUSTER_NAME]
con el nombre de tu clúster y [ZONE]
con la zona en la que se encuentra (por ejemplo, us-central1-a
).
Esta opción implica la creación manual de un despliegue y un servicio de NGINX.
Crea un archivo de despliegue para NGINX en formato YAML. Crea un archivo llamado nginx-deployment.yaml
con el siguiente contenido:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.10
ports:
- containerPort: 80
Aplica el archivo de despliegue de NGINX usando el siguiente comando:
kubectl apply -f nginx-deployment.yaml
Este comando desplegará NGINX en tu clúster de GKE, creando 3 réplicas de la aplicación NGINX.
Para hacer que NGINX sea accesible externamente, debes crear un servicio de tipo LoadBalancer. Crea un archivo llamado nginx-service.yaml
con el siguiente contenido:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Aplica el archivo de servicio usando el siguiente comando:
kubectl apply -f nginx-service.yaml
Para verificar que el servicio se haya creado correctamente y obtener la dirección IP externa asignada, usa el siguiente comando:
kubectl get services
Deberías ver una IP externa bajo la columna EXTERNAL-IP
. Una vez que esa IP esté asignada, puedes acceder a NGINX mediante el navegador utilizando esa dirección IP.
Esta opción es más rápida y utiliza un despliegue preconfigurado de NGINX Ingress desde un repositorio público de Kubernetes. Simplemente ejecuta el siguiente comando:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml
Este comando descargará y aplicará el archivo YAML desde el repositorio de Kubernetes, desplegando NGINX Ingress en tu clúster de GKE.
Una vez que hayas ejecutado una de las dos opciones, puedes verificar que el controlador NGINX se haya desplegado correctamente utilizando el siguiente comando:
kubectl get pods -n ingress-nginx
Este comando listará los pods del controlador de NGINX que deberían estar corriendo bajo el namespace ingress-nginx
.