container:kubernetes:k3s_install
This is an old revision of the document!
Table of Contents
Kubernetes via K3s installieren
Gestest wurde das ganze auf drei virtuellen Ubuntu 20.04 Nodes
Vorbereitung Docker
Ich hab in meinem Beispiel Docker verwendet. K3s kommt normal mit Containerd.
Auf alle Nodes: apt install docker.io -y systemctl enable docker systemctl start docker systemctl status docker
Installation K3s
Auf der Master Node: export INSTALL_K3S_EXEC=" --docker --disable servicelb --disable traefik" curl -sfL https://get.k3s.io | sh - systemctl status k3s kubectl get nodes
Bash Autocomplete kubectl
Auf der Master Node: echo 'source <(kubectl completion bash)' >> ~/.bashrc source .bashrc
Worker Nodes hinzufügen
Um eine Work Node hinzuzufügen brauchen wir den Token der Masternode
Auf der Master Node: root@kube01:~# cat /var/lib/rancher/k3s/server/node-token K105c7781e15a74582915cbd3b86a8b83885f594894fd3773a402b14a3fd64a67f9::server:afc103a8e6e02aa07535bfe5bcc062a8
Join der Worker Nodes
Auf den Worker Nodes: Beispiel: curl -sfL http://get.k3s.io | K3S_URL=https://<IP-MASTER>:6443 K3S_TOKEN=<TOKEN> sh -s - --docker curl -sfL http://get.k3s.io | K3S_URL=https://192.168.88.121:6443 K3S_TOKEN=K105c7781e15a74582915cbd3b86a8b83885f594894fd3773a402b14a3fd64a67f9::server:afc103a8e6e02aa07535bfe5bcc062a8 sh -s - --docker
Kontrolle des Clusters
Auf der Master Node: root@kube01:~# kubectl get nodes NAME STATUS ROLES AGE VERSION kube01 Ready master 52m v1.19.3+k3s3 kube03 Ready <none> 49m v1.19.3+k3s3 kube02 Ready <none> 50m v1.19.3+k3s3
Installation Loadbalancer
Bei der Installation von K3s haben ich den Traefik LB ausgenommen und es wird der Metallb installiert da dieses System nicht in einer Cloud durchgeführt wird.
Die aktuelle Manifest'e kann man sich auf der Hersteller Seite ansehen und runerladen.
Auf der Master Node: kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/namespace.yaml kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/metallb.yaml # On first install only kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
Netzwerk Infos für den LB konfigurieren
Auf der Master Node:
nano metallb_network.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: address-pool-1
protocol: layer2
addresses:
- 192.168.88.124-192.168.88.129
kubectl apply -f metallb_network.yaml
container/kubernetes/k3s_install.1606385779.txt.gz · Last modified: by stone
