š Istio
Conceitosā
Istio Ć© um service mesh, que nada mais que Ć© uma camada adicionada junto as aplicaƧƵes deployadas no kubernetes que permite gerenciar a comunicação dos serviƧos num sistema distribuĆdo.
Um service mesh gerencia toda a comunicação serviƧo a serviƧo em um sistema de software distribuĆdo (potencialmente baseado em microservices). Isso Ć© feito normalmente por meio do uso de proxies "laterais (sidecar)" que sĆ£o implantados ao lado de cada serviƧo atravĆ©s do qual todo o trĆ”fego Ć© roteado de forma transparente;
Com o Istio podemos resolver os problemas:
- Externalização da configuração de comunicação dos serviços, incluindo locais de rede de serviços externos, credenciais de segurança e metas de qualidade de serviço;
- Fornecer monitoramento passivo e ativo de outros serviƧos;
- Descentralizar a aplicação da polĆtica em um sistema distribuĆdo;
- Fornecer padrƵes de observabilidade e padronizar a coleta de dados associados.
- Ativando o registro de solicitaƧƵes (logs)
- Configurando o rastreamento distribuĆdo;
- Coletando mƩtricas
Existem outros services mesh, Linkerd, Istio, Consul, Kuma e Maesh.


Instalaçãoā
link: instale o istio
Comandosā
# Instalar istio no kunbernetes - veja outros profiles: https://istio.io/latest/docs/setup/additional-setup/config-profiles/
istioctl install --set profile=demo -y
# comandos uteis
# lista os namespaces
kubectl get namespaces
# lista os pods de um namespace
kubectl get pods -n istio-system
kgp -n istio-system
# lista os services de um namespace
kubectl get svc -n istio-system
kgs -n istio-system
# instalar addons
kubectl apply -f <istio-istall-folder>/samples/addons
kubectl apply -f ~/Documents/programs/istio-1.14.3/samples/addons
# Acessar dash kiali
istioctl dashboard kiali
# abre serviƧos
misinikube service <nome do serviƧo>
# configurar uma porta local pra usar no localhost
kubectl port-forward svc/<nome-serviƧo> -n <namespace-serviƧo> <porta-local>:<porta-serviƧo>
- Para ativar os proxys do Istio Ʃ necessƔrio configurar labels nos namespace.
Após fazer isso automaticamente o istio vai subir no pod um container de proxy.
# use para listar as lables de um namespace
kubectl get ns <namespace> --show-labels=true
kubectl get ns ucontas-app --show-labels=true
# Use para ativar o istion no namespace
kubectl label namespace <nome-namespace> istio-injection=enabled
kubectl label namespace ucontas-app istio-injection=enabled
# E reciso reiniciar os pod para que seja adicionados os sidecar
kubectl delete pods --all -n <namespace>
kubectl delete pods --all -n ucontas-app
Link: https://www.infoq.com/br/articles/service-mesh-ultimate-guide/