📔
Blog
  • 🏠Home
  • 🤖Android
    • LineageOS, PlayIntegrityFix y playcurlNEXT
    • 🖥️Instalar Termux
    • 📦Optimizar paquetes después de instalar ROM
  • 🖥️Hardware
    • Overclocking AMD Ryzen 9 5950X
    • Unboxing Switch POE TP-Link TL-SG1008P
  • 🐧Linux
    • Possible missing firmware /lib/firmware/amdgpu
    • Cifrar con LUKS
    • Habilitar FSR en los juegos en Steam
    • Información del /etc/fstab
    • Instalar Debian cifrado
    • Después de Instalar Debian 12
    • Después de instalar Fedora 38
    • Instalar fuentes OTF y TTF en Linux
    • Instalar GNU/Linux Debian 12, en Macbook Pro (late 2015) A1502
    • Clonar disco a NAS con CloneZilla
    • Activar TRIM con systemd
    • Error ata9 en dispositivo SATA
    • Dash to dock para Gnome
    • Solución al error AACS en VLC al reproducir un BluRay
    • Gnome 42.5, en Linux Mint 21.1
    • dmesg: Initramfs unpacking failed: Decoding failed
    • Como tener AirPrint con tu impresora
    • Crear repo git desde el terminal
    • Añadir marca de agua al DNI
    • Eliminar un path con sed
    • Sacar el .crt y .key de un .pfx
    • Instalar driver AMD GPU
    • Problemas de Vsync con AMD GPU
    • Configurar git
    • Solucion al error amdgpu: powerplay
    • dmesg: Error al leer el búfer del kernel
    • CIDR, mascaras de subred
  • 💻Macintosh
    • My Apps
    • Configurar shell bash por defecto
    • Habilitar Bash Completion
    • Instalar Pyenv
    • Habilitar el "chime sound" en los nuevos Mac's
    • Reset NVRAM en un Macintosh
    • Reset PMU en un PowerBook G4
    • Solucionar el parpadeo de Netflix en Safari a pantalla completa
  • 🪟Windows
  • 🕹️Nintendo NES
    • 8bitdo DIY en mando original
    • Bluetooth interno con 8bitdo
    • Región Free, sin cortar el CIC
  • 🎮PlayStation
    • Review Cable SCART RGB C-SYNC
    • FreeMCBoot
    • Instalación chip PSX, PU-20
  • 📡Ubiquiti
    • Unboxing Cloud key Gen 2 Plus
    • UniFi Controller en Docker
    • Abrir puertos en USG Security Gateway
    • MAC del router HGU de Movistar en el USG
    • Configurar USG Security Gateway para Movistar
    • Habilitar DDNS en USG Security Gateway
    • Error Adopción Pendiente en USG Security Gateway
    • Restaurar firmware USG Security Gateway
    • Cambiar pasta termica en UniFi Switch 8 150W
    • Crear VLAN en UniFi Controller
    • Cambiar IP local en USG antes de adoptarlo
    • Configurar DDNS Cloudflare en EdgeRouter 4
    • Configuración vía terminal, red Home
    • Configurar WireGuard en EdgeRouter 4 / 6P
  • 📶Asus Router
    • Instalar Skynet
    • Habilitar swap
    • Ejecutar tareas crontab
    • Borrar NVRAM
    • Notificación Telegram al inicio
    • Monitorizar temperaturas con Telegram
    • Enviar logs a un servidor RSYSLOG
    • Mostrar temperaturas
  • 🍇RaspberryPi
    • Reducir tamaño imagen .img de un backup de la SD
    • Servidor RSYSLOG
    • Deshabilitar el ahorro de energia en WiFi
  • 🧊Kubernetes
    • Desplegar K8S con Kubespray
    • Flux en AKS
    • Actualizar certificados K8S
    • OpenShift en modo Datacenter en una VM local
  • 🐳Docker
    • HomeBridge en Docker
    • Comprobar vulnerabilidades de imagenes docker
    • Sign docker images with Cosign
    • Acceder a un contenedor con permisos de superusuario
  • 🧪Arduino
    • Minar DuinoCoin desde tu router OpenWRT
  • 🛠️Bricos
    • Rack IKEA HUTTEN
Powered by GitBook
On this page

Was this helpful?

  1. Kubernetes

Actualizar certificados K8S

PreviousFlux en AKSNextOpenShift en modo Datacenter en una VM local

Last updated 2 years ago

Was this helpful?

Lo primero verificamos cuando expiran los certificados actuales con el comando

kubeadm alpha certs check-expiration

Nos devolverá una salida como esta

# kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Sep 30, 2022 12:30 UTC   7d                                    no      
apiserver                  Sep 30, 2022 12:30 UTC   7d            ca                      no      
apiserver-etcd-client      Sep 30, 2022 12:30 UTC   7d            etcd-ca                 no      
apiserver-kubelet-client   Sep 30, 2022 12:30 UTC   7d            ca                      no      
controller-manager.conf    Sep 30, 2022 12:30 UTC   7d                                    no      
etcd-healthcheck-client    Sep 30, 2022 12:30 UTC   7d            etcd-ca                 no      
etcd-peer                  Sep 30, 2022 12:30 UTC   7d            etcd-ca                 no      
etcd-server                Sep 30, 2022 12:30 UTC   7d            etcd-ca                 no      
front-proxy-client         Sep 30, 2022 12:30 UTC   7d            front-proxy-ca          no      
scheduler.conf             Sep 30, 2022 12:30 UTC   7d                                    no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Oct 01, 2028 10:25 UTC   8y              no      
etcd-ca                 Oct 01, 2028 10:25 UTC   8y              no      
front-proxy-ca          Oct 01, 2028 10:25 UTC   8y              no

Como vemos, tenemos los certificados a punto de caducar. Lo primero es revisar el estado del cluster con

kubectl get nodes
# kubectl get nodes
NAME    STATUS   ROLES     AGE    VERSION
nodo1   Ready    master    44d   v1.23.10
nodo2   Ready    worker1   44d   v1.23.10
nodo3   Ready    worker2   44d   v1.23.10
nodo4   Ready    worker3   44d   v1.23.10

Desde el nodo1 lanzamos

kubeadm alpha certs renew all

Reiniciamos el servicio kubelet

systemctl restart kubelet

y verificamos su estado, que no reporte errores.

# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since lun 2022-09-19 19:28:28 CEST; 1 weeks 0 days ago
     Docs: https://kubernetes.io/docs/
 Main PID: 18001 (kubelet)
    Tasks: 34
   Memory: 109.5M
   CGroup: /system.slice/kubelet.service
           ├─ 2973 /opt/cni/bin/calico
           └─18001 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kuberne...

sep 27 10:09:49 nodo3 kubelet[18001]: E0927 10:09:49.222698   18001 file.go:182] Not recursing into manifest path "/e...ackup"
sep 27 10:10:09 nodo3 kubelet[18001]: E0927 10:10:09.222717   18001 file.go:182] Not recursing into manifest path "/e...ackup"
sep 27 10:10:29 nodo3 kubelet[18001]: E0927 10:10:29.241301   18001 file.go:182] Not recursing into manifest path "/e...ackup"

Lanzamos el for, para parar los contenedores

for i in $(docker ps | egrep 'admin|controller|scheduler|api|etcd' | rev | awk '{print $1}' | rev);do docker stop $i; done

Hacemos un backup de la configuración del kubeconfig

mv $HOME/.kube/config $HOME/.kube/config.old

Copiamos el kubeconfig al home del usuario

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

Definimos el propietario del kubeconfig

chown $(id -u):$(id -g) $HOME/.kube/config

Y asignamos permisos al kubeconfig

chmod 600 $HOME/.kube/config

Sustituimos el nombre en el kubeconfig, si fuera necesario.

sed -i 's/master1/loadbalancer/g' $HOME/.kube/config

Verificamos el estado de los pods del cluster con

kubectl get pods -n kube-system
# kubectl get pods -n kube-system
NAME                              READY   STATUS    RESTARTS   AGE
coredns-78dc678595-25nhc          1/1     Running   1          7d16h
coredns-78dc678595-2fcwh          1/1     Running   0          17h
etcd-nodo1                        1/1     Running   995        7d17h
etcd-nodo2                        1/1     Running   91         7d17h                    1/1     Running   2          3d23h
kube-apiserver-nodo1              1/1     Running   4          6d15h
kube-apiserver-nodo2              1/1     Running   2          6d18h
kube-controller-manager-nodo1     1/1     Running   1443       6d23h
kube-controller-manager-nodo2     1/1     Running   2175       7d22h
kube-proxy-cg4lp                  1/1     Running   18         720d
kube-proxy-dnv65                  1/1     Running   23         720d
kube-scheduler-nodo1              1/1     Running   1461       6d23h
kube-scheduler-nodo2              1/1     Running   2051       7d17h
metrics-server-56c45cf9ff-tcrms   1/1     Running   15         7d15h

Y verificamos la fecha del nuevo certificado

kubeadm alpha certs check-expiration
# kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Sep 27, 2023 10:36 UTC   365d                                    no      
apiserver                  Sep 27, 2023 10:36 UTC   365d            ca                      no      
apiserver-etcd-client      Sep 27, 2023 10:36 UTC   365d            etcd-ca                 no      
apiserver-kubelet-client   Sep 27, 2023 10:36 UTC   365d            ca                      no      
controller-manager.conf    Sep 27, 2023 10:36 UTC   365d                                    no      
etcd-healthcheck-client    Sep 27, 2023 10:36 UTC   365d            etcd-ca                 no      
etcd-peer                  Sep 27, 2023 10:36 UTC   365d            etcd-ca                 no      
etcd-server                Sep 27, 2023 10:36 UTC   365d            etcd-ca                 no      
front-proxy-client         Sep 27, 2023 10:36 UTC   365d            front-proxy-ca          no      
scheduler.conf             Sep 27, 2023 10:36 UTC   365d                                    no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Oct 04, 2030 15:28 UTC   8y              no      
etcd-ca                 Oct 04, 2030 15:28 UTC   8y              no      
front-proxy-ca          Oct 04, 2030 15:28 UTC   8y              no

Y con esto ya tendremos renovados los certificados del cluster. 😄

🧊