dodas.kubernetes
Rol de Kubernetes
Este rol de Ansible instala un clúster de Kubernetes.
Variables del Rol
Las variables que se pueden pasar a este rol y una breve descripción son las siguientes:
# Versión a instalar o la última
kube_version: 1.28.7
# Tipo de nodo: front o wn
kube_type_of_node: front
# Dirección IP o nombre del nodo frontal de Kube
kube_server: "{{ ansible_default_ipv4.address }}"
# Token de seguridad
kube_token: "kube01.{{ lookup('password', '/tmp/tokenpass chars=ascii_lowercase,digits length=16') }}"
# Duración del TTL del token (0 para no expirar)
kube_token_ttl: 0
# CIDR de la red de POD
kube_pod_network_cidr: 10.244.0.0/16
# Argumentos adicionales para Kubelet
kubelet_extra_args: ''
# Bandera para instalar HELM
kube_install_helm: true
# Si es verdadero, ejecuta etcd de Kubernetes en ramdisk
etcd_in_RAM: true
# Desplegar el Dashboard
kube_deploy_dashboard: true
# Valor para pasar a la opción kubeadm init --apiserver-advertise-address
kube_api_server: 0.0.0.0
# Un conjunto de repositorios git y rutas a aplicar en el clúster. Siguiendo este formato:
# kube_apply_repos: [{repo: "https://github.com/kubernetes-incubator/metrics-server", version: "master", path: "deploy/1.8+/"}]
kube_apply_repos: []
# Bandera para instalar Metrics-Server
kube_install_metrics: false
# Bandera para habilitar soporte GPU
enable_gpu: false
# Nombre (y versión) del rol de Ansible a incluir si `enable_gpu == true'
gpu_support_role: git+https://baltig.infn.it/infn-cloud/ansible-role-gpu-support,vX.Y.Z
Dependencias
- ansible-role-gpu-support (si
enable_gpu == true
) - ansible-role-containerd (por geerlingguy)
ETCD en RAM
Requisitos
El clúster debe estar utilizando containerd como tiempo de ejecución de contenedores y etcd debe estar ejecutándose como un pod en el clúster de Kubernetes, como en una configuración de clúster kubeadm.
Configuración manual para un clúster existente
Primero, descarga nerdctl desde aquí y mueve el ejecutable a /usr/local/bin
. Luego, copia los contenidos de la carpeta files_etcdRAM
de la siguiente manera:
files_etcdRAM/usr/lib/systemd/system/kubelet.service.d ---> /usr/lib/systemd/system/kubelet.service.d
files_etcdRAM/etc/cron.d ---> /etc/cron.d
files_etcdRAM/opt/etcdRAM/bin ---> /opt/etcdRAM/bin
Reinicia el daemon
y actualiza el crontab
:
systemctl daemon-reload
crontab /etc/cron.d/etcdRAM-etcd
Montar el directorio de almacenamiento /var/lib/etcd
como un ramdisk requiere agregar una sola línea a /etc/fstab
:
tmpfs /var/lib/etcd tmpfs defaults,noatime,size=2g 0 0
Finalmente, elimina todo el contenido del directorio /var/lib/etcd
y monta el ramdisk:
rm -rf /var/lib/etcd/*
mount -a
Créditos
Consulta también la publicación y el repositorio original, donde se describió esto.
ansible-galaxy install dodas.kubernetes