Skip to content

Prática de Service Mesh com Istio, pipeline GCP cloudbuild com implantação no GCP-GKE, com tecnologias: GCP, Istio, Grafana, Prometheus, Jaeger, SSL/TLS, Terraform.

Notifications You must be signed in to change notification settings

Adenilson365/kubernetes-istioServiceMesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Etapa atual do projeto: Concluido/melhoria

Objetivos

  • Implantação GKE ou Local com ShellScript ou Pipeline CloudBuild
  • Aplicar Certificados TLS (Let's Ebcrypt) para https.
  • Aplicar Istio para Service Mesh.
  • Aplicar Prometheus e Grafana para observabilidade
  • Infraestrutura GKE com Terraform usando modulos.

Repositórios relacionados

Diagrama de arquitetura

Diagrama

Diagrama do ServiceMesh

Service Mesh Istio

Documentação

Instalar:

  • execute as configurações abaixo, depois execute o script config.sh
    • Pode ser usado tanto local como GKE

Configuração inícial do Cluster

  • Execute o terraform ou crie um cluster GKE Repositório de IAC
  • Instale a CNI ingress-nginx
  • Instale a CLI do Istio
  • Aplique os arquivos de configuração
    • Secrets
    • ConfigMaps
    • Ingress Controller
    • PersistentVolumeClaim

Como Configurar HTTPS

  • Instale o cert-manager seguindo a documentação cert-manager.
  • Crie o kind ClusterIssuer seguindo: Documentação
  • Adicione as configurações de Annotations e spec.tls, ainda seguin a documentação do passo anterior
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: devopslabs
  annotations:
   cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - meudominio.com.br
      secretName: letsencrypt-prod
  • Pronto - HTTPS configurado.

Instalar Istio

  • LINK - Aplique a configuração específica para o Kubernetes, neste projeto GKE.

  • LINK - Instale os componentes base do Istio via Helm

  • LINK - Instale o Kiali Dashboard

  • Após instalar os componentes injete a label no namespace da aplicação.

    • Novos pods terão sidecar de proxy do istio, pods existentes precisarão ser recriados.
kubectl label namespace <NomeNamespace> istio-injection=enabled
  • Instalado o profile ambient ProfileIstio

Variáveis de ambiente

  • Secrets
apiVersion: v1 
kind: Secret
metadata:
  name: db-secret
type: Opaque
data:
  POSTGRES_USER: valor
  POSTGRES_PASSWORD: valor
  POSTGRES_DB: valor
---
apiVersion: v1
kind: Secret
metadata:
  name: catalogo-secret
type: Opaque
data:
  DB_HOST: valor
  DB_USER: valor
  DB_PASSWORD: valor
  DB_DATABASE: valor
  • Configmaps:
apiVersion: v1 
kind: ConfigMap
metadata:
  name: db-config
  namespace: api-prd
data:
  DB_HOST: "IP Banco de Dados GCP ou Nome Serviço PSQL local"
  PGDATA: "/var/lib/postgresql/data/db"
---
#Como colocar em base64 se você usar linux para o secret
echo -d 'valor' | base64 
  • Para codificar em base64 link

About

Prática de Service Mesh com Istio, pipeline GCP cloudbuild com implantação no GCP-GKE, com tecnologias: GCP, Istio, Grafana, Prometheus, Jaeger, SSL/TLS, Terraform.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages