Install k0s pakai k0sctl, lumayan cepat prosesnya. Tapi karena 2 dari 4 VM saya prosesornya pakai Arm64, ada warning ECTD_UNSUPPORTED_ARCH=Arm64 override, karena memang ETCD belum support penuh prosesor Arm64

Setup yang akan kita buat di sini bukan setup HA dan bukan untuk production

CARA INSTALASI

  • Install binary k0sctl sesuai OS dan arsitektur prosesor kita, dari sini
  • Jalankan k0sctl init > k0sctl.yaml dari terminal, selanjutnya edit dengan editor kesukaan anda
kind: Cluster
metadata:
  name: k0s-cluster
spec:
  hosts:
  - ssh:
      address: 10.0.0.1
      user: root
      port: 22
      keyPath: ~/.ssh/id_rsa
    role: controller
  - ssh:
      address: 10.0.0.2
      user: root
      port: 22
      keyPath: ~/.ssh/id_rsa
    role: worker
  - ssh:
      address: 10.0.0.3
      user: root
      port: 22
      keyPath: ~/.ssh/id_rsa
    role: worker
  - ssh:
      address: 10.0.0.4
      user: root
      port: 22
      keyPath: ~/.ssh/id_rsa
    role: worker

  k0s:
    version: 1.24.2+k0s.0
    dynamicConfig: false
  • Edit sesuai kredensial (ssh, ip address, role), dalam contoh berikut saya menggunakan 4 VM, courtesy of Oracle Cloud free tier :)

1 VM sebagai controller+worker (oracle linux 7.9, arm64, 2 core, 12gb ram)
1 VM sebagai controller (ubuntu 20.04, x64, 2 core, 1gb ram)
1 VM sebagai worker (ubuntu 20.04, arm64, 2 core, 12gb ram)
1 VM sebagai worker (ubuntu 20.04, x64, 2 core, 1gb ram)

kind: Cluster
metadata:
  name: k0s-cluster
spec:
  hosts:

  - ssh:
      address: 152.11.22.33
      user: ubuntu
      port: 22
      keyPath: /Users/andramarkov/ssh1.key
    role: worker

  - ssh:
      address: 140.22.33.44
      user: ubuntu
      port: 22
      keyPath: /Users/andramarkov/ssh2.key
    role: worker

  - ssh:
      address: 152.66.77.88
      user: opc
      port: 22
      keyPath: /Users/andramarkov/ssh3.key
    role: controller+worker
    installFlags:
     - --no-taints
 
  - ssh:
      address: 152.77.88.99
      user: ubuntu
      port: 22
      keyPath: /Users/andramarkov/ssh4.key
    role: worker
 
  k0s:
    version: 1.24.2+k0s.0
    dynamicConfig: false
  • Karena nama filenya sudah saya ubah menjadi k0sctl-v8.yaml maka saya apply dengan k0sctl apply --config k0sctl-v8.yaml k0s k0s

  • Tunggu hingga proses selesai, setelah selesai export file konfigurasi ke folder ~/.kube/config
    k0s k0s

  • cek cluster-info dan node dengan kubectl cluster-info dan kubectl get nodes -o wide
    k0s

  • Selesai 😄