Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Memulai Cluster Kubernetes Dari Awal Dengan Kubeadm dan Kubectl

Posted on September 17, 2022

Kubernetes memiliki reputasi kompleksitas tetapi rilis modern relatif mudah disiapkan. Alat administrasi cluster resmi Kubeadm memberikan pengalaman otomatis untuk mem-boot control plane Anda dan mendaftarkan node pekerja.

Artikel ini akan memandu Anda dalam menyiapkan cluster Kubernetes sederhana menggunakan konfigurasi default. Ini adalah panduan “dari awal” yang harus bekerja pada host yang baru saja disediakan. Sistem berbasis Debian diasumsikan tetapi Anda dapat menyesuaikan sebagian besar perintah agar sesuai dengan manajer paket sistem operasi Anda. Langkah-langkah ini telah diuji menggunakan Ubuntu 22.04 dan Kubernetes v1.25.

Menginstal Container Runtime

Kubernetes membutuhkan container runtime yang kompatibel dengan CRI untuk memulai dan menjalankan container Anda. Distribusi Kubernetes standar tidak disertai dengan runtime sehingga Anda harus menginstalnya sebelum melanjutkan. containerd adalah pilihan paling populer. Ini adalah runtime yang disertakan dengan rilis Docker modern.

Anda dapat menginstal containerd menggunakan repositori Apt Docker. Pertama tambahkan beberapa dependensi yang akan digunakan selama prosedur instalasi:

$ sudo apt update $ sudo apt install -y ca-certificates curl gnupg lsb-release

Selanjutnya tambahkan kunci GPG repositori ke direktori keyrings Apt:

$ sudo mkdir -p /etc/apt/keyrings 
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Sekarang Anda dapat menambahkan repositori yang benar untuk sistem Anda dengan menjalankan perintah ini:

$ echo "deb [arch=$(dpkg --print-architecture) signed -by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Perbarui daftar paket Anda untuk memasukkan isi dari repositori Docker:

$ sudo apt update

Akhirnya install containerd:

$ sudo apt install -y containerd. io

Check layanan containerd telah dimulai:

$ sudo service containerd status containerd.service - container runtime containerd Loaded: loading (/lib/systemd/system/containerd.service; diaktifkan; preset vendor: diaktifkan) Aktif: aktif (berjalan) sejak Sel 2022-09-13 16:50:12 WIB; 6s ago

Beberapa penyesuaian pada file konfigurasi containerd diperlukan untuk membuatnya bekerja dengan baik dengan Kubernetes. Pertama-tama ganti konten file dengan konfigurasi default containerd:

$ sudo containerd config default > /etc/containerd/config.toml

Ini mengisi semua bidang konfigurasi yang tersedia dan menyelesaikan beberapa masalah, seperti dukungan CRI dinonaktifkan pada instalasi baru.

Next open / etc/containerd/config.toml dan temukan baris berikut:

SystemdCgroup = false
Ubah nilainya menjadi true:
SystemdCgroup = true

Modifikasi ini diperlukan untuk mengaktifkan dukungan penuh untuk manajemen systemdcgroup. Tanpa opsi ini, container sistem Kubernetes akan restart sendiri secara berkala.

Restart containerd untuk menerapkan perubahan Anda:

$ sudo service containerd restart

Menginstal Kubeadm, Kubectl, dan Kubelet

Tahap kedua dalam proses ini adalah menginstal alat Kubernetes. Ketiga utilitas ini menyediakan kemampuan berikut:

Kubeadm – Alat administrasi yang beroperasi di tingkat cluster. Anda akan menggunakan ini untuk membuat cluster Anda dan menambahkan node tambahan. Kubectl – Kubectl adalah CLI yang Anda gunakan untuk berinteraksi dengan cluster Kubernetes Anda setelah berjalan. Kubelet – Ini adalah proses Kubernetes yang berjalan pada node pekerja cluster Anda. Ini bertanggung jawab untuk menjaga kontak dengan bidang kontrol dan memulai wadah baru saat diminta.

Ketiga biner tersedia di repositori Apt yang dihosting oleh Google Cloud. Pertama, daftarkan keyring GPG repositori:

$ sudo curl -fsSLo /etc/apt/keyrings/kubernetes.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

Selanjutnya tambahkan repositori ke sumber Anda …

$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

…dan perbarui daftar paket Anda:

$ sudo apt update

Sekarang instal paket:

$ sudo apt install -y kubeadm kubectl kubelet

Praktik terbaik untuk “menahan” paket-paket ini jadi Apt tidak secara otomatis memperbaruinya saat Anda menjalankan apt upgrade. Upgrade cluster Kubernetes harus dimulai secara manual untuk mencegah downtime dan menghindari perubahan yang tidak diinginkan.

$ sudo apt-mark hold kubeadm kubectl kubelet

Disabling Swap

Kubernetes tidak berfungsi saat swap diaktifkan. Anda harus mematikan swap sebelum membuat cluster. Jika tidak, Anda akan menemukan proses penyediaan macet saat menunggu Kubelet untuk memulai.

Run perintah ini untuk menonaktifkan swap:

$ sudo swapoff -a

Next edit file /etc/fstab Anda dan nonaktifkan semua swap mount:

UUID=ec6efe91-5d34-4c80- b59c-cafe89cc6cb2 / ext4 errors=remount-ro 0 1 /swapfile none swap sw 0 0

File ini menunjukkan mount dengan tipe swap sebagai baris terakhir. Itu harus dihapus atau dikomentari sehingga swap tetap dinonaktifkan setelah sistem di-boot ulang.

Memuat Modul br_netfilter

Modul kernel br_netfilter diperlukan untuk mengaktifkan iptables untuk melihat lalu lintas yang dijembatani. Kubeadm tidak akan membiarkan Anda membuat cluster Anda ketika modul ini hilang.

Anda dapat mengaktifkannya dengan perintah berikut:

$ sudo modprobe br_netfilter

Buat bertahan setelah reboot dengan memasukkannya ke dalam daftar modul sistem Anda:

$ echo br_netfilter | sudo tee /etc/modules-load.d/kubernetes.conf

Membuat Cluster Anda

Anda siap membuat cluster Kubernetes. Jalankan kubeadm init pada mesin yang Anda inginkan untuk meng-host bidang kontrol Anda:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Bendera –pod-network-cidr disertakan sehingga alokasi CIDR yang benar tersedia ke addon jaringan Pod yang akan diinstal nanti. Nilai default 10.244.0.0/16 berfungsi dalam banyak kasus tetapi Anda mungkin harus mengubah rentang jika Anda menggunakan lingkungan jaringan yang sangat disesuaikan. Pembuatan

Cluster dapat memakan waktu beberapa menit untuk diselesaikan. Informasi kemajuan akan ditampilkan di terminal Anda. Anda akan melihat pesan ini setelah berhasil:

Control-plane Kubernetes Anda telah berhasil diinisialisasi!

Output juga mencakup informasi tentang cara mulai menggunakan cluster Anda.

Mempersiapkan File Kubeconfig Anda

Mulai dengan menyalin file Kubeconfig yang dibuat secara otomatis ke direktori .kube/config Anda sendiri . Sesuaikan kepemilikan file sendiri sehingga Kubectl dapat membaca isinya dengan benar.

$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $( id -u):$(id -g) $HOME/.kube/config

Menginstal Addon Jaringan Pod

Kubernetes memerlukan addon jaringan Pod untuk ada di cluster Anda sebelum node pekerja mulai beroperasi secara normal. Anda harus menginstal addon yang kompatibel secara manual untuk menyelesaikan instalasi Anda.

Calico dan Flannel adalah dua pilihan paling populer. Panduan ini menggunakan Flannel karena pengalaman instalasinya yang sederhana.

Gunakan Kubectl untuk menambahkan Flannel ke cluster Anda:

$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel. yml

Tunggu beberapa saat lalu jalankan kubectl get node di terminal Anda. Anda akan melihat tampilan Node Anda sebagai Ready dan Anda dapat mulai berinteraksi dengan cluster Anda.

$ kubectl get nodes 
NAMA STATUS PERAN VERSI USIA 
ubuntu22 Ready control-plane 7m19s v1.25.0

Jika Anda menjalankan kubectl get pods –all-namespaces, Anda harus lihat bahwa komponen control plane, CoreDNS, dan Flannel semuanya aktif dan berjalan:

$ kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-flannel kube-flannel-ds-xlrk6 1/1 Running 5 (16s yang lalu) 11m kube-system coredns-565d847f94-bzzkf 1/1 Berjalan 5 (2m9 detik yang lalu) 14m kube-system coredns-565d847f94-njrdc 1/1 Berjalan 4 (30 detik yang lalu) 14m kube-system etcd-ubuntu22 1/1 Berjalan 6 (113 detik yang lalu) 13m kube-system kube-apiserver-ubuntu22 1/1 Berjalan 5 (30 detik yang lalu) 16m kube-system kube-controller-manager-ubuntu22 1/1 Berjalan 7 (3m 59 detik yang lalu) 13m kube-system kube-proxy-r9g9k 1/1 Berjalan 8 (21 detik yang lalu) 14m kube-system kube-scheduler-ubuntu22 1/1 Berjalan 7 (30 detik yang lalu) 15m

Berinteraksi Dengan Cluster Anda

Sekarang Anda dapat mulai menggunakan Kubectl untuk berinteraksi dengan klaster Anda. Sebelum melanjutkan, hapus taint default pada node control plane Anda agar Pod dapat menjadwalkannya. Kubernetes mencegah Pod berjalan pada node control plane untuk menghindari pertengkaran sumber daya tetapi pembatasan ini tidak diperlukan untuk penggunaan lokal.

$ kubectl taint node ubuntu22 node-role.kubernetes.io/control-plane:NoSchedule- node/ubuntu22 untainted

Ganti ubuntu22 di perintah di atas dengan nama yang ditetapkan untuk node Anda sendiri.

Sekarang coba mulai Pod NGINX sederhana:

$ kubectl run nginx --image nginx:pod terbaru/nginx create

Ekspos dengan layanan NodePort:

$ kubectl expose pod/nginx --port 80 --type layanan NodePort/nginx terkena

Temukan port host yang dialokasikan untuk layanan:

$ kubectl get services 
NAMA JENIS CLUSTER-IP EXTERNAL-IP PORT(S) USIA 
kubernetes ClusterIP 10.96.0.1 443/TCP 18m nginx NodePort 10.106. 44.155 80:30647/TCP 27s

Port adalah 30647. Permintaan HTTP ke titik akhir ini sekarang harus mengeluarkan halaman arahan NGINX default sebagai tanggapan:

$ curl http://localhost:30647 
Kami lcome to nginx!

Kluster Kubernetes Anda berfungsi!

Menambahkan Node

lainUntuk mengonfigurasi node pekerja tambahan, pertama ulangi semua langkah di bagian hingga “Membuat Cluster Anda” pada setiap mesin yang ingin Anda gunakan. Setiap Node akan membutuhkan containerd, Kubeadm dan Kubelet yang diinstal. Anda juga harus memeriksa node Anda memiliki konektivitas jaringan penuh ke mesin yang menjalankan control plane Anda.

Next jalankan perintah berikut pada node pekerja baru Anda:

kubeadm join 192.168.122.229:6443 –node-name node-b –token –discovery-token-ca-cert-hash sha256:

Ganti alamat IP dengan node bidang kontrol Anda. Nilai dari dan akan ditampilkan saat Anda menjalankan kubeadm init untuk membuat bidang kontrol Anda. Anda dapat mengambilnya menggunakan langkah-langkah berikut.

Token

Run daftar token kubeadm pada node bidang kontrol. Nilai token akan ditampilkan di kolom TOKEN.

$ kubeadm daftar token TOKEN TTL KEDALUWARSA PENGGUNAAN DESKRIPSI GRUP TAMBAHAN lkoz6v.cw1e01ckz2yqvw4u 23h 2022-09-14T19:35:03Z otentikasi,signing

Token CA Cert Hash

Jalankan perintah ini dan gunakan outputnya nilai:

$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed `s/^.* //`

Bergabung dengan Cluster

Perintah kubeadm join akan menghasilkan output ini setelah berhasil:

$ kubeadm join 192.168.122.229:6443 –node-name node-b –token –discovery- token-ca-cert-hash sha256: [kubelet-start] Memulai kubelet[kubelet-start] Menunggu kubelet melakukan Bootstrap TLS… Node ini telah bergabung dengan cluster: * Permintaan penandatanganan sertifikat telah dikirim ke apiserver dan sebuah tanggapan diterima. * Kubelet telah diberitahu tentang detail koneksi aman yang baru. Jalankan `kubectl get nodes` pada control-plane untuk melihat node ini bergabung dengan cluster.

Verifikasi node bergabung dengan cluster dan siap menerima Pod dengan menjalankan kubectl get nodes perintah:

$ kubectl get nodes NAMA STATUS PERAN AGE VERSION node -b Ready 91s v1.25.0 ubuntu22 Ready control-plane 100m v1.25.0

Node muncul dalam daftar dan berstatus Ready sebagai statusnya. Ini berarti ia beroperasi dan Kubernetes dapat menjadwalkan Pod ke dalamnya.

Summary

Menyiapkan Kubernetes mungkin tampak menakutkan, tetapi Kubeadm mengotomatiskan sebagian besar bit sulit untuk Anda. Meskipun masih ada beberapa langkah yang harus diselesaikan, Anda tidak akan mengalami masalah jika Anda memastikan prasyarat terpenuhi sebelum memulai.

Kebanyakan masalah terjadi karena tidak ada runtime container yang tersedia, modul kernel br_netfilter tidak ada, swap diaktifkan, atau kebutuhan untuk menyediakan addon jaringan Pod telah diabaikan. Pemecahan masalah harus dimulai dengan memeriksa kesalahan umum ini.

Kubeadm memberi Anda versi terbaru Kubernetes langsung dari proyek itu sendiri. Distribusi alternatif tersedia yang memungkinkan Anda memulai cluster node tunggal dengan satu perintah. Minikube, MicroK8s, dan K3s adalah tiga opsi populer. Meskipun ini biasanya lebih mudah untuk diatur dan ditingkatkan, semuanya memiliki sedikit perbedaan dibandingkan dengan Kubernetes upstream. Menggunakan Kubeadm membuat Anda lebih dekat dengan cara kerja internal Kubernetes dan dapat diterapkan ke berbagai lingkungan.

Itulah berita seputar Cara Memulai Cluster Kubernetes Dari Awal Dengan Kubeadm dan Kubectl, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Inilah Beasiswa Bekraf Digital Talent 2026: Solusi Buat Kalian yang Mau Jago AI dan Makin Produktif
  • Inilah Cara Memilih Power Bank yang Aman Dibawa ke Pesawat Agar Tidak Disita Petugas
  • Inilah Bocoran Harga dan Spesifikasi Redmi K90 Max, HP Gaming Dimensity 9500 Termurah yang Segera Dirilis!
  • Inilah RedMagic Gaming Tablet 5 Pro, Monster Gaming dengan Layar 185Hz dan Chipset Snapdragon 8 Elite yang Bikin Melongo!
  • Inilah Kenapa IGRS Trending di X, Bocorkan Spoiler Penting Game 007 First Light Hingga Ending!
  • Inilah 5 HP Murah Terbaru dengan Baterai Jumbo yang Siap Masuk Indonesia 2026, Ada yang Sampai 7.800 mAh!
  • Inilah Alasan Kenapa Samsung Galaxy S27 Bakal Pakai 50 Persen Chipset Exynos, Qualcomm Mulai Ditinggalkan?
  • Inilah Vivo Y31d Pro, Smartphone “Badak” dengan Baterai 7000mAh dan Ketahanan Standar Militer
  • Inilah 11 Game Penghasil Saldo DANA Tercepat 2026, Cara Asyik Cari Cuan Sambil Rebahan!
  • Inilah Motorola Edge 70 Pro, HP Midrange Gahar dengan Baterai 6500 mAh yang Siap Meluncur!
  • Inilah Kode Redeem FF Max 15 April 2026, Buru Skin Undersea Splatter dan Item Eksklusif Bawah Laut Sekarang!
  • Inilah Bocoran Vivo X500 Series dan Kamera Vlogging Saku yang Bakal Bikin DJI Ketar-ketir!
  • Inilah 6 Rekomendasi HP Gaming Paling Murah April 2026, Main Game Berat Nggak Pake Lag!
  • Inilah Caranya Manfaatin SPayLater di Aplikasi ShopeePay Biar Keuangan Tetap Aman Saat Tanggal Tua
  • Inilah Perbedaan Durasi Reels IG dan FB Terbaru 2026, Ternyata Bisa Sampai 20 Menit Lho!
  • Inilah Cara Mengurus Surat Keterangan Bebas Narkoba (SKBN), Syarat Lengkap, Biaya, dan Lokasi Pembuatannya
  • Inilah Cara Pakai Panel Zurra v2 FF Aim Lock Headshot, Simak Fitur dan Risikonya Sebelum Pakai!
  • Inilah Alasan Kenapa Sesi Akhir UTBK 2026 Nggak Lebih Sulit dan Penjelasan Lengkap Sistem Penilaiannya
  • Inilah Kenapa Tidak Bisa Login WA Web dan Solusi Paling Ampuh Biar Langsung Connect Lagi
  • Inilah Cara Mengatasi MyTelkomsel Oops Terjadi Kesalahan, Jangan Panik Dulu!
  • Inilah Cara Mengisi SKP Satpol PP dan Pranata Trantibum 2026 di e-Kinerja My ASN, Dijamin Anti Ribet!
  • Inilah Cara Akses IPTV Playlist M3U Indonesia Terbaru 2026, Nonton Ribuan Channel Tanpa Biaya!
  • Tutorial SEO Anchor Link: Cara Dapat Ranking di Google Lewat Strategi Link Building yang Aman
  • Inilah Huawei Pura 90 Pro, HP Flagship dengan Desain Kamera Segitiga Unik dan Performa Kirin yang Makin Gahar
  • Inilah 5 Rekomendasi Kipas Tangan Portable Cas Tahan Lama Biar Kalian Tetap Adem Saat Cuaca Panas Ekstrem
  • Inilah MacBook Neo, Laptop Termurah Apple yang Ternyata Punya Performa Gaming Gila!
  • Inilah Daftar Tablet SIM Card 5G dengan Keyboard Terbaik 2026 untuk Kerja Remote
  • Inilah Daftar Game Penghasil Pulsa 2026, Cara Cerdas Dapat Kuota Gratis Tanpa Keluar Duit Sepeserpun!
  • Inilah Caranya Klaim Bonus Kuota Lokal Smartfren 2026, Jangan Sampai Bonus Kalian Hangus Sia-sia!
  • Inilah Cara Mengatasi Rockstar Games Launcher Not Responding dan Macet Saat Connecting
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to Fix Excel Formula Errors: Quick Fixes for #NAME
  • How to Create Music Offline using Go-Compose AI: A Step-by-Step Guide
  • How to Effortlessly Create Professional ID Photos at Home Using HitPaw
  • How to Master AI Video Storytelling with Seendance 2.0 & Artlist Workflow
  • How to Get Google Veo 3 for Free: Your Ultimate Guide to AI Video Creation
  • How to Build a Powerful AI Agent Workflow for Your Business with GLM 5V Turbo Vision
  • 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