Try   HackMD

Kubernetes - Linkerd

Linkerd es un servicio de malla para Kubernetes. Linkerd hace que la ejecución de servicios sea más fácil y segura al brindarle depuración, observabilidad, confiabilidad y seguridad en tiempo de ejecución.

Instalación

Para poder instalar Linkerd en nuestro Cluster, primero debemos instalar Linkerd CLI, con el siguiente comando:

curl -fsL https://run.linkerd.io/install | sh

En caso de que cuentes con MacOS puedes instalarlo mediante Brew, con el siguiente comando: brew install linkerd

Una vez que hayas instalado Linkerd CLI, deberás corroborar la instalación con el comando:

linkerd version

Antes de continuar con la instalación, debemos asegurarnos de que todo se ha configurado correctamente y podemos instalar el Control Plane, para ello ejecuta:

linkerd check --pre

En caso de que se Linkerd haya verificado que puedes continuar con la instalación, ahora instalaremos el Control Plane mediante Helm.

Para poder instalar el Control Plane con Helm, primero deberás generar algunos certificados con la ayuda de Step, por lo que, previamente deberás instalar Step.

Una vez que hayas instalado Step, deberás generar dos certificados (Trust anchor certificate y Issuer Certificate), para ello ejecuta los siguientes comandos:

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

Una vez que hayas generado los certificados, deberás agregar el repositorio de Linkerd a Helm con el siguiente comando:

helm repo add linkerd https://helm.linkerd.io/stable

Posteriormente, instalaremos Linkerd con la ayuda de Helm:

exp=$(date -v+8760H +"%Y-%m-%dT%H:%M:%SZ")

helm install linkerd2 \
  --set-file identityTrustAnchorsPEM=ca.crt \
  --set-file identity.issuer.tls.crtPEM=issuer.crt \
  --set-file identity.issuer.tls.keyPEM=issuer.key \
  --set identity.issuer.crtExpiry=$exp \
  linkerd/linkerd2

Una vez que hayas instalado Linkerd, puedes verificar la instalación con el siguiente comando:

linkerd check

Añadir extensión de Viz para métricas

Viz es una extensión de Linkerd que nos proveera de un Dashboard en el cuál podremos observar métricas acerca de nuestro Cluster.

Para ello, ejecuta el siguiente comando:

linkerd viz install | kubectl apply -f -

Puedes verificar la instalación con el comando:

linkerd check

Una vez que hayas instalado Viz, podrás ejecutarlo localmente con el comando:

linkerd viz dashboard &

Aplicar Mesh a un namespace

Hasta el momento, hemos instalado Linkerd, sin embargo, no hemos aplicado un servicio de malla, para ello, debemos ejecutar un comando para que nuestro deployment se actualice y realice la malla.

kubectl -n <NAMESPACE> get deploy -o yaml | linkerd inject - | kubectl apply -f -

Con esto, los deployments del namespace se actualizarán y agregarán el servicio de malla.

Sin embargo, deberás reiniciar el deployment para que se aplique la malla, para ello, ejecuta el siguiente comando:

kubectl -n <NAMESPACE> rollout restart <DEPLOYMENT-NAME>

Una vez que se reinicie el deployment, el servicio de malla estará listo.