Instalasi Awanio

Kebutuhan Sistem

Untuk server production, dibutuhkan peralatan server berkualitas tinggi. Awanio mendukung klastering, yang berarti beberapa instalasi Awanio dapat dikelola secara terpusat berkat fungsionalitas klaster yang terintegrasi. Awanio dapat menggunakan penyimpanan lokal seperti DAS, SAN, NAS, serta penyimpanan bersama dan terdistribusi (Ceph).

Sistem Operasi

Sistem operasi yang dibutuhkan untuk menjalankan Awanio adalah Ubuntu Server versi 20.04.

Perangkat Keras

Production

  • Intel EMT64 or AMD64 dengan Intel VT/AMD-V CPU flag. 8 cores minimum, 16 cores atau lebih diutamakan.
  • Untuk PCI(e) passthrough CPU dengan VT-d/AMD-d CPU flag diperlukan.
  • Memori, minimal 4 GB untuk OS dan layanan Awanio. Ditambah memori khusus untuk guest. Untuk Ceph atau ZFS diperlukan memori tambahan, kira-kira 1 GB memori untuk setiap TB penyimpanan yang digunakan.
  • Penyimpanan cepat dan redundan, hasil terbaik dengan disk SSD.
  • Penyimpanan OS: RAID perangkat keras dengan cache tulis (“BBU”) yang dilindungi baterai atau non-RAID dengan cache ZFS dan SSD.
  • Penyimpanan VM: Untuk penyimpanan lokal, gunakan RAID perangkat keras dengan cache tulis yang didukung baterai (BBU) atau non-RAID untuk ZFS. Baik ZFS maupun Ceph tidak kompatibel dengan pengontrol RAID perangkat keras. Penyimpanan bersama dan terdistribusi juga dimungkinkan.
  • NIC Gbit redundan, NIC tambahan tergantung pada teknologi penyimpanan pilihan dan penyiapan klaster – 10 Gbit dan lebih tinggi juga didukung.
  • Tiga NIC

Perangkat Keras Minimum (hanya untuk testing)

  • CPU: 64bit (Intel EMT64 atau AMD64)
  • Intel VT/AMD-V capable CPU/Mainboard (untuk KVM Full Virtualization support)
  • Minimum 4 GB RAM
  • Hard drive
  • Dua NIC

Jaringan

Setiap node yang tergabung ke dalam klaster harus memiliki setidaknya 2 NIC. NIC pertama akan digunakan untuk internal klaster management. NIC ke dua digunakan untuk external networking antara workload yang ada di dalam clsuter dengan workload yang ada di luar klaster. Nama NIC yang digunakan di setiap node harus sama.

Networking

Klaster Publik

Di lingkungan klaster publik, jaringan eksternal adalah IP publik yang akan digunakan oleh setiap vm.

Klaster Privat

Di lingkungan klaster privat, jaringan eksternal adalah rentang IP yang digunakan bersama dengan server atau VM yang berada di luar klaster. Dalam model topologi ini, jika perlu masuk dari IP publik, maka satu atau beberapa node harus memiliki NIC ketiga yang terhubung langsung ke WAN. IP ini kemudian ditentukan dalam direktif ingressExternalIPs dalam file cluster-config.

Dalam model ini, permintaan eksternal hanya dapat dilakukan melalui Layanan Ingress dan layanan Load Balancer.

Penyimpanan

Awanio menggunakan Ceph sebagai SDS dalam mengelola storage. Ada dua opsi untuk konfigurasi storage yang bisa digunakan, yaitu internal dan external.

Penyimpanan Internal

Konfigurasi ini adalah di mana sebagian atau seluruh node yang tergabung di dalam custer berperan sebagai storage node. Storage yang digunakan bisa berupa local disk dengan tipe SSD atau Nvme atau tipe external distributed storage.

Penyimpanan Lokal

Untuk mengonfigurasi node penyimpanan, setidaknya diperlukan salah satu dari jenis penyimpanan lokal berikut:

  • Perangkat raw (tanpa partisi atau sistem file yang diformat)
  • Partisi raw (tanpa sistem file yang diformat)
  • Volume Logik LVM (tanpa sistem file yang diformat)
  • Persistent Volumes tersedia dari kelas penyimpanan dalam mode blok

Untuk melakukan pengecekan bisa dengan perintah lsblk -f

Informasi di FSTYPE harus kosong.

$ lsblk -f
NAME                  FSTYPE      LABEL UUID                                   MOUNTPOINT
vda
└─vda1                LVM2_member       >eSO50t-GkUV-YKTH-WsGq-hNJY-eKNf-3i07IB
  ├─ubuntu--vg-root   ext4              c2366f76-6e21-4f10-a8f3-6776212e2fe4   /
  └─ubuntu--vg-swap_1 swap              9492a3dc-ad75-47cd-9596-678e8cf17ff9   [SWAP]
vdb

Dalam contoh di atas disk yang bisa digunakan adalah vdb.

Untuk menjadikan disk atau partition raw disk atau raw formatted, gunakan perintah berikut:

DISK="/dev/sdX"

# Zap disk ke keadaan yang baru dan dapat digunakan (zap-all penting, karena MBR harus bersih)
sgdisk --zap-all $DISK

# Hapus sebagian besar awal disk untuk menghapus lebih banyak metadata LVM yang mungkin ada
dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync

# SSD mungkin lebih baik dibersihkan dengan blkdiscard daripada dd
blkdiscard $DISK

# Beri tahu OS tentang perubahan tabel partisi
partprobe $DISK

Penyimpanan Eksternal

Penyimpanan Eksternal harus menggunakan protocol LUN. Disk yang sudah attached ke node penyimpanan harus dipastikan dalam format raw device. Untuk memastikannya, jalankan perintah-perintah berikut:

sudo multipath -ll

Berikut perintah untuk menjadikan raw disk:

sudo multipath -f mpathb

Untuk mengaktifkan disk tersebut, jalankan perintah:

sudo multipath

External Ceph Storage

Todo…

Linux User and Inter-Node SSH Access

Swap Off

Setiap Node harus dalam kondisi swap off.

  1. Cek apakah OS memiliki swap, cat /proc/swaps.
  2. Apabila ada, hapus swap dengan perintah swapoff -a.
  3. Hapus swap secara permanent di dalam file /etc/fstab.

File Konfigurasi Klaster

Berikut adalah contoh konfigurasi untuk instalasi klaster.

Example

apiVersion: awanio.io/v1alpha1
kind: ClusterConfig
metadata:
  license: "xxx-xxx-xxx-xxx"
  features: "computes,object-storage,kubernetes,support"
spec:
  rootUser:
    name: Awanio
    username: awanio
    password: xxx-xxx-xxx
    email: ask@awan.io
  server:
    ingressExternalIPs:
      - 172.31.31.19
      - 108.137.91.215
    balancer:
      name: eth2
      ip: 103.179.254.252/24
    nics:
      internal:
        name: ens5
      external:
        name: eth1
        ip: 103.179.254.253/24
        mac: 16:52:f3:13:6a:25
        gateway: 103.179.254.254/24
        gatewayNodes: awid1
    subnets:
      workload: 10.0.0.0/16
      workloadGateway: 10.0.0.1
      service: 10.1.0.0/16
      external: 103.179.255.0/24
    nodes:
      - name: awid1
        role: control-plane-worker
        internalIP: 172.31.31.19/20
        disk:
          - /dev/nvme1n1
      - name: awid3
      # Pilihan: control-plane, worker atau control-plane-worker
        role: worker
        # user ini harus sudoers dan memiliki SSH public key pada remote server
        user: ubuntu
        sshPort: "22"
        sshPrikeyFile: /home/ubuntu/.ssh/id_rsa
        internalIP: 172.31.17.44/20
        disk:
          - /dev/nvme1n1
    ExternalCephCluster:
      fsid: null
      mondata: null
      adminSecret: null

Installer CLI Awanio

Awanio menyediakan installer dalam format CLI yang dapat di-download di sini.

wget https://storage.awan.io/assets/awctl-linux-amd64.tar.gz
tar -xvf awctl-linux-amd64.tar.gz
sudo chmod +x ./awctl
sudo mv ./awctl /usr/local/bin/
sudo awctl --help

Setelah semua file konfigurasi telah siap, jalankan perintah berikut untuk memulai proses instalasi:

sudo awctl -f klaster-config.yaml

Setelah proses instalasi selesai, tampilan selanjutnya adalah alamat untuk mengakses UI untuk platform dan dashboard.

+----------------------------------------------------+
|                Awanio cluster access               |
+-----------------------+----------------------------+
| Dashboard             | http://172.31.31.19:32337/ |
+-----------------------+----------------------------+
| Platform              | http://172.31.31.19:31080/ |
+-----------------------+----------------------------+
| API                   | http://172.31.31.19/v2     |
+-----------------------+----------------------------+