Cara Menggunakan K3 untuk Menjalankan Cluster Kubernetes di Mesin Pengembangan Anda

  • Post author:
  • Post category:Tutorial

K3s adalah distribusi Kubernetes ringan yang ideal untuk penggunaan pengembangan. Sekarang menjadi bagian dari Cloud Native Computing Foundation (CNCF) tetapi pada awalnya dikembangkan oleh Rancher.

K3s dikirimkan sebagai biner tunggal dengan ukuran file di bawah 50 MB. Meskipun penampilannya kecil, K3 mencakup semua yang Anda butuhkan untuk menjalankan kluster Kubernetes yang siap produksi. Proyek ini berfokus pada perangkat keras terbatas sumber daya di mana keandalan dan kemudahan pemeliharaan menjadi perhatian utama. Sementara K3 sekarang banyak ditemukan di edge pada perangkat IoT, kualitas ini juga menjadikannya pesaing yang baik untuk penggunaan lokal oleh developer.

Memulai Dengan K3s

Menjalankan biner K3s akan memulai cluster Kubernetes di mesin host. Proses K3 utama memulai dan mengelola semua komponen Kubernetes, termasuk server API bidang kontrol, instance pekerja Kubelet, dan runtime containerd container.

Dalam praktiknya, Anda biasanya ingin K3 dimulai secara otomatis sebagai layanan. Sebaiknya Anda menggunakan skrip instalasi resmi untuk menjalankan K3 dengan cepat di sistem Anda. Ini akan mengunduh biner, memindahkannya ke jalur Anda, dan mendaftarkan layanan systemd atau openrc yang sesuai untuk sistem Anda. K3 akan dikonfigurasi untuk memulai ulang secara otomatis setelah prosesnya macet atau host Anda reboot.

$ curl -sfL https://get.k3s.io | sh -

Konfirmasi instalasi berhasil dengan memeriksa status layanan k3s:

$ sudo service k3s status

Anda siap untuk mulai menggunakan cluster Anda jika aktif (berjalan) ditampilkan dalam warna hijau.

Berinteraksi Dengan Cluster Anda

K3s bundles Kubectl jika Anda menginstalnya menggunakan skrip yang disediakan. Itu bersarang di bawah perintah k3s:

$ k3s kubectl get pods

Tidak ada sumber daya yang ditemukan di namespace default.

Anda mungkin menerima kesalahan yang terlihat seperti ini:

$ k3s kubectl get pods

WARN[0000] Tidak dapat membaca /etc/rancher/k3s/ k3s.yaml, silakan mulai server dengan –write-kubeconfig-mode untuk mengubah izin konfigurasi kube error: error memuat file konfigurasi “/etc/rancher/k3s/k3s.yaml”: open /etc/rancher/k3s/k3s.yaml : izin ditolak

Anda dapat memperbaikinya dengan menyesuaikan izin file dari jalur referensi:

$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

Sekarang Anda seharusnya dapat menjalankan perintah Kubectl tanpa menggunakan sudo.

Anda dapat tetap menggunakan Kubectl mandiri instalasi jika Anda tidak ingin bergantung pada versi terintegrasi K3s. Gunakan variabel lingkungan KUBECONFIG atau flag –kubeconfig untuk mereferensikan file konfigurasi K3s Anda saat menjalankan perintah bare kubectl:

$ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml 
$ kubectl get pods

Tidak ada sumber daya yang ditemukan di namespace default.

Contoh Workload

Anda dapat menguji cluster Anda dengan menambahkan penerapan sederhana:

$ k3s kubectl create deployment nginx –image=nginx:latest deployment.apps/nginx create $ k3s kubectl expose deployment nginx –type=LoadBalancer –port=80 service/ nginx terkena

Gunakan Kubectl untuk menemukan alamat IP dari layanan yang telah dibuat:

$ k3s kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 443/TCP 35m nginx LoadBalancer 10.43.49.20 30968/TCP 17s

Dalam contoh ini, layanan NGINX dapat diakses di 10.43.49.20. Kunjungi URL ini di browser web Anda untuk melihat halaman arahan NGINX default.

Menyetel Opsi Kubernetes

Anda dapat menyetel argumen khusus untuk masing-masing komponen Kubernetes saat Anda menjalankan K3. Nilai harus diberikan sebagai flag baris perintah ke biner K3s. Variabel lingkungan juga didukung tetapi konversi dari flag ke nama variabel tidak selalu konsisten.

Berikut adalah beberapa flag yang umum digunakan untuk mengonfigurasi instalasi Anda:

–etcd-arg – Lewatkan argumen ke Etcd.–kube-apiserver-arg – Melewati argumen ke server API Kubernetes.–kube-controller-manager-arg – Melewati argumen ke komponen Kubernetes Controller Manager.–kubelet-arg – Melewati argumen ke proses pekerja Kubelet.

Banyak opsi lain yang tersedia tersedia untuk menyesuaikan pengoperasian K3 dan klaster Kubernetes Anda. Ini termasuk fasilitas untuk menonaktifkan komponen yang dibundel seperti pengontrol Traefik Ingress (–disable traefik) sehingga Anda dapat menggantinya dengan implementasi alternatif.

Selain flag dan variabel, K3s juga mendukung file konfigurasi YAML yang jauh lebih mudah dipelihara. Simpan ini di /etc/rancher/k3s/config.yaml agar K3s menggunakannya secara otomatis setiap kali dimulai. Nama bidang harus berupa argumen CLI yang dihilangkan — prefix.

node-name: first-worker bind-address: 1.2.3.4Multi-Node Clusters

K3s memiliki dukungan penuh untuk cluster multi-node. Anda dapat menambahkan node ke cluster Anda dengan mengatur variabel lingkungan K3S_URL dan K3S_TOKEN sebelum Anda menjalankan skrip instalasi.

$ curl -sfL https://get.k3s.io | K3S_URL=https://192.168.0.1:6443 K3S_TOKEN=token sh –

Script ini akan menginstal K3s dan mengkonfigurasinya sebagai node pekerja yang terhubung ke alamat IP 192.168.0.1. Untuk menemukan token Anda, salin nilai file /var/lib/rancher/k3s/server/node-token dari mesin yang menjalankan server K3s Anda. Anda dapat memberikan file konfigurasi khusus untuk menyuntikkan kredensial registri ke dalam cluster Anda. Kredensial ini akan dibaca saat server K3s dimulai. Ini akan secara otomatis membagikannya dengan node pekerja Anda.

Buat file /etc/rancher/k3s/registries.yaml dengan konten berikut:

mirrors: example-registry.com: endpoint: – “https://example-registry.com :5000”

Ini akan memungkinkan cluster Anda menarik gambar seperti example-registry.com/example-image:latest dari server di example-registry.com:5000. Anda dapat menentukan beberapa URL di bawah bidang titik akhir; mereka akan digunakan sebagai fallback dalam urutan tertulis hingga penarikan berhasil terjadi.

Supply kredensial pengguna untuk registry Anda menggunakan sintaks berikut:

mirrors: example-registry.com: endpoint: – “https://example-registry.com: 5000” konfigurasi: “example-registry.com:5000”: auth: nama pengguna: kata sandi:

Credentials ditentukan berdasarkan titik akhir. Registri yang ditentukan dengan beberapa titik akhir memerlukan entri individual di bidang konfigurasi untuk masing-masing titik.

Endpoints yang menggunakan SSL perlu diberi konfigurasi TLS juga:

configs: “example-registry.com:5000”: auth: username: password:

Itulah berita seputar Cara Menggunakan K3 untuk Menjalankan Cluster Kubernetes di Mesin Pengembangan Anda, semoga bermanfaat. Disadur dari HowToGeek.com.