dodas.kubernetes
Kubernetes Rolle
Diese Ansible-Rolle installiert ein Kubernetes Cluster.
Rollenvariablen
Die Variablen, die an diese Rolle übergeben werden können, sowie eine kurze Beschreibung sind wie folgt:
# Version, die installiert werden soll oder neueste
kube_version: 1.28.7
# Typ des Knotens: front oder wn
kube_type_of_node: front
# IP-Adresse oder Name des Kube-Frontknotens
kube_server: "{{ ansible_default_ipv4.address }}"
# Sicherheitstoken
kube_token: "kube01.{{ lookup('password', '/tmp/tokenpass chars=ascii_lowercase,digits length=16') }}"
# Token TTL-Dauer (0 bedeutet, nicht ablaufen)
kube_token_ttl: 0
# POD-Netzwerk CIDR
kube_pod_network_cidr: 10.244.0.0/16
# Zusätzliche Argumente für Kubelet
kubelet_extra_args: ''
# Flag, um die Installation von HELM zu aktivieren
kube_install_helm: true
# Wenn wahr, Kubernetes etcd im RAMdisk ausführen
etcd_in_RAM: true
# Dashboard bereitstellen
kube_deploy_dashboard: true
# Wert, der für die kubeadm init --apiserver-advertise-address Option übergeben werden soll
kube_api_server: 0.0.0.0
# Eine Sammlung von Git-Repos und Pfaden, die im Cluster angewendet werden sollen. In folgendem Format:
# kube_apply_repos: [{repo: "https://github.com/kubernetes-incubator/metrics-server", version: "master", path: "deploy/1.8+/"}]
kube_apply_repos: []
# Flag, um den Metrics-Server zu installieren
kube_install_metrics: false
# Flag, um GPU-Unterstützung zu aktivieren
enable_gpu: false
# Name (und Version) der Ansible-Rolle, die eingeschlossen werden soll, wenn `enable_gpu == true'
gpu_support_role: git+https://baltig.infn.it/infn-cloud/ansible-role-gpu-support,vX.Y.Z
Abhängigkeiten
- ansible-role-gpu-support (wenn
enable_gpu == true
) - ansible-role-containerd (von geerlingguy)
ETCD im RAM
Anforderungen
Der Cluster muss containerd als Container-Laufzeit verwenden und etcd muss als Pod im Kubernetes-Cluster laufen, z.B. mit einer kubeadm-Cluster-Setup.
Manuelle Einrichtung für ein bestehendes Cluster
Laden Sie zuerst nerdctl von hier herunter und verschieben Sie die ausführbare Datei nach /usr/local/bin
. Dann kopieren Sie die Inhalte des Ordners files_etcdRAM
wie folgt:
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
Starten Sie daemon
neu und aktualisieren Sie crontab
:
systemctl daemon-reload
crontab /etc/cron.d/etcdRAM-etcd
Um das Speicherverzeichnis /var/lib/etcd
als RAM-Disk zu mounten, muss eine Zeile zu /etc/fstab
hinzugefügt werden:
tmpfs /var/lib/etcd tmpfs defaults,noatime,size=2g 0 0
Entfernen Sie schließlich alle Inhalte aus dem Verzeichnis /var/lib/etcd
und mounten Sie die RAM-Disk:
rm -rf /var/lib/etcd/*
mount -a
Danksagungen
Siehe auch den Beitrag und das ursprüngliche Repository, wo dies beschrieben wurde.
ansible-galaxy install dodas.kubernetes