---
# System prepended metadata

title: Kubernetes - Linkerd

---

# Kubernetes - Linkerd

[Linkerd](https://linkerd.io) 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](https://brew.sh/index_es), 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](https://smallstep.com/cli/), por lo que, previamente deberás instalar [Step](https://smallstep.com/docs/step-ca/installation/#kubernetes).

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.