First of ALL 🎈 # Bem Vindos! 💚                                                                                                                    

Really Thanks to my friends of Buoyant and Linkerd project - Catherine Paganini, Jason and Bill Morgan and Flynn, without you, we can't reach multiclusters in mesh ( because others meshs, are slipslop )

Esse repositório foi escrito em 2022/Dezembro, podendo ser atualizado os binários e os paths, [contate-me](mailto:adonai.costa@gmailcom) se precisar de ajuda! Mas tente entender os passos ;-)

A ideia aqui é mostrar o quão fácil é criar e manter multiclusters com um service mesh que realmente funciona. Até então, esta demanda era um era hype e agora chega como uma necessidade real, visto que há, sim, indisponibilidade nas clouds públicas ou privadas.

Após pesquisar bastante entendi que o linkerd se mostrou capaz de realizar essa tarefa com facilidade, rastreabilidade, segurança e observabilidade. Outros service meshs apresentam limitações mil que nos impedem de implementar, dar manutenção ou sequer conseguirmos fazer um simples troubleshoot.

Instale as ferramentas que te deixarão doido para criar clusters em mesh. 

kind: https://kind.sigs.k8s.io/docs/user/quick-start/#installation  
kubectl: https://kubernetes.io/docs/tasks/tools/ 
helm: https://helm.sh/docs/intro/install/
step: https://smallstep.com/docs/step-cli/installation
linkerd: https://github.com/linkerd/linkerd2/releases/tag/stable-2.12.3
linkerd-smi: https://github.com/linkerd/linkerd-smi/releases/tag/v0.2.0

Bora lá!

O KinD, que todo mundo já conhece, cria clusters Kubernetes na sua máquina pessoal para testes e validações. Muito útil para que você não faça caca no seu ambiente produtivo.
O kubectl e Helm não precisam de apresentações.
O step é um utilitário que facilita a criação de certificados que vamos usar.
O binário linkerd, obviamente, foi elaborado com a graça de Deus e pelos meus amigos da Buoyant para criar, atualizar, interagir com o service mesh mais gostosinho do mundo.
E por fim o linkerd-smi é o complemento/extensão usado para criar custom resources como o TrafficSplit, que pode inclusive interagir com o flagger para rollout de deploys do tipo canary automáticos.

Vou demonstrar aqui a função multi-Cluster localmente utilizando essas ferramentas.

Criando os clusters kind-demo e kind-demo3, YES, YOU CAN! Go! Go! Go! 

❯ cat << EOF >> kind.yaml

kind: Cluster

apiVersion: kind.x-k8s.io/v1alpha4

name: demo

networking:

  apiServerAddress: 192.168.1.61 # PUT YOUR IP ADDRESSS OF YOUR MACHINE HERE DUMMIE! ;-) 

  podSubnet: "10.244.0.0/16"

  serviceSubnet: "10.96.0.0/12"

nodes:

- role: control-plane

  image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315

- role: worker

  image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315

- role: worker

  image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315

EOF

kind create cluster --config kind.yaml

Creating cluster "demo" ...

 ✓ Ensuring node image (kindest/node:v1.24.7) 🖼 

 ✓ Preparing nodes 📦 📦 📦  

 ✓ Writing configuration 📜 

 ✓ Starting control-plane 🕹️ 

 ✓ Installing CNI 🔌 

 ✓ Installing StorageClass 💾 

 ✓ Joining worker nodes 🚜 

Set kubectl context to "kind-demo"

You can now use your cluster with:

kubectl cluster-info --context kind-demo

Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂

❯ cat << EOF >> kind3.yaml

kind: Cluster

apiVersion: kind.x-k8s.io/v1alpha4

name: demo3

networking:

  apiServerAddress: 192.168.1.61 # PUT YOUR IP ADDRESSS OF YOUR MACHINE, HERE DUMMIE! ;-)

  podSubnet: "10.245.0.0/16"

  serviceSubnet: "10.97.0.0/12"

nodes:

- role: control-plane

  image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315

- role: worker

  image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315

- role: worker

  image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315

EOF

kind create cluster --config kind3.yaml

Creating cluster "demo3" ...

 ✓ Ensuring node image (kindest/node:v1.24.7) 🖼 

 ✓ Preparing nodes 📦 📦 📦  

 ✓ Writing configuration 📜 

 ✓ Starting control-plane 🕹️ 

 ✓ Installing CNI 🔌 

 ✓ Installing StorageClass 💾 

 ✓ Joining worker nodes 🚜 

Set kubectl context to "kind-demo3"

You can now use your cluster with:

kubectl cluster-info --context kind-demo3

Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂

Social

Contact us

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Opportunities

Our content

Social

Contact us

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Opportunities

Our content

Social

Contact us

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Opportunities

Our content