Qué es apache Istio?

"Istio te permite conectar, asegurar, controlar y observar los microservicios que se ejecutan en tu entorno cloud.

Istio ayuda a reducir la complejidad de los despliegues en un entorno distribuido y alivia la tensión de los compañeros DevOps.
Es una malla de servicios open source que se superpone de forma transparente a las aplicaciones distribuidas existentes. 

También es una plataforma, que incluye APIs que nos permiten integrar a cualquier plataforma de registro, 
o sistemas de telemetría, control de acceso al dato, logging. 
Básicamente trata de ayudarnos al permite explotar una arquitectura de microservicios distribuidos, 
proporcionando una forma uniforme de securizar, conectar y supervisar dichos microservicios."

En el momento que escribí esta guía de pasos, usaba fish en osx en vez de zsh.

bash

https://istio.io/docs/setup/getting-started/#download

curl -L https://istio.io/downloadIstio | sh -

cd istio-1.6.0

export PATH=$PWD/bin:$PATH

istioctl manifest apply --set profile=demo

kubectl label namespace default istio-injection=enabled

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

Una vez que Docker está corriendo, kubernetes está corriendo y puedes lanzar estos docs comandos para comprobar el estado…

kubectl get services

kubectl get pods

kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

istioctl analyze

kubectl get svc istio-ingressgateway -n istio-system

como estás usando Docker for Desktop, debes usar este comando

export INGRESS_HOST=127.0.0.1

Si estuvieras detrás de un kubernetes mas real, debes usar este comando

export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')

export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

echo $GATEWAY_URL

echo http://$GATEWAY_URL/productpage

En mi portatil me sale esta url, http://127.0.0.1:80/productpage. Chequear que todo está bien.

#admin/admin by default
istioctl dashboard kiali

kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml

kubectl get destinationrules -o yaml

Mas microservicios con los que poder jugar. DaSouzza

https://github.com/alonsoir/service-mesh-istio

cd /Users/aironman/gitProjects/service-mesh-istio

kubectl apply -f ./istio/

para ver si los contenedores están corriendo correctamente

kubectl get po -n istio-system -w

kubectl apply -f ./

Istio te da Grafana, Kiali y Jaeger, las urls de acceso son:

Grafana

http://127.0.0.1:31002/?orgId=1

kiali

http://127.0.0.1:31000/kiali/

Jaeger

http://127.0.0.1:31001/jaeger/search

LINKS

https://istio.io/latest/docs/concepts/what-is-istio/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s