Pilih Kubernetes bare-metal di opsi platform tepi

Azure Kubernetes Service (AKS)

Jika Anda ingin menjalankan Kubernetes di tepi dan melihat bahwa solusi terkelola tidak cukup memenuhi kebutuhan Anda, Anda mungkin menjelajahi bare-metal sebagai pilihan. Dokumen ini membantu Anda menemukan opsi terbaik yang tersedia untuk kasus penggunaan Anda saat mengonfigurasi kluster Kubernetes di tepi.

Catatan

Artikel ini bukan perbandingan lengkap; sebaliknya, ini menyajikan jalur potensial untuk membuat keputusan berdasarkan pengkualifikasi utama di antara opsi umum.

Pohon keputusan untuk Kubernetes bare-metal di tepi

Rujuk pohon berikut ketika memutuskan di antara opsi yang disajikan di bawah ini untuk Kubernetes bare-metal di tepi.

Diagram memperlihatkan diagram alur untuk memutuskan opsi bare-metal apa yang akan digunakan.

Unduh file Visio dari diagram alur ini

  • MicroK8s: Kubernetes "Low Ops" yang sesuai oleh Canonical

  • K3s: Distribusi Kubernetes bersertifikat yang dibangun untuk IoT dan komputasi tepi

  • kubeadm: Alat Kubernetes untuk membuat kluster Kubernetes dari awal; yang baik untuk komputasi standar (Linux/Windows)

Catatan

Low Ops mengacu pada penurunan biaya operasi ketika beberapa tugas operasional dipisahkan atau dipermudah, seperti pembaruan otomatis atau peningkatan yang disederhanakan.

MicroK8s oleh Canonical

MicroK8s diberikan sebagai paket snap tunggal yang dapat dengan mudah diinstal pada mesin Linux dengan dukungan snap. Penginstalan alternatif tersedia untuk Windows, macOS, dan PI/ARM raspberry. Saat diinstal, MicroK8s membuat kluster simpul tunggal, yang dapat dikelola dengan alat MicroK8s. Ini dipaketkan dengan kubectl sendiri, dan add-on tertentu dapat diaktifkan (misalnya, helm, dns, ingress, metallb, dan banyak lagi). Skenario multinode, Windows node, dan ketersedia tinggi (HA) juga didukung.

Pertimbangan:

  • Ada berbagai persyaratan sumber daya, tergantung lokasi Anda ingin menjalankan MicroK8s. Rujuk dokumen produk untuk persyaratan sumber daya minimum. Contohnya:

    • Ubuntu: RAM 4 GB, ruang disk 20 GB

    • Windows: RAM 4 GB, ruang disk 40 GB

  • Beban kerja Windows hanya didukung untuk kluster MicroK8s dengan Calico CNI.

  • Setiap node pada kluster multinode MicroK8s membutuhkan lingkungannya sendiri untuk bekerja, baik VM maupun kontainer terpisah pada satu mesin atau mesin yang berbeda pada jaringan yang sama.

  • Kesulitan dapat muncul ketika menjalankan MicroK8s pada beberapa perangkat keras ARM. Rujuk dokumen untuk solusi potensial.

K3 oleh Rancher

K3s adalah distribusi Kubernetes yang ringan. K3s disebarkan sebagai biner tunggal dan dilengkapi dengan alat yang disematkan seperti kubectl dan ctr, mirip dengan MicroK8s.

Pertimbangan:

  • Biner kurang dari 100 MB, tetapi masih ada persyaratan sumber daya minimum, tergantung pada skenario Anda. Rujuk dokumen untuk persyaratan sumber daya minimum.

  • SQLite3 adalah sistem penyimpanan default, meskipun opsi lain didukung.

  • Simpul Windows saat ini tidak didukung untuk K3s.

  • HA dapat dicapai dengan database eksternal atau database yang disematkan. K3s telah menambahkan dukungan penuh untuk etcd yang disematkan pada rilis v1.19.5 + k3s1.

kubeadm

Kubeadm adalah penginstalan Kubernetes paling sederhana dari awal.

Pertimbangan:

  • Membutuhkan RAM 2 GiB (gibibyte) atau lebih per mesin.

  • Membutuhkan setidaknya 2 CPU pada node sarana kontrol.

  • Node sarana kontrol harus menjadi mesin yang menjalankan OS Linux yang kompatibel dengan deb/rpm.

  • Kebijakan dukungan penyimpangan versi dan versi Kubernetes berlaku untuk kubeadm dan untuk Kubernetes secara keseluruhan. Periksa kebijakan tersebut untuk mempelajari tentang versi Kubernetes dan kubeadm apa yang didukung.

Manajemen/Automasi

Ketika membahas automasi dan manajemen penyediaan kluster bare-metal, ada beberapa opsi untuk dijelajahi: Ansible dan Metal3.

Ansible menyediakan cara mudah untuk mengelola sumber daya jarak jauh dan karena itu merupakan kandidat utama untuk mengelola dan menggabungkan node jarak jauh ke kluster Kubernetes. Yang Anda butuhkan hanyalah biner Ansible, yang berjalan pada mesin Linux, dan SSH pada mesin jarak jauh. Metode ini menyediakan mekanisme yang fleksibel untuk menjalankan skrip arbitrer pada komputer target, yang berarti Anda dapat menggunakan Ansible dengan salah satu alat yang disebutkan di atas.

Metal3 mengambil pendekatan yang berbeda untuk memecahkan masalah ini dengan memanfaatkan konsep serupa dengan API Cluster. Anda harus memulai kluster sementara untuk menyediakan dan mengelola kluster bare-metal menggunakan objek Kubernetes asli. Pada saat penulisan, Metal3 menggunakan kubeadm dan oleh karena itu tidak mendukung distribusi Kubernetes yang ringan.

Untuk manajemen di luar penyediaan kluster, pertimbangkan untuk mempelajari tentang kluster berkemampuan Azure Arc untuk mengelola kluster Anda di Azure.

Langkah berikutnya

Untuk informasi lebih lanjut, baca artikel berikut: