GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal dan Mengonfigurasi Kubernetes dan Docker di Ubuntu 18.04 LTS

Kubernetes adalah platform open source untuk mengelola aplikasi dalam container. Ini memungkinkan Anda untuk mengelola, menskalakan, dan secara otomatis menerapkan aplikasi dalam container di lingkungan cluster. Kubernetes dikembangkan oleh Google.

Dengan Kubernetes, Anda dapat mengatur container di beberapa host, menskalakan aplikasi dalam container dengan semua sumber daya dengan cepat, dan memiliki lingkungan pengelolaan container yang terpusat.

Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi Kubernetes di Ubuntu 18.04. Kami akan menggunakan 1 server 'k8s-master' sebagai Master Host Kubernetes, dan 2 server sebagai pekerja Kubernetes, 'worker01' dan 'worker02'.

Prasyarat

  • 3 Server Ubuntu
    • 10.0.15.10  k8s-master
    • 10.0.15.21  pekerja01
    • 10.0.15.22  pekerja02
  • Hak istimewa root

Apa yang akan kami lakukan

  1. Instalasi Kubeadm
    1. Siapkan Host
    2. Instal Docker
    3. Nonaktifkan SWAP
    4. Instal Paket Kubeadm
  2. Inisialisasi Cluster Kubernetes
  3. Menambahkan Node Pekerja ke Cluster Kubernetes
  4. Pengujian

Langkah 1 - Instalasi Kubeadm

Pada langkah pertama ini, kita akan menyiapkan 3 server tersebut untuk instalasi Kubernetes, jadi jalankan semua perintah pada node master dan pekerja.

Kami akan menyiapkan semua server untuk instalasi Kubernetes dengan mengubah konfigurasi yang ada di server, dan juga menginstal beberapa paket, termasuk docker dan kubernetes itu sendiri.

Siapkan Host

Edit file host di semua server menggunakan editor vim.

sudo vim /etc/hosts

Tempelkan konfigurasi host di bawah.

10.0.15.10 k8s-master10.0.15.21 pekerja0110.0.15.22 pekerja02

Simpan dan keluar.

Sekarang uji ping semua nama host server.

ping -c 3 k8s-master
ping -c 3 pekerja01
ping -c 3 pekerja02

Pastikan semua alamat IP diselesaikan sebagai nama host.

Instal Docker

Dalam tutorial ini, kita akan menginstal Docker dari repositori Ubuntu.

Instal Docker menggunakan perintah apt di bawah ini.

sudo apt install docker.io -y

Setelah instalasi selesai, mulai layanan buruh pelabuhan dan aktifkan untuk diluncurkan setiap kali sistem boot.

sudo systemctl start docker
sudo systemctl enable docker

Instalasi Docker telah selesai.

Nonaktifkan SWAP

Untuk menyiapkan server Kubernetes Linux, kita perlu menonaktifkan SWAP.

Periksa daftar swap dan nonaktifkan.

sudo swapon -s
sudo swapoff -a

Untuk menonaktifkan SWAP secara permanen, kita perlu mengedit file '/etc/fstab'.

sudo vim /etc/fstab

Beri komentar pada jenis partisi SWAP.

#/dev/mapper/hakase--labs--vg-swap_1 tidak ada swap sw 0 0

Simpan dan keluar, lalu reboot sistem.

sudo reboot

Instal Paket Kubeadm

Dalam tutorial ini, kita akan menggunakan paket Kubeadm untuk menyiapkan Cluster Kubernetes. Kami akan menginstal paket Kubeadm dari repositori resmi Kubernetes.

Instal apt-transport-https.

sudo apt install -y apt-transport-https

Tambahkan Kunci Kubernetes.

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Dan tambahkan Repositori Kubernetes dengan membuat file repo.list baru di direktori '/etc/apt/sources.list.d'.

cd /etc/apt/
sudo vim sources.list.d/kubernetes.list

rekatkan repositori kubernetes di bawah ini.

deb http://apt.kubernetes.io/ kubernetes-xenial main

Catatan:

Kami masih menggunakan repositori Xenial Ubuntu 16.04 untuk Instalasi Kubeadm kami.

Sekarang perbarui repositori dan instal paket kubeadm menggunakan perintah apt di bawah ini.

sudo apt update
sudo apt install -y kubeadm kubelet kubectl

Tunggu instalasi paket kubeadm.

Langkah 2 - Inisialisasi Cluster Kubernetes

Pada langkah ini, kita akan menginisialisasi Kubernetes pada node 'k8s-master'. Jalankan semua perintah di tahap ini hanya di server 'k8s-master'.

Inisialisasi cluster Kubernetes menggunakan perintah kubeadm di bawah ini.

sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=10.0.15.10 --kubernetes-version "1.11.0"

Catatan:

  • --apiserver-advertise-address =menentukan alamat IP mana Kubernetes harus mengiklankan server API-nya.
  • --pod-network-cidr =tentukan kisaran alamat IP untuk jaringan pod. Kami menggunakan jaringan virtual 'flanel'. Jika Anda ingin menggunakan jaringan pod lain seperti weave-net atau calico, ubah alamat IP rentang.

Ketika inisialisasi Kubernetes selesai, Anda akan mendapatkan hasil seperti yang ditunjukkan di bawah ini.

Salin 'kubeadm join ... ... ... ' ke editor teks Anda. Perintah tersebut akan digunakan untuk mendaftarkan node pekerja baru ke cluster kubernetes.

Sekarang untuk menggunakan Kubernetes, kita perlu menjalankan beberapa perintah seperti yang ditunjukkan pada hasil.

Buat direktori konfigurasi '.kube' baru dan salin konfigurasi 'admin.conf' dari direktori '/etc/kubernetes'.

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

Selanjutnya, deploy jaringan flannel ke cluster kubernetes menggunakan perintah kubectl.

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

Jaringan flanel telah di-deploy ke cluster Kubernetes.

Tunggu sebentar lalu periksa node dan pod kubernetes menggunakan perintah di bawah ini.

kubectl mendapatkan node
kubectl mendapatkan pod --all-namespaces

Dan Anda akan mendapatkan node 'k8s-master' berjalan sebagai cluster 'master' dengan status 'ready', dan semua pod 'kube-system' yang diperlukan untuk cluster sudah aktif dan berjalan.

Inisialisasi dan konfigurasi master cluster Kubernetes telah selesai.

Langkah 3 - Menambahkan Node Pekerja ke Cluster Kubernetes

Pada langkah ini, kita akan menambahkan dua node pekerja 'worker01' dan 'worker02' ke Cluster Kubernetes.

Hubungkan ke server 'worker01' dan jalankan perintah kubeadm join yang Anda dapatkan dari inisialisasi cluster.

kubeadm bergabung 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef>97dcd 

Hubungkan ke server 'worker02' dan jalankan perintah kubeadm join yang Anda dapatkan dari inisialisasi cluster..

kubeadm bergabung 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef>97dcd 

Tunggu beberapa menit dan kembali ke master node 'k8s-master' dan periksa status node.

kubectl mendapatkan node

Anda akan melihat node pekerja 'worker01' dan 'worker02' adalah bagian dari Cluster Kubernetes.

Langkah 4 - Pengujian

Pada langkah ini, kami akan menerapkan server web Nginx di dalam cluster. Kami akan menerapkan server web Nginx menggunakan template YAML.

Buat direktori baru bernama 'nginx' dan buka direktori tersebut.

mkdir -p nginx/
cd nginx/

Sekarang buat file YAML Nginx Deployment 'nginx-deployment.yaml' menggunakan editor vim.

sudo vim nginx-deployment.yaml

Tempelkan konfigurasi di bawah.

apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deployment labels:app:nginxspec:replicas:3 pemilih:matchLabels:app:nginx template:metadata:labels:app:nginx spec:containers:- name:nginx image :port nginx:1.14.0:- containerPort:80

Simpan dan keluar.

Catatan:

  • Kami sedang membuat 'Deployment' baru bernama 'nginx-deployment'.
  • Siapkan label aplikasi sebagai 'nginx' dengan replika '3'.
  • 'nginx-deployment' akan memiliki container bernama 'nginx', berdasarkan gambar buruh pelabuhan 'nginx:1.14.0', dan akan menampilkan port HTTP default 80.

Sekarang buat penerapan dengan menjalankan perintah kubectl di bawah ini.

kubectl create -f nginx-deployment.yaml

Setelah membuat 'nginx-deployment' baru, periksa daftar penerapan di dalam cluster.

kubectl get deployments
kubectl mendeskripsikan penerapan nginx-deployment

Sekarang periksa Pod Kubernetes dan Anda akan melihat pod 'nginx-deployment-xxx', periksa detail pod.

kubectl mendapatkan pod
kubectl mendeskripsikan pod nginx-deployment-6cb5f7bf4f-t5xfh

Anda akan mendapatkan pod nginx-deployment dengan 3 replika di node pekerja.

Selanjutnya, kita perlu membuat layanan baru untuk 'nginx-deployment' kita.

Buat file YAML baru bernama 'nginx-service.yaml'.

vim nginx-service.yaml

Tempelkan konfigurasi di bawah ini.

apiVersion:v1kind:Servicemetadata:name:nginx-service labels:run:nginx-servicespec:type:NodePort ports:- port:80 protocol:TCP selector:app:nginx

Simpan dan keluar.

Catatan:

  • Kami sedang membuat layanan kubernetes baru bernama 'nginx-service'.
  • Jenis layanannya adalah 'NodePort' dengan port default HTTP TargetPort 80.
  • Layanan ini milik aplikasi bernama 'nginx' berdasarkan penerapan 'nginx-deployment' kami.

Buat layanan kubernetes menggunakan perintah kubectl di bawah ini.

kubectl create -f nginx-service.yaml

Sekarang periksa semua layanan yang tersedia di cluster dan Anda akan mendapatkan 'layanan nginx' di daftar, lalu periksa detail layanan.

kubectl get service
kubectl mendeskripsikan layanan nginx-service

Dan Anda akan melihat NodePort 'nginx-service' berjalan di port '32649'.

Periksa menggunakan perintah curl ke semua node pekerja.

Pada pekerja01.

pekerja keriting01:32649

Anda akan melihat halaman default Nginx.

Pada pekerja02.

curl worker02:32649

Instalasi dan konfigurasi Kubernetes Cluster di Ubuntu 18.04 telah berhasil diselesaikan.


Ubuntu
  1. Cara Menginstal Kubernetes di Ubuntu 18.04

  2. Cara Menginstal dan Mengonfigurasi Ansible di Ubuntu 18.04 LTS

  3. Cara Menginstal dan Mengonfigurasi Fail2ban di Ubuntu 20.04 LTS

  1. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 18.04

  2. Cara Menginstal Docker di Ubuntu 22.04 / 20.04 LTS

  3. Cara Menginstal dan Mengonfigurasi Kubernetes (k8s) di Ubuntu 18.04 LTS

  1. Cara Menginstal dan Mengonfigurasi GitLab di Ubuntu 18.04 LTS

  2. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 16.04 LTS

  3. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 18.04 LTS