¿Qué vamos a ver?
Basado en la documentación oficial de K8s (licencia CC-BY-4.0).
>_.source <(kubectl completion bash)
Comprueba que funciona escribiendo kubectl y presionando la tecla "TAB" 2 veces.Crea un namespace para aislar los recursos de este ejercicio del resto de recursos en tu clúster:
kubectl create namespace lab-external-service
Vamos a desplegar una aplicación con 5 réplicas de Pods usando un Despliegue.
deployments:mkdir deployments
deployments/demo-deployment.yaml con este manifiesto:apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-deployment
spec:
replicas: 5
selector:
matchLabels:
app: demo-deployment
template:
metadata:
labels:
app: demo-deployment
spec:
containers:
- image: gcr.io/google-samples/node-hello:1.0
name: hello-world
ports:
- containerPort: 8080
kubectl apply -f deployments/demo-deployment.yaml -n lab-external-service
kubectl get pods -n lab-external-service
kubectl get deployments demo-deployment -n lab-external-service
kubectl describe deployment demo-deployment -n lab-external-service
kubectl get replicasets -n lab-external-service
kubectl describe replicasets -n lab-external-service
kubectl expose deployment demo-deployment --type NodePort --name demo-service -n lab-external-service
kubectl get services demo-service -n lab-external-service
kubectl describe services demo-service -n lab-external-service
Endpoints:kubectl describe services demo-service -n lab-external-service | grep Endpoints
kubectl get pods -o wide -n lab-external-service
NodePort:kubectl describe services demo-service -n lab-external-service | grep NodePort
gcloud compute instances list
curl http://[IP_NODO]:[PUERTO]
kubectl delete service demo-service -n lab-external-service
kubectl expose deployment demo-deployment --type LoadBalancer --name demo-service -n lab-external-service
PENDING a una dirección IP (ésto puede tardar hasta 4 minutos):kubectl get service demo-service -n lab-external-service -w
CTRL + C.curl http://[IP_EXTERNA_LB]:8080
Elimina el namespace, lo cual eliminará todos los recursos:
kubectl delete namespace lab-external-service
En esta práctica hemos visto cómo: