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 yang dibutuhkan untuk menjalankan Awanio adalah Ubuntu Server versi 20.04.
- 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
- 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
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.
Di lingkungan klaster publik, jaringan eksternal adalah IP publik yang akan digunakan oleh setiap vm.
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.
Awanio menggunakan Ceph sebagai SDS dalam mengelola storage. Ada dua opsi untuk konfigurasi storage yang bisa digunakan, yaitu internal dan external.
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.
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 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
Todo…
- User yang digunakan harus sudo user
- Sudo user tersebut harus bisa menjalankan perintah tanpa perlu lagi memasukan password. Lihat panduannya di [sini] (https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/).
- Setiap node harus sudah ada ssh private key satu sama lain.
Setiap Node harus dalam kondisi swap off.
- Cek apakah OS memiliki swap,
cat /proc/swaps
. - Apabila ada, hapus swap dengan perintah
swapoff -a
. - Hapus swap secara permanent di dalam file
/etc/fstab
.
Berikut adalah contoh konfigurasi untuk instalasi klaster.
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
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 |
+-----------------------+----------------------------+