Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

Accediendo a nuestros PODS a través de servicios

16/33
Recursos

El tipo de servicio en Kubernetes pueden ser de cuatro formas diferentes:

  • Cluster IP: Una IP virtual es asignada para el servicio
  • NodePort: Un puerto es asignado para el servicio en todos los nodos
  • Load Balancer: Un balanceador externo es provisionado para el servicio. Solo disponible cuando se usa un servicio con un balanceador
  • ExternalName: Una entrada de DNS manejado por CoreDNS

Aportes 11

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para quienes estemos utilizando minikube y no nos dé el comando curl desde nuestro host, debemos ingresar a nuestro cluster, así:

minikube ssh -p cluster_name

Una vez dentro del cluster, podemos probar el comando curl hacia la ip del pod.

curl http://pod_id:pod_port

Parra no tener que copiar o revisar el nombre del POD, podemos tambien seleccionar con label, el primero de todas las replicas y hacer el CURL:

#Curl al primer POD
curl http://$(kubectl get po -l app=httpenv -o jsonpath="{.items[0].status.podIP}"):8888 | jq ""

#Curl al service
curl http://$(kubectl get service/httpenv -o jsonpath='{.spec.clusterIP}'):8888 | jq ""

#Ciclo para revisar el Curl extrayendo cual sea la IP 
for i in $(seq 10); do curl -s http://$(kubectl get service/httpenv -o jsonpath='{.spec.clusterIP}'):8888 | jq ".HOSTNAME"; done

Curso de tmux 😄

Alguien me puede explicar como eliminó todos los pods de cada unode los nodos?
Tengo rato intentando y nada porque si utilizo

kubectl delete pods <pod> --grace-period=0 --force

vuelve a crear el pod

dejo un aporte de un blog detallado de los servicios con graficas https://www.josedomingo.org/pledin/2018/11/recursos-de-kubernetes-services/

Algoritmos implementados en un LoadBalancer:

  • Round-Robin
  • Least Connnection
  • Least Time
  • Hash
  • IP Hash
  • Random with two choices

Un pequeño resumen de como funcionan los LoadBalancer y los diferentes algoritmos:
https://www.nginx.com/resources/glossary/load-balancing/

Si alguno no logró formatear la salida del curl con los comandos:

curl http://clusterip:port | jq ""
for i in $(seq 10); do curl -s http://clusterip:port | jq .HOSTNAME; done

En el caso de ubuntu, debemos instalar jq:

apt update
apt install jq

Entendido y funcional

kubectl get pods
kubectl describe pod idpod
kubectl get all
kubectl delete deploy/httpenv 
kubectl create deployment httpenv --image jpetazzo/httpenv
kubectl get pods
kubectl get all
kubectl scale deployment httpenv --replicas=5
kubectl get pods
kubectl get pods -o wide
curl http://10.44.0.5:8888
curl http://10.44.0.5:8888 |jq ""   // formatea resultado hayq ye revisar ela version  de linux
kubectl expose deployment httpenv --port=8888
kubectl get svc
for i in $(seq 10); do curl -s http://10.110.57.28:8888 |jq .HOSTNAME; done
NAVEGANDO A LOS PODS

#Exponer pods a traves de un clusterIP
kubectl expose deployment httpenv --port=8888

#Navegar a pods
curl http://cluster-ip:cluster-port

#Ciclo para revisar todos los hostname
for i in $(seq 10); do curl -s http://$(kubectl get service/httpenv -o jsonpath='{.spec.clusterIP}'):8888 | jq ".HOSTNAME"; done

repasando 😃

Por alguna razon no me resulta el curl, me da timeout.
el servicio esta ready, el pod running con la imagen correcta, al ver el log del pod esta escuchando en el puerto 8888. La vdd no se donde analizar 😦