Skip to main content

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

  1. Git repo klonen
  2. Custom Ansible Inventory
  3. Ansible Playbook ausführen
  4. 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: ""

Ansible Playbook ausführen

Kube-Config auf Cleint Kopieren