Manuelt K3S Cluster

Hvordan sette opp master node

1. Oppdater og installer Python og UFW

sudo apt update
sudo apt install -y curl python3-pip ufw

2. Konfigurer brannmuren ved å bruke UFW

Tillat portene som k3s bruker på Mester Node

sudo ufw allow 6443/tcp  # Kubernetes API
sudo ufw allow 8472/tcp  # Flannel VXLAN
sudo ufw allow 10250/tcp  # Kubelet
sudo ufw allow 2379/tcp   # ETCD client
sudo ufw allow 2380/tcp   # ETCD peer
sudo ufw allow 80/tcp     # HTTP server

På Arbeider Nodene

sudo ufw allow 8472/tcp  # Flannel VXLAN
sudo ufw allow 10250/tcp  # Kubelet
sudo ufw allow 80/tcp     # HTTP server

Etter du har konfigurert må du skru på UFW

sudo ufw enable

3. Installer K3S på Mester Noden

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.26.1+k3s1" sh -s - server \
  --node-external-ip $(curl -s ifconfig.me) \
  --flannel-backend=host-gw \
  --advertise-address=$(curl -s ifconfig.me) \
  --bind-address=$(curl -s ifconfig.me) \
  --node-ip=$(curl -s ifconfig.me)

Bytt v1.26.1+k3s1 til den versjonen du vil ha.

Verifiser at K3S kjører

sudo systemctl status k3s

Kommandoen over burde vise at K3S kjører på mester noden

4. Finn K3S Token

Du trenger K3S token fra mester noden for å sammenkoble de forskjellige nodene

sudo cat /var/lib/rancher/k3s/server/node-token

Lagre denne tokenen på et trygt sted, du trenger denne for de neste stegene

5. Installer K3S på Arbeider Nodene

For hver Arbeider Node du har må du kjøre de følgene kommandoene. Endre MASTER_IP med ip addressen til Mester Noden og K3S_TOKEN med tokenen du lagre i stad

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.26.1+k3s1" K3S_URL="https://<MASTER_IP>:6443" \
K3S_TOKEN="<K3S_TOKEN>" sh -s - agent --flannel-backend=host-gw --node-ip=$(curl -s ifconfig.me)

For eksempel kunne det sett sånn ut

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.26.1+k3s1" K3S_URL="https://10.12.2.50:6443" \
K3S_TOKEN="ewojgiejwiurhgiuw348g43g483gu9234gh" sh -s - agent --flannel-backend=host-gw --node-ip=$(curl -s ifconfig.me)

6. Verifiser Clusteret

Når du har sammenkoblet alle nodene kan du sjekke statusen med denne kommandoene på Mester Noden

sudo kubectl get nodes

Du burde se status Ready på nodene vis det funker

7. Installer Python HTTP Server

Dette in på Mester Noden

sudo kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: http-server
  labels:
    app: http-server
spec:
  selector:
    matchLabels:
      app: http-server
  template:
    metadata:
      labels:
        app: http-server
    spec:
      containers:
      - name: http-server
        image: python:3.9-slim
        command: ["python3", "-m", "http.server", "80"]
        ports:
        - containerPort: 80
      hostNetwork: true
EOF

For å ekspose HTTP Serveren på alle serverne kjør

Sist oppdatert