INDO GLOBAL PRATAMA
The world in your hands
Perkenalan
Kubernetes adalah platform sumber terbuka untuk mengelola teknologi wadah seperti Docker .
Docker memungkinkan Anda membuat wadah aplikasi dari gambar yang telah dikonfigurasi sebelumnya . Kubernetes menyediakan langkah selanjutnya, memungkinkan Anda untuk menyeimbangkan muatan antara kontainer dan menjalankan banyak kontainer di berbagai sistem.
Panduan ini akan memandu Anda tentang cara memasang Kubernetes di Ubuntu 20.04 .
Prasyarat
Catatan : Petunjuk dalam tutorial ini juga dapat diterapkan pada versi Ubuntu yang lebih baru, seperti Ubuntu 22.04 .
Kubernetes memerlukan instalasi Docker yang sudah ada . Instal dan aktifkan Docker di setiap node server dengan mengikuti langkah-langkah di bawah ini:
1. Perbarui daftar paket:
sudo apt update
2. Selanjutnya install Docker dengan perintah:
sudo apt install docker.io -y
3. Atur Docker untuk diluncurkan saat boot dengan memasukkan yang berikut ini:
sudo systemctl enable docker
4. Pastikan Docker sedang berjalan:
sudo systemctl status docker
5. Mulai Docker jika tidak berjalan:
sudo systemctl start docker
Karena Anda mengunduh Kubernetes dari repositori non-standar , penting untuk memastikan bahwa perangkat lunak tersebut asli. Ini dilakukan dengan menambahkan kunci penandatanganan.
Di setiap node, gunakan perintah curl untuk mengunduh kunci, lalu simpan di tempat yang aman (defaultnya adalah /usr/share/keyrings
):
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo tee /usr/share/keyrings/kubernetes.gpg
Kubernetes tidak termasuk dalam repositori default. Untuk menambahkan repositori Kubernetes ke daftar Anda, masukkan kode berikut di setiap node:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/kubernetes.gpg] http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list
Kubeadm (Kubernetes Admin) adalah alat yang membantu menginisialisasi sebuah cluster. Ini mempercepat penyiapan dengan menggunakan praktik terbaik yang bersumber dari komunitas . Kubelet adalah paket kerja, yang berjalan di setiap node dan memulai kontainer. Alat ini memberi Anda akses baris perintah ke kluster.
Jalankan perintah berikut pada setiap node server.
1. Instal alat Kubernetes dengan perintah:
sudo apt install kubeadm kubelet kubectl
sudo apt-mark hold kubeadm kubelet kubectl
Biarkan proses selesai.
2. Verifikasi instalasi dengan:
kubeadm version
Catatan: Pastikan Anda menginstal versi yang sama dari setiap paket di setiap mesin. Versi yang berbeda dapat menciptakan ketidakstabilan. Selain itu, proses ini mencegah apt memperbarui Kubernetes secara otomatis. Untuk petunjuk pembaruan, silakan lihat petunjuk pengembang .
Catatan : BMC menawarkan instans server yang seimbang dan terjangkau yang cocok untuk penyebaran layanan dalam kontainer. Untuk menyederhanakan dan merampingkan proses, terapkan kluster Kubernetes di BMC menggunakan solusi Rancher kami .
Bagian ini menunjukkan cara menyiapkan server untuk penerapan Kubernetes. Jalankan langkah-langkah berikut pada setiap node server.
1. Nonaktifkan memori swap. Untuk melakukan tindakan ini, jalankan swapoff
:
sudo swapoff -a
Kemudian ketikkan perintah sed di bawah ini:
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
2. Muat modul containerd yang diperlukan. Mulailah dengan membuka file konfigurasi untuk containerd di editor teks:
sudo nano /etc/modules-load.d/containerd.conf
3. Tambahkan dua baris berikut:
overlay
br_netfilter
4. Selanjutnya, gunakan perintah modprobe untuk menambahkan modul:
sudo modprobe overlay
sudo modprobe br_netfilter
5. Konfigurasi jaringan Kubernetes. Buka file kubernetes.conf :
sudo nano /etc/sysctl.d/kubernetes.conf
6. Tambahkan baris berikut:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
7. Simpan file dan keluar, lalu muat ulang konfigurasi dengan mengetik:
sudo sysctl --system
1. Tentukan server mana yang akan ditetapkan sebagai node master. Kemudian masukkan perintah:
sudo hostnamectl set-hostname master-node
2. Selanjutnya, atur nama host node pekerja dengan memasukkan berikut ini di server pekerja:
sudo hostnamectl set-hostname worker01
Jika Anda memiliki node pekerja tambahan, gunakan proses ini untuk menetapkan nama host unik pada masing-masing node.
3. Edit file host di setiap node dengan menambahkan alamat IP dan nama host dari server yang ingin Anda tambahkan ke cluster.
Beralihlah ke node master, dan ikuti langkah-langkah untuk menginisialisasi Kubernetes di node tersebut:
1. Buka file kubelet di editor teks .
sudo nano /etc/default/kubelet
2. Tambahkan baris berikut ke file:
KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"
Simpan dan keluar dari file.
3. Jalankan perintah berikut untuk memuat ulang konfigurasi:
systemctl daemon-reload
systemctl restart kubelet
4. Buka file konfigurasi daemon Docker:
sudo nano /etc/docker/daemon.json
5. Tambahkan blok konfigurasi berikut:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
Simpan file dan keluar.
6. Muat ulang konfigurasi:
systemctl daemon-reload
systemctl restart docker
7. Buka file konfigurasi kubeadm :
sudo nano /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
8. Tambahkan baris di bawah ini ke file:
Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
Simpan file dan keluar.
9. Muat ulang kubelet:
systemctl daemon-reload
systemctl restart kubelet
10. Inisialisasi cluster dengan mengetik:
sudo kubeadm init --control-plane-endpoint=[master-hostname] --upload-certs
Setelah perintah ini selesai, itu akan menampilkan kubeadm join
pesan di bagian akhir. Catat seluruh entri. Ini akan digunakan untuk menggabungkan node pekerja ke cluster.
11. Masukkan yang berikut untuk membuat direktori untuk klaster Kubernetes:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Jaringan Pod adalah cara untuk memungkinkan komunikasi antara node yang berbeda dalam cluster. Tutorial ini menggunakan jaringan virtual calico .
1. Gunakan kubectl untuk menginstal Calico Typha:
kubectl apply -f https://docs.projectcalico.org/manifests/calico-typha.yaml
2. Pasang sumber daya khusus:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/custom-resources.yaml
3. Lepaskan node:
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
Seperti yang ditunjukkan pada Langkah 3 , kamu dapat memasukkan perintah kubeadm join pada node pekerja untuk menghubungkannya ke node master. Ulangi langkah-langkah di setiap node pekerja yang ingin Anda tambahkan ke cluster.
1. Jalankan perintah berikut untuk menonaktifkan apparmor:
systemctl stop apparmor
sudo systemctl disable apparmor
systemctl restart containerd.service
2. Masukkan perintah yang Anda catat di Langkah 3 :
kubeadm join --discovery-token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443
Ganti kode alfanumerik dengan kode dari server master Anda. Ulangi untuk setiap node pekerja di cluster. Tunggu beberapa menit; maka Anda dapat memeriksa status node.
3. Beralih ke server master, dan masukkan:
kubectl get nodes
Sistem harus menampilkan node pekerja yang Anda gabungkan ke cluster.
Kesimpulan
Setelah mengikuti langkah-langkah yang disebutkan dalam artikel ini dengan hati-hati, Anda seharusnya sudah menginstal Kubernetes di Ubuntu.
Untuk pemula yang masih belum memiliki pengalaman menerapkan banyak kontainer, Minikube adalah cara yang bagus untuk memulai. Minikube adalah sistem untuk menjalankan cluster node tunggal secara lokal dan sangat bagus untuk mempelajari dasar-dasarnya, sebelum beralih ke Kubernetes.
Jaringan ini menggunakan banyak server untuk berkomunikasi bolak-balik. Kubernetes memungkinkan Anda untuk meluncurkan dan mengelola wadah Docker di beberapa server di dalam pod.