usługi prawne, ochrona danych, bezpieczne systemy informatyczne

ich war hier: K3S

Version [4397]

Dies ist eine alte Version von K3S erstellt von ErdaxoAdmin am 2023-02-18 15:53:56.

 

Kubernetes mit k3s

die leichtgewichtige Variante

A. Unsere Landschaft:
3x debian VM... (IP 186, 187, 188)



B. Probleme im Umgang mit YAML-Dateien
Bereits frühzeitig beim Lernen von k8s haben sich die YAML-Dateien als widerspenstig gezeigt - hier einige Hinweise, wenn Probleme auftreten:

1. Doppelpunkt (":") fehlt
error: error loading config file ".../.kube/config": yaml: line 21: could not find expected ':' 
# dies betraf Zeilen mit Schlüsseln, die durch den Texteditor jeweils in Folgezeilen
# geschoben wurden; die Schlüssel-Zeichenketten müssen aber in der Zeile hinter der
# Bezeichnung und ":" beginnen, also so:
    client-certificate-data: LS0tLS1CRUdJ...
    # und nicht so:
    client-certificate-data:
        LS0tLS1CRUdJ...


2. Credentials (Anmeldungsdaten) funktionieren nicht
# bei Ausführung von
kubectl
kubectl get nodes
# mit übernommenen Zertifikaten / Schlüsseln vom Cluster-Server darf eigentlich keine
# Benutzerabfrage mehr erfolgen, wenn alles OK ist;
# wenn der Benutzername aber abgefragt wird, dann ist in der Zuordnung von "context"
# und "user" etwas schief gegangen; dann ist zu prüfen, ob Folgendes stimmt:

    # welchem cluster ist welcher context zugeordnet:
    clusters:
    - cluster:
    ...(u. a. muss hier certificate-authority-data: ... stehen)
    name: <clustername>
   
    # nun context:
    contexts:
    - context:
          cluster: <clustername>
          user: <username>
    name: <contextname>
   
    # und auch Benutzer (user) muss stimmen
    users:
    - name: <username>
      user:
            client-certificate-data: (...)
            client-key-data: (...)

Wenn die Zuordnung stimmt, wird nicht mehr nach Benutzer gefragt, sondern kubectl direkt ausgeführt - bezogen auf den unter <cluster> genannten Server!


C. Kleines Befehlsvokabular

# proxy für die Anzeige einschalten (noch Klärungsbedarf...)
k3s kubectl proxy

# alle nodes des Systems mit grundlegenden Eigenschaften auflisten:
kubectl get nodes

# Namen der Cluster aufführen (bei uns: erst mal einer - default)
kubectl config get-clusters

# zeige alle pods (Funktionen) im Cluster
kubectl get pods -n kube-system

# zeige alle Netzwerkschnittstellen im Cluster mit ihren IP-s
kubectl get endpoints [-n kube-system]

# was "namespaces" sind, muss ich noch rauskriegen...
kubectl get namespaces

# dem node eine Bezeichnung "worker" zuweisen
kubectl label node <node-name> node-role.kubernetes.io/worker=worker


D. Cookbook
An dieser Stelle werden Befehle in entsprechender Reihenfolge gesammelt, die zur Erledigung von konkreten Aufgaben mit k8s (k3s) durchzugehen sind:

1. Einfachen Kubernetes Cluster anlegen
(der Artikelreihe bei ct folgend)
Basiert auf 3 VMs - Ubuntu 20.04 LTS oder debian.
VMs haben aufeinanderfolgende IP-s = 10.1.0.186 .187 .188
#### Vorbereitungen (start ohne traefik)
# auf jedem NODE
mkdir -p /etc/rancher/k3s/
nano /etc/rancher/k3s/config.yaml
# in der Datei nur eine Zeile einstellen:
disable: traefik

# auf dem ersten NODE:
curl -sfL https://get.k3s.io | sh -s - server --cluster-init
# test, ob alles läuft:
kubectl get nodes

# andere Mitglieder (NODEs) vorbereiten:
cat /var/lib/rancher/k3s/server/token
# (Zeichenkette kopieren) - zu den übrigen zwei übergehen und ausführen:
curl -sfL https://get.k3s.io | K3S_TOKEN=<Token> sh -s - server --server https://<IP Server 1>:6443
# statt <TOKEN> die o. g. Zeichenkette einfügen
# statt <IP Server 1> die IP des ersten NODE eingeben
# ACHTUNG: zwischen den NODEs müssen PORTs offen sein: 6443, 2379, 2380



#### Steuerungszentrale einrichten:
# auf einem mac (über homebrew):
brew install kubernetes-cli
# auf debian:
apt install kubectl

# auf den MASTER-nodes Daten für Verbindung holen:
cat /etc/rancher/k3s/k3s.yaml
# bei Problemen siehe oben!



Auf dieser Seite sind keine Kommentare vorhanden
Valid XHTML  |  Valid CSS  |  Powered by WikkaWiki