Parte 2

Instalando Linkerd e sua família que vai nos ajudar com o MultiCluster

Antes de mais nada, é preciso criar a cadeia de certificado pro linkerd, a ser instalado em todos os clusters igualmente:

mkdir certs && cd certs

step certificate create root.linkerd.cluster.local ca.crt ca.key \

   --profile root-ca \

   --no-password \

   --insecure

step certificate create identity.linkerd.cluster.local \

   issuer.crt issuer.key \

   --profile intermediate-ca --not-after 8760h \

   --no-password --insecure --ca ca.crt --ca-key ca.key


Guarde os certificados, eles são umas das partes core do seu linkerd, mas se perder você precisará reinstalar e reiniciar pods que estão em mesh.

Execute essas instruções aqui ainda no diretório certs com os certificados criados:


alias linkerd='linkerd'

for ctx in kind-demo kind-demo3; do                   

    echo "install crds ${ctx}"                                                                                                                                                         

    linkerd install --context=${ctx} --crds | kubectl apply -f - --context=${ctx};

    echo "install linkerd ${ctx}";

    linkerd install --context=${ctx} \

      --identity-trust-anchors-file=ca.crt \

      --identity-issuer-certificate-file=issuer.crt \

      --identity-issuer-key-file=issuer.key | kubectl apply -f - --context=${ctx};

    echo "install viz ${ctx}";

    linkerd --context=${ctx} viz install | kubectl apply -f - --context=${ctx};

    echo "install multicluster ${ctx}";    

    linkerd --context=${ctx} multicluster install | kubectl apply -f - --context=${ctx};

    echo "install smi ${ctx}";        

    linkerd smi install --context=${ctx}  | kubectl apply -f - --context=${ctx};

Done


Cheque se seu linkerd-multicluster recebeu um ip LoadBalancer e faça um telnet pra eles só pra validar


for ctx in kind-demo kind-demo3; do

  printf "Checking cluster: ${ctx} ........."

  while [ "$(kubectl --context=${ctx} -n linkerd-multicluster get service linkerd-gateway -o 'custom-columns=:.status.loadBalancer.ingress[0].ip' --no-headers)" = "<none>" ]; do

      printf '.'

      sleep 1

  done

  echo "`kubectl --context=${ctx} -n linkerd-multicluster get service linkerd-gateway -o 'custom-columns=:.status.loadBalancer.ingress[0].ip' --no-headers`"

  printf "\n"

done


Hora de ligar os clusters

Essa é a hora em que o linkerd cria serviceaccounts nos 2 clusters, cria secret com o kubeconfig de cada um cruzado e voilá!

linkerd --context=kind-demo multicluster link --cluster-name kind-demo | kubectl apply -f - --context=kind-demo3

linkerd --context=kind-demo3 multicluster link --cluster-name kind-demo3 | kubectl apply -f - --context=kind-demo

Vamos ver?

for ctx in kind-demo kind-demo3; do

  echo "Checking link....${ctx}"

  linkerd --context=${ctx} multicluster check

  echo "Checking gateways ...${ctx}"

  linkerd --context=${ctx} multicluster gateways

  echo "..............done ${ctx}"

done

Fique atento, em breve publicaremos a parte 4!


Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos