Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Menjalankan Cluster Kubernetes Di Docker Dengan K3d

Posted on September 16, 2022

K3d adalah pembungkus sumber terbuka di sekitar distribusi Kubernetes Rancher/SUSE K3s yang memungkinkan Anda menjalankan bidang kontrol di dalam Docker. Seluruh tumpukan berjalan di Docker, memberi Anda kluster terkemas sepenuhnya yang ringan dan mudah disiapkan.

Meskipun K3s dirancang untuk berbagai alur kerja, K3d lebih berfokus secara khusus pada situasi pengembangan di mana Anda sudah menggunakan Docker. Ini memungkinkan Anda menjalankan klaster Kubernetes di host Docker yang ada tanpa menjalankan mesin virtual atau layanan sistem lainnya.

Artikel ini akan menunjukkan kepada Anda cara memulai dan menjalankan klaster K3d sederhana. Anda memerlukan Kubectl dan Docker v20.10.5 atau yang lebih baru yang sudah terinstal di sistem Anda sebelum memulai. K3d bekerja di Linux, Mac (termasuk melalui Homebrew), dan Windows (melalui Chocolatey). Panduan ini berfokus pada penggunaan dengan Linux; Petunjuk penginstalan k3d CLI untuk platform lain tersedia di dokumentasi.

Menginstal K3d CLI

K3d CLI menyediakan perintah manajemen untuk membuat dan mengelola klaster Anda. Anda dapat menemukan CLI terbaru di GitHub atau menjalankan skrip instalasi untuk secara otomatis mendapatkan unduhan yang benar untuk sistem Anda.

$ curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

Skrip menyimpan biner k3d ke direktori /usr/local/bin Anda. Coba jalankan perintah k3d version untuk memeriksa instalasi Anda berhasil:

$ k3d version k3d version v5.4.6 k3s version v1.24.4-k3s1 (default)

Membuat Cluster

K3d CLI menyediakan perintah pembuatan cluster untuk membuat dan memulai cluster baru secara otomatis:

$ k3d cluster create INFO[0000] Persiapan: Network INFO[0000] Membuat jaringan `k3d-k3s-default` INFO[0000] Membuat volume gambar k3d-k3s-default-images INFO[0000] Memulai node alat baru… INFO[0001] Membuat simpul `k3d-k3s-default-server-0` INFO[0001] Menarik gambar `ghcr.io/k3d-io/k3d-tools:5.4.6` INFO[0002] Menarik gambar `docker.io /rancher/k3s:v1.24.4-k3s1` INFO[0002] Memulai Node `k3d-k3s-default-tools` INFO[0008] Membuat LoadBalancer `k3d-k3s-default-serverlb` INFO[0009] Menarik gambar `ghcr. io/k3d-io/k3d-proxy:5.4.6` INFO[0012] Menggunakan node k3d-tools untuk mengumpulkan informasi lingkungan INFO[0012] HostIP: using network gateway 172.25.0.1 alamat INFO[0012] Memulai cluster `k3s- default` INFO[0012] Memulai server… INFO [0012] Memulai Node `k3d-k3s-default-server-0` INFO[0016] Semua agen sudah berjalan. INFO[0016] Memulai helper… INFO[0016] Memulai Node `k3d-k3s-default-serverlb` INFO[0022] Menyuntikkan record untuk hostAliases (termasuk host.k3d.internal) dan untuk 2 anggota jaringan ke dalam peta konfigurasi CoreDNS. .. INFO[0025] Cluster `k3s-default` berhasil dibuat! INFO[0025] Sekarang Anda dapat menggunakannya seperti ini: kubectl cluster-info

Kluster akan diberi nama k3s-default ketika Anda menjalankan perintah tanpa argumen apa pun. Tetapkan nama Anda sendiri dengan memasukkannya sebagai argumen pertama perintah:

$ k3d cluster create demo ...

K3d secara otomatis memodifikasi file konfigurasi Kubernetes Anda (.kube/config) untuk menyertakan koneksi ke cluster baru Anda. Ini menandai koneksi sebagai default sehingga perintah kubectl sekarang akan menargetkan lingkungan K3d Anda.

$ kubectl cluster-info

Control plane Kubernetes berjalan di https://0.0.0.0:42879 CoreDNS berjalan di https://0.0.0.0: 42879/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Metrics-server berjalan di https://0.0.0.0:42879/api/v1/namespaces/kube-system/services/https :metrics-server:https/proxy

Menjalankan docker ps akan menunjukkan dua kontainer telah dimulai, satu untuk K3 dan satu lagi untuk proksi K3d yang meneruskan lalu lintas ke cluster Anda:

$ docker ps CONTAINER ID IMAGE COMMAND NAMA PORT STATUS YANG DIBUAT 9b6b610ad312 ghcr.io/ k3d-io/k3d-proxy:5.4.6 “/bin/sh -c nginx-pr…” 3 menit yang lalu Naik 3 menit 80/tcp, 0.0.0.0:42879->6443/tcp k3d-k3s-default -serverlb 842cc90b78bf rancher/k3s:v1.24.4-k3s1 “/bin/k3s server –t…” 3 menit yang lalu Naik 3 menit k3d-k3s-default-server-0

Menggunakan Cluster Anda

Gunakan perintah Kubectl yang sudah dikenal untuk berinteraksi dengan cluster Anda dan men-deploy Pod Anda:

$ kubectl run nginx --image nginx:latest pod/nginx created 
$ kubectl expose pod/nginx --port 80 --type service NodePort/nginx terkena

Untuk mengakses server NGINX Anda, pertama-tama temukan alamat IP yang ditetapkan untuk Kubernetes Anda Node:

$ kubectl dapatkan node -o lebar NAMA STATUS PERAN USIA VERSI INTERNAL-IP EKSTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER- RUNTIME k3d-k3s-default-server-0 Pesawat kontrol siap, master 102s v1.24.4+k3s1 172.27.0.2 K3s dev 5.4.0-125-generic containerd://1.6.6-k3s1

IP yang benar untuk digunakan adalah 172.27. 0.2.

Selanjutnya temukan NodePort yang ditetapkan untuk layanan nginx Anda:

$ kubectl get services

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 443/TCP 5 m49s nginx NodePort 10.43.235.233 80:31214/TCP 1s

Nomor port yang terbuka adalah 31214. Membuat permintaan ke 172.17.0.2:31214 akan mengeluarkan halaman selamat datang NGINX default:

$ curl http://172.17.0.2:31214

Selamat datang di nginx ! …

Anda bisa mendapatkan panduan lebih lanjut tentang mengekspos layanan dan menyiapkan jaringan Ingress dalam dokumentasi K3d.

Mengaktifkan Bendera K3s

Perintah pembuatan klaster membungkus proses pembuatan klaster K3s standar. Anda dapat meneruskan argumen ke K3 dengan menyediakan flag –k3s-arg. Nilai flag harus berupa argumen yang akan disertakan saat K3d memanggil biner K3s.

$ k3s cluster create --k3s-arg "--disable=traefik"

Contoh ini menginstruksikan K3 untuk menonaktifkan komponen Traefik bawaannya.

Mengakses Layanan yang Berjalan di Host

Beberapa beban kerja yang Anda jalankan di K3d mungkin perlu mengakses layanan yang sudah berjalan di host Docker Anda. K3d menyediakan nama host yang disebut host.k3d.internal dalam konfigurasi DNS default-nya. Ini akan secara otomatis menyelesaikan ke mesin host Anda. Anda dapat mereferensikan nama host khusus ini di dalam Pod Anda untuk mengakses database yang ada, berbagi file, dan API lain yang berjalan di luar Kubernetes.

Menggunakan Gambar Docker Lokal

Kluster K3d/K3s Anda tidak dapat mengakses image Docker lokal Anda. Cluster dan semua komponennya berjalan di dalam Docker. Mencoba menggunakan gambar pribadi yang hanya ada di host akan gagal dan melaporkan kesalahan.

Ada dua cara untuk menyelesaikan ini: dorong gambar Anda ke registri, atau gunakan fitur impor gambar K3d untuk menyalin gambar lokal ke dalam cluster Anda. Metode pertama umumnya lebih disukai karena memusatkan penyimpanan gambar Anda dan memungkinkan Anda mengakses gambar dari lingkungan apa pun. Namun, saat menguji perubahan lokal dengan cepat, Anda mungkin ingin langsung mengimpor gambar yang baru saja Anda buat:

$ k3d image import demo-image:latest

Perintah ini akan membuat demo-image:latest tersedia di dalam cluster Anda.

K3d juga dapat membuat dan mengekspos registri gambar untuk Anda. Registri paling baik dibuat bersama cluster Anda karena K3d kemudian dapat secara otomatis mengonfigurasi akses cluster:

$ k3d cluster create --registry-create demo-registry

Ini memulai cluster baru dengan registri yang disebut demo-registry. Registri akan berjalan dalam wadah Docker-nya sendiri. Anda dapat menemukan nomor port tempat registri terbuka dengan menjalankan docker ps -f name=-registry, di mana nama cluster Anda. Mendorong image ke registry ini akan membuatnya dapat diakses oleh Pod di cluster.

$ tag docker Anda demo-image:latest k3d-demo-registry.localhost:12345/demo-image:latest 
$ docker push k3d-demo-registry.localhost: 12345/demo-image:latest

Anda juga dapat membuat registry sesuai permintaan, tetapi Anda harus mengonfigurasi ulang cluster secara manual untuk menyediakan detail koneksi.

Menghentikan Cluster

Cluster K3d Anda akan terus berjalan hingga Anda menghentikannya sendiri. Perintah cluster stop berhenti menjalankan container Docker sambil mempertahankan data cluster Anda:

$ k3d cluster stop k3s-default

Mulai ulang cluster Anda di masa mendatang menggunakan perintah cluster start:

$ k3d cluster start k3s-default

Menghapus Cluster Anda

Anda dapat menghapus cluster kapan saja dengan menjalankan perintah hapus cluster dan berikan namanya. Ini akan menghapus semua jejak cluster, menghapus wadah Docker dan volume yang menyediakannya. Menghapus semua cluster Anda akan membawa host Anda kembali ke kondisi yang bersih dengan hanya menginstal K3d CLI.

$ cluster k3d delete k3s-default INFO[0000] Menghapus cluster `k3s-default` INFO[0001] Menghapus jaringan cluster `k3d-k3s -default` INFO[0001] Menghapus 2 volume terlampir… INFO[0001] Menghapus detail cluster dari kubeconfig default… INFO[0001] Menghapus file kubeconfig mandiri (jika ada)… INFO[0001] Berhasil dihapus cluster k3s-default!

Proses penghapusan secara otomatis menghapus referensi ke cluster dari Kubeconfig.

K3d memungkinkan Anda menjalankan cluster Kubernetes dalam container. Ini menyediakan lingkungan K3 yang lengkap di mana pun Docker tersedia. K3d mendukung banyak node, memiliki dukungan terintegrasi untuk pendaftar gambar, dan dapat digunakan untuk membuat cluster yang sangat tersedia dengan beberapa bidang kontrol.

Pengembang yang sudah menjalankan Docker dapat menggunakan K3d untuk menambahkan Kubernetes dengan cepat ke lingkungan kerja mereka. K3d ringan, mudah dikelola, dan tidak menambahkan layanan sistem lain ke mesin Anda. Ini menjadikannya pilihan yang bagus untuk penggunaan lokal tetapi ketergantungannya pada Docker berarti mungkin tidak cocok untuk host produksi di mana Anda tidak ingin menambahkan ketergantungan lain. Distribusi Kubernetes lainnya seperti Minikube, Microk8s, dan K3 biasa semuanya merupakan alternatif yang layak.

Itulah berita seputar Menjalankan Cluster Kubernetes Di Docker Dengan K3d, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Inilah Syarat dan Cara Pendaftaran IMEI Internasional Mulai Mei 2026
  • Bocoran Spek Samsung Galaxy S27 Ultra Nih, Kamera 3X Hilang + Teknologi AI
  • Inilah Perbedaan Motorola G47 dan Motorola G45, Cuma Kamera 108 Megapiksel Doang?
  • Update Baru Google Gemini: Bisa Bikin File Word, PDF, Excel secara Otomatis
  • Rekomendasi Motor Listrik 2026 Anti Mogok!
  • Ini Loh Honda Vision 110, Motor Baru Seharga Beat & Rangka eSAF Khusus Pasar Eropa
  • Inilah Mobil-Mobil Paling Cocok Transisi ke Bioetanol E20 dan Biodiesel B50!
  • Inilah Ternyata Batas Minimal Daya Cas Mobil Listrik di Rumah
  • DJP Geser Batas Akhir Lapor Pajak Sampai 31 Mei 2026
  • PKB Tanggapi Dingin Usul Yusril Ihza Mahendra Soal Parliamentary Treshold 13 Kursi
  • LPTNU Kritik Keras Rencana Penutupan Prodi: Kenapa Tidak Komprehensi & Berbasis Problematika Nyata?
  • Gus Rozin PWNU Jawa Tengah Setuju Cak Imin, Konflik PBNU bikin Warga Kesal dan Tidak Produktif
  • Pengamat: Prabowo Harus Benahi KAI, Aktifkan juga Jalur Kereta Lama & Baru
  • Sekjend PBNU: Jadwal Muktamar Usulan PWNU Sejalan Hasil Rapat Pleno & Rais Aam
  • PKB Desak Hukuman Maksimal Kasus Little Aresha & Evaluasi Total Sistem Penitipan Anak secara Nasional
  • PKB Usul Modernisasi Sistem Kereta dan CCTV di Kabin Masinis, Setuju?
  • Menteri PPA Arifah Fauzi Minta Maaf Soal Polemik Pindah Gerbong Wanita di KRL
  • Cara Kirim Robux Mudah di Roblox Beli Skin Shirt Preview
  • Kronologi kasus dugaan penyebaran konten asusila oleh anak anggota DPRD Kutai Barat?
  • Inilah Alasan Kenapa Gelembung Air di Luar Angkasa Bisa Jadi Eksperimen Fisika yang Keren Banget
  • Inilah Contoh Naskah Doa Upacara Hardiknas 2026 yang Syahdu dan Penuh Makna
  • Inilah 10 Peringkat SMP di Daerah Istimewa Yogyakarta Berdasarkan Hasil TKA TKAD 2025/2026 Terbaru
  • Inilah Cara Download FF Beta Versi Terbaru 2026, Lengkap Dengan Cara Daftar Advanced Server Resmi
  • Inilah Cara Menghilangkan YouTube Shorts di Beranda Biar Nggak Menghambat Scrolling Kalian!
  • Inilah Kabar Gembira Program Magang Nasional 2026, Kuota Naik Drastis Jadi 150 Ribu Peserta!
  • Inilah House of Amartha: Mengenal Bisnis Thariq Halilintar di Balik Pernikahan Mewah El Rumi dan Syifa Hadju
  • Inilah Cara Kuliah S1-S2-S3 Gratis dan Cepat Lewat Beasiswa BIB Kemenag Jalur Akselerasi 2026
  • Inilah Aturan Baru Penugasan Guru Non-ASN 2026, Nasib Kalian Ditentukan Sampai Tanggal Ini!
  • Inilah Cara Daftar Pra SPMB Banten 2026 Biar Proses Masuk Sekolah Jadi Makin Lancar
  • Inilah Rincian Biaya Jalur Mandiri Untirta 2026 Lengkap Per Fakultas dan Program Studi
  • How to Build Ultra-Resilient Databases with Amazon Aurora Global Database and RDS Proxy for Maximum Uptime and Performance
  • How to Build Real-Time Personalization Systems Using AWS Agentic AI to Make Every User Feel Special
  • How to Transform Your Windows 11 Interface into a Sleek and Modern Aesthetic Masterpiece
  • How to Understand Google’s New TPU 8 Series for Massive AI Training and Inference
  • How to Level Up Your PC Gaming Experience with the New Valve Steam Controller and Its Advanced Features
  • How to build a smart voice agent with the AssemblyAI Voice Agent API and Universal-3 Pro for high-accuracy conversations
  • How to create Cinematic AI Kungfu Movie using Flower.ai and SeaDance 2.0
  • How to Build a Professional Headless Shopify Store from Scratch with the New Shopify AI Toolkit and Claude Code
  • How to Use Nvidia Nemotron-3 Nano Omni for Advanced Multimodal AI Reasoning
  • How to use Google Gemini Deep Research to automate professional analysis and save hours of work every week
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme