Skip to content

emka.web.id

Banner 1
Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Cara Install Kubernetes Cluster Menggunakan Kubespray


Apakah Anda mencari panduan mudah tentang cara menginstal Kubernetes (k8s) menggunakan kubespray?

Panduan langkah demi langkah di halaman ini akan menunjukkan kepada Anda cara menginstal Kubernetes Cluster menggunakan kubespray pada sistem linux.

Kubesprayadalah alat sumber terbuka dan gratis yang menyediakan playbook yang memungkinkan untuk men-deploy dan mengelola cluster Kubernetes. Ini dirancang untuk menyederhanakan proses instalasi klaster Kubernetes di beberapa node, memungkinkan pengguna untuk menerapkan dan mengelola klaster Kubernetes siap produksi dengan cepat dan mudah.

Mendukung berbagai sistem operasi, termasuk Ubuntu, CentOS, Rocky Linux, dan Red Hat Enterprise Linux, dan dapat menerapkan Kubernetes pada berbagai platform, termasuk bare metal, cloud publik, dan cloud pribadi.

Dalam panduan ini, kami menggunakan lab berikut,
Ansible Node (Kubespray Node): Minimal menginstal Ubuntu 22.04 LTS (192.168. 1.240)3 Node Pengontrol: Rocky Linux 9 Terinstal Minimal (192.168.1.241/242/243)2 Node Pekerja: Rocky Linux 9 Terinstal Minimal (192.168.1.244/245)Persyaratan sistem minimum untuk kubesprayMaster Node: 1500 MB RAM, 2 CPU dan Ruang disk kosong 20 GB Node Pekerja: 1024 MB, 2 CPU, ruang disk kosong 20 GB Node yang Memungkinkan: 1024 MB, 1 CPU, dan ruang disk 20 GB Konektivitas internet pada setiap node Reguler dengan hak sudo admin
Tanpa penundaan lebih lanjut, mari d eep selami langkah-langkah instalasi,

Langkah 1) Konfigurasikan Kubespray Node

Login ke sistem Ubuntu 22.04 Anda dan instal yang memungkinkan. Jalankan rangkaian perintah berikut,
$ sudo apt update $ sudo apt install git python3 python3-pip -y $ git clone https://github.com/kubernetes-incubator/kubespray.git $ cd kubespray $ pip install -r requirements .txt
Verifikasi versi yang memungkinkan, run
$ ansible --version


Buat inventaris host, jalankan perintah di bawah dan jangan lupa untuk mengganti alamat IP yang sesuai dengan penerapan Anda.
$ cp -rfp inventarisasi/inventaris sampel/mycluster $ deklarasikan -a IPS =(192.168.1.241 192.168.1.241 192.168.1.242 192.168.1.243 192.168.1.244 192.168.1.245) $ CONFIG_FILE=inventaris/mycluster/hosts.yaml python3 contrib/inventory_builder/inventify@bfile.py. , setel 3 node kontrol dan 2 node pekerja
$ vi inventory/mycluster/hosts.yaml


Simpan dan tutup file

Review dan ubah parameter berikut dalam file “inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml”.
kube_version: v1.26.2 kube_network_plugin: calico kube_p ods_subnet: 10.233.64.0/18 kube_service_addresses: 10.233.0.0/18 cluster_name: linuxtechi.local


Untuk mengaktifkan addons seperti dasbor kuberenetes dan pengontrol masuknya, atur parameter sebagai diaktifkan di file “inventory/mycluster/group_vars/k8s_cluster/addons.yml”
$ vi inventory/mycluster/group_vars/k8s_cluster/addons.yml ----------- dashboard_enabled: true ingress_nginx_enabled: true ingress_nginx_host_network: true -----------
save dan keluar dari file.

Langkah 2) Salin kunci-SSH dari node yang memungkinkan ke semua node lain

Pertama buat kunci-ssh untuk pengguna lokal Anda di node yang memungkinkan,
$ ssh-keygen
Salin kunci-ssh menggunakan perintah ssh-copy-id,
$ ssh-copy -id [email protected] $ ssh-copy-id [email protected] $ ssh-copy-id [email protected] $ ssh-copy-id [email protected] $ ssh-copy-id [email protected]
Baca Juga: Cara untuk Mengatur Login SSH Tanpa Kata Sandi di Linux dengan Keys

Juga jalankan perintah berikut di setiap node.
$ echo "sysops SEMUA=(SEMUA) NOPASSWD:SEMUA" | sudo tee /etc/sudoers.d/sysops
Langkah 3) Nonaktifkan Firewall dan Aktifkan penerusan IPV4

Untuk menonaktifkan firewall di semua node, jalankan perintah berikut dari node yang memungkinkan,
$ cd kubespray $ ansible all -i inventory/mycluster/hosts.yaml - m shell -a "sudo systemctl stop firewalld && sudo systemctl disable firewalld"
Jalankan mengikuti perintah yang memungkinkan untuk mengaktifkan penerusan IPv4 dan menonaktifkan swap pada semua node,
$ memungkinkan semua -i inventori/mycluster/hosts.yaml -m shell -a " echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf" $ memungkinkan semua -i inventori/mycluster/hosts.yaml -m shell -a "sudo sed -i '/ swap / s/ ^(.*)$/#1/g' /etc/fstab && sudo swapoff -a"
Langkah 4) Mulai penerapan Kubernetes

Sekarang, kita siap untuk memulai penerapan kluster Kubernetes, jalankan mengikuti playbook yang memungkinkan dari node yang memungkinkan,
$ cd kubespray $ ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml


Now pantau penerapan nt, mungkin diperlukan waktu 20 hingga 30 menit tergantung pada kecepatan internet dan sumber daya perangkat keras.

Setelah penerapan selesai, kita akan mendapatkan keluaran berikut di layar kita,



Bagus, keluaran di atas mengonfirmasi bahwa penerapan berhasil diselesaikan.

Langkah 5) Akses kluster Kubernetes

Login ke node master pertama, beralih ke pengguna root, jalankan perintah kubectl dari sana,
$ sudo su - # kubectl get nodes # kubectl get pods -A
Output,



Perfect, output di atas mengonfirmasi bahwa semua node dalam cluster dalam keadaan siap dan Pod dari semua namespace aktif dan berjalan. Ini menunjukkan bahwa klaster Kubernetes kita berhasil di-deploy.

Mari kita coba untuk men-deploy deployment berbasis nginx dan mengeksposnya sebagai nodeport, jalankan perintah kubectl berikut
$ kubectl create deployment demo-nginx-kubespray --image=nginx --replicas=2 $ kubectl expose deployment demo-nginx-kubespray --type NodePort --port=80 $ kubectl get  deployments.apps $ kubectl get pods $ kubectl get svc demo-nginx-kubespray
Output dari perintah di atas,



Sekarang coba akses aplikasi nginx ini menggunakan alamat IP dan node pekerja port (30050)

Gunakan perintah curl di bawah atau browser web untuk mengakses aplikasi ini.
$ curl 192.168.1.245:30050
Or



Sempurna, ini mengonfirmasi bahwa aplikasi dapat diakses di luar cluster kami.

Langkah 6) Dasbor Kubernetes (GUI)

Untuk mengakses dasbor Kubernetes , mari kita buat akun layanan terlebih dahulu dan tetapkan hak istimewa admin agar dapat mengakses dasbor menggunakan token.

Buat akun layanan dengan nama ' admin-user' di kube-system namespace.
$ vi dashboard-adminuser.yml apiVersion: v1 kind: ServiceAccount metadata:   name: admin-user   namespace: kube-system
save dan tutup file.
$ kubectl apply -f dashboard-adminuser .yml serviceaccount/admin-user membuat $
Buat pengikatan peran kluster,
$ vi admin-role-binding.yml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:   name: admin-user roleRef:   apiGroup: rbac.authorization.k8s.io   kind: ClusterRole   name: cluster-admin subject: - kind: ServiceAccount   name: admin-user   namespace: kube-system
save dan keluar dari file.
$ kubectl apply -f admin-role-binding.yml clusterrolebinding .rbac.authorization.k8s.io/admin-user membuat $
Sekarang, buat token untuk admin-user,
$ kubectl -n kube-system buat token admin-user


Salin token ini dan letakkan di tempat yang aman karena kita akan menggunakan token untuk login Kubernetes dashboard.

Hubungkan ke node master pertama dari sistem Anda menggunakan perintah ssh berikut
$ ssh -L8001:localhost:8001 [email protected]
Catatan : Ganti alamat IP yang sesuai dengan env.

AndaSetelah masuk, alihkan ke pengguna root dan jalankan perintah 'kubectl proxy',
$ sudo su - # kubectl proxy Mulai melayani pada 127.0.0.1:8001


Buka browser web sistem Anda, atur pengaturan proxy seperti yang ditunjukkan di bawah ini,



Setelah Anda selesai dengan pengaturan proxy, rekatkan url berikut di browser,

http://localhost:8001/ api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#/logi



Pilih mekanisme login sebagai Token dan tempel token yang telah Anda buat di atas untuk admin-pengguna lalu klik 'Masuk'



Sekian dari panduan ini, saya harap Anda menganggapnya informatif. Mohon kirimkan pertanyaan dan umpan balik Anda di bagian komentar di bawah.
Artikel Diperbarui pada: March 13, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani
Banner 1
Seedbacklink

Recent Posts

  • Apa itu Kepulauan Chagos? (Milik Inggris atau Mauritius?)
  • Apa itu Kiwano atau Melon Berduri (Cucumis Metuliferus)?
  • Apakah Paganisme itu Agama?
  • Perbaiki Kebodohannya, Pemerintah Buka Lagi Akses Ke Situs archive.org
  • Kenapa Disebut Ilmuwan Muslim, Bukan Ilmuwan Arab atau Ilmuwan Persia?
  • Indonesia Prasejarah, Benarkah Se-kaya itu?
  • Apa itu Bilangan Aleph ?
  • Jejak Aneh Nisan Makam Gaya Aceh di Pangkep Sulawesi Selatan
  • Rasa’il Ikhwan al-Shafa Fondasi Matematika dalam Filsafat Islam
  • Review Aplikasi Melolo, Saingan Berat Dramabox!
  • Review Game Dislyte: Petualangan Urban Myth yang Seru!
  • Microsoft Resmikan Cloud Region Pertama di Indonesia, Pacu Pertumbuhan AI
  • Bagaimana Bisa Xiaomi Jadi Raja dibanyak Sektor?
  • Sejarah Tokoh Judi Negara: Robby Sumampow
  • Kenapa Hongkong Mulai Kehilangan Anak Mudanya?
  • Apakah China ada Peternakan Panda?
  • Kebohongan Ajudan Bung Karno Soal Letkol Untung Habisi Para Jenderal?
  • Apakah Harga Minyak Dunia Turun Bikin OPEC Bangkrut?
  • Hal Konyol di Startrek Original Series
  • Inilah Deretan Buku-Buku Kontroversial di Dunia
  • Benarkah Kisah Ibrahim-Ismail Tiru Kisah Agamemnon Yunani Kuno?
  • Misteri Paus Donus II, Paus Fiktif Diakui Selama 200 Tahun
  • Review BMW Speedtop M8 Superwagon
  • Apa itu ATC (Air Traffic Control)?
  • Leon Hartono: Investasi Emas Fisik vs Digital vs Crypto 2025

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically