Instalando ARGOCD para administrar Kubernetes
Hola amigos de #CulturaLibre hoy les traigo una herramienta infaltable para todos los que administran despligues de kubernetes. En #CulturaLibre vamos a estar Instalando ARGOCD para administrar Kubernetes pero ademas te vamos a dejar links donde instalamos kubernetes gracias a mikrok8s y creamos un cluster paso a paso!
Ya vimos en el blog como instalar kubernetes:
Y tambien estuvimos mirando como armar un cluster:
Ahora con un cluster armado vamos a instalarle ARGOCD cuya web podemos encontrar en https://argo-cd.readthedocs.io/en/stable/
pero, ¿Que es argocd?

CD es Continuous Delivery o entrega continua, hace referencia a una serie de prácticas utilizadas en el desarrollo de software para ejecutar el desarrollo, la entrega, el feedback y la gestión de calidad de forma simultánea y cada poco tiempo, de acuerdo con un proceso repetitivo.
Dicho esto, argocd nos permitirá trabajar con kubernetes haciendo uso de repositorios como git, e interactuando con otras como helm, etc.
Para comenzar vamos a crear el name spaces para argo:


kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Ahora vamos a chequear los pods:

Debido a que la primera vez que se hace un deploy utiliza el nombre del server como contraseña ya podrimaos obtener con el comando anterior el nombre que es argocd-server-77fd6dff69-5jbmb
Otra forma más “guau que hizo” seria:
kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
y el resultado es el mismo pero se utilizo cut para para traer solo el server:

A continuación necesitariamos entrar para administrar a argocd con lo cual vamos a necesitar un forwardeo de puertos:
kubctl port-forward svc/argocd-server -n argocd 8080:443

Acá una aclaración importante. Yo estoy usando kubectl desde una maquina externa para controlar mikrok8s que esta en otra. Si pongo la ip del servidor que es 192.168.0.76:8080 no va a andar por que no hay nada publicado ahi, solo mediante kubectl se hace el port-forward y funciona con localhost en la maquina desde la que estoy administrando.

La verdad que la tecnica de ponerle el nombre del servidor como contraseña esta bueno peroooooo cada vez que cambie por que se reinicie un pod nos vamos a querer matar. Una buena es patchearla. Por ejemplo podemos usar la palabra password:
kubectl -n argocd patch secret argocd-secret \
-p '{"stringData": {
"admin.password": "$2a$10$rRyBsGSHK6.uc8fntPwVIuLVHgsAhAX7TcdrqW/RADU0uh7CaChLa",
"admin.passwordMtime": "'$(date +%FT%T%Z)'"
}}'

La idea es contar con un repo en github gitlab o lo que sea y de ahi hacer todo automaticamente. Ponemos crear app:



Le damos clic en create y charan….. en un rato veremos el estado Synced y Healthy
Podemos comprobar los pods:

En mi caso estoy tirando comandos pero aun no finalizo….. se ve asi:

Ahora basta cambiar por ejemplo la cantidad de replicas que quiero que funcionen, guardo o hago un push en github y vas a ver en 3 minutos que es lo que tarda la sincronizacion/actualizacion los cambios (lo bueno es que cambiamos no solo en un solo lugar sino en ambos a la vez)
Espero les haya gustado argocd, una herramienta infaltable si manejas kubernetes!
Gracias por pasar por #CulturaLibre
Filed under: devops,docker,kubernetes - @ 23 octubre, 2022 7:15 pm
Etiquetas: argocd, helm, k8s, kubectl, kubernetes, pods, wordpress, yaml