Installation via Ansible
Das k3s Projekt verfügt über ein öffentliches Github-Repository, mit welchem man einfach sein Eigenes Kubernetes Cluster erstellen kann.
Voraussetzungen
- Server mit SSH-Zugriff
- Vorkonfigurierte Ansible Infrastruktur
Installation
Kurzzusammenfassung der Installation
- Git repo klonen
- Custom Ansible Inventory
- Ansible Playbook ausführen
- Kube-Config auf Client Kopieren
Git Repository klonen
Klonen Sie als erstes das Github-Repository in ihr gewünschter Ordner. Verwenden Sie dazu git (git clone https://github.com/k3s-io/k3s-ansible.git
). Alternativ können Sie auch das Repository als Zip herunterladen und auspacken. Navigieren Sie anschliessend in das Lokal geklonte Repository(cd k3s-ansible
).
Custom Ansible Inventory erstellen
Im k3s-ansible Repository existiert bereits ein Beispiel Inventory, dieses wird kopiert und anschliessend bearbeitet.
Kopieren des Beispiel Inventory
In diesem Beispiel wird das Beispiel-Inventory(./inventory/sample) in den Ordner my-cluster(./inventory/my-cluster) kopiert. Verwenden Sie dazu den Befehl "cp ./inventory/sample/ ./inventory/my-cluster -r
" Sie können auch mehrere Ordner erstellen, falls Sie mehrere Server Gruppen Administrieren.
Ansible-Inventory mit Hosts ergänzen
Bearbeiten Sie die Host-Datei("hosts.ini") im neu erstellten Ordner(./inventory/my-cluster). Bearbeiten Sie die Textdatei mit ihrem gewünschten Text editor. Bsp.: vim ./inventory/my-cluster/hosts.ini
Hier ist mein Beispiels Inventory
[master]
srvk3s01.voser.local ansible_port=122
[node]
srvk3s02.voser.local ansible_port=222
srvk3s03.voser.local ansible_port=322
srvk3s04.voser.local ansible_port=422
srvk3s21.voser.local ansible_port=2122
srvk3s22.voser.local ansible_port=2222
srvk3s24.voser.local ansible_port=2322
[k3s_cluster:children]
master
node
[k3s_cluster:vars]
ansible_host=home.voser.cloud
ansible_user=ansible-user
Ansible-Gruppen Variablen bearbeiten
Der Inventory Ordner beinhaltet einen Unterordner namens: "group_vars", in diesem befindet sich eine Datei namens: "all.yml". Diese Datei beinhaltet allgemeine Informationen zum kubernetes cluster, bearbeiten Sie diese nach Ihrer Infrastruktur. Das einzige was gesetzt werden muss ist die Master IP, sowie der Ansible-User, je nach Infrastruktur möchten Sie jedoch auch die anderen Informationen überarbeiten.
Bsp.: vim ./inventory/my-cluster/group_vars/all.yml
---
k3s_version: v1.21.7+k3s1
ansible_user: ansible-user
systemd_dir: /etc/systemd/system
master_ip: "172.22.0.101"
#master_ip: "{{ hostvars[groups['master'][0]]['ansible_host'] | default(groups['master'][0]) }}"
extra_server_args: "--disable servicelb"
extra_agent_args: ""