awctl CLI

Awanio menyediakan awctl cli untuk membantu seseorang mengatur dan mengelola Awanio Cloud Platform. Perintah ini hanya mendukung berjalan di Debian 11 di atas dan Ubuntu 20.04 di atas saat ini. Kami berencana untuk mendukung RedHat 9 pada milestone berikutnya.

Instal awctl CLI

Sebelum menjalankan operasi berikut, kita perlu mengunduh awctl CLI dari repositori publik Awanio.

curl -O 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 --version

Pembuat File Konfigurasi Cluster

Untuk melakukan instalasi melalui CLI, Anda perlu menyiapkan file konfigurasi cluster. File ini berisi informasi yang diperlukan untuk membuat cluster baru. Untuk membuat template, jalankan perintah berikut:

sudo awctl generate-conf-file

File baru akan dibuat. Untuk mendapatkan detail lebih lanjut tentang cara menggunakan file ini, silakan lihat halaman Skema File Konfigurasi Cluster.

Solusi Paket Semua Dalam Satu

Untuk menginstal secara langsung termasuk semua paket dan CRD yang diperlukan, gunakan perintah ini:

sudo awctl init -f cluster-config.yaml

Instalasi Bertahap

Untuk menginstal Awanio secara bertahap, gunakan perintah berikut:

  1. Hanya menginstal paket linux yang diperlukan seperti, containerd dll.

    sudo awctl init -f cluster-config.yaml --package-only
  2. Memulai cluster di semua node tanpa SDN dan SDS apa pun.

    sudo awctl init -f cluster-config.yaml --cluster-only
  3. Flag ini akan dipasang ke cluster dasar Kubernetes.

    sudo awctl init -f cluster-config.yaml --sdn-only
  4. Flag ini akan menginstal SDS ke cluster dasar.

    sudo awctl init -f cluster-config.yaml --sds-only
  5. Menginstal semua komponen eksternal yang diperlukan.

    sudo awctl init -f cluster-config.yaml --module-only
  6. Menginstal semua komponen awanio.

    sudo awctl install -f cluster-config.yaml

Instalasi Antarmuka Web

Untuk melakukan instalasi melalui antarmuka web, jalankan perintah ini:

sudo awctl webui --port 8081

Kemudian buka halaman web instalasi di http://IP-NODE:8081. Sesuaikan informasi IP-NODE dengan IP server yang akan digunakan untuk instalasi.

Penggabungan Node Baru ke Cluster yang Ada

  1. Hasilkan token gabungan di node bidang kontrol yang ada.

    sudo awctl join-token
  2. Gunakan token yang dihasilkan untuk menggabungkan node ke cluster.

    sudo awctl join \
    --token=xxxxx \
    --endpoint=192.168.1.10:3774 \
    --role=worker \
    --node-ip=192.168.1.11
ParameterDeskripsiRequirement
tokenToken for join to existing cluster generated by sudo awctl join-token command.required
endpointEndpoint management node existing cluster.required
roleNode role in cluster. The option is: control-plane-worker, control-plane and worker.required
node-ipThis node IP address that use to communicate with the management node.required
exclude-packageExclude OS package install if the new node already has required packages.required

Update Awanio

Perintah berikut akan memperbarui komponen API, cronjob, dan UI.

sudo awctl update

Periksa Versi

Untuk memeriksa versi saat ini, jalankan:

sudo awctl version

Untuk memeriksa versi terbaru, jalankan:

sudo awctl version --all

Update awctl Binary

Jalankan perintah berikut untuk memperbarui file binary awctl.

sudo awctl awctl self-update

Patch Cluster Issue

Jalankan perintah berikut untuk melakukan perbaikan masalah yang ada di clsuter yang disebabkan oleh awctl pada versi sebelumnya.

sudo awctl patch

Menampilkan URL Cluster

Untuk menampilkan URL cluster, jalankan perintah berikut:

sudo awctl cluster-access -f cluster-config.yaml

Uninstall Komponen Awanio

Untuk menghapus komponen Awanio di cluster, gunakan perintah berikut:

sudo awctl uninstall -f cluster-config.yaml

Destroy Existing Cluster

Untuk men-destroy cluster yang ada, jalankan perintah berikut:

sudo awctl destroy -f cluster-config.yaml

Skema File Konfigurasi Cluster

File konfigurasi cluster terinspirasi dari file ClusterConfig dari eksctl.

apiVersion: awanio.io/v1alpha1
kind: ClusterConfig
metadata:
  license: "GILF-ET4G-YD28-I4NK"
  features: "computes,object-storage,kubernetes,support"
  name: Cluster Name
spec:
  rootUser:
    name: Awanio
    username: awanio
    password: xxx-xxx-xxx
    email: ask@awan.io
  server:
    managementFloatingIP: 172.31.31.20
    ingressExternalIPs:
      - 172.31.31.19
      - 108.137.91.215
    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
        user: ubuntu
        sshPort: "22"
        sshPrikeyFile: /home/ubuntu/.ssh/id_rsa
        internalIP: 172.31.31.19/20
        disk:
          - /dev/nvme1n1
      - name: awid3
      # the option is: control-plane, worker and control-plane-worker
        role: worker
        # this user should sudoers and have the public ssh key in remote servers
        user: ubuntu
        sshPort: "22"
        sshPrikeyFile: /home/ubuntu/.ssh/id_rsa
        internalIP: 172.31.17.44/20
        disk:
          - /dev/nvme1n1

Properti

PropertiTipe DataDeskripsiNilai Default
apiVersionstringawanio.io/v1alpha1
kindstring-ClusterConfig
metadataobject--
metadata.licensestring--
metadata.featuresstring-computes,object-storage,kubernetes,support