Rumah >hujung hadapan web >tutorial js >Apl Sembang Digunakan pada Kubernetes Menggunakan Kind, Metallb dan Ingress

Apl Sembang Digunakan pada Kubernetes Menggunakan Kind, Metallb dan Ingress

Susan Sarandon
Susan Sarandonasal
2025-01-02 19:39:40928semak imbas

Panduan ini menyediakan arahan langkah demi langkah untuk menggunakan aplikasi sembang tindanan penuh pada Kubernetes menggunakan Kind, Metallb dan Ingress. Ia direka bentuk untuk membantu pembangun menyediakan gugusan Kubernetes yang mantap untuk mengehos aplikasi kontena pada pelayan peribadi maya (VPS).

Penyerahan termasuk menyediakan alatan Kubernetes yang penting, mengkonfigurasi pengimbang beban, menyepadukan SSL untuk komunikasi selamat dan menggunakan kedua-dua perkhidmatan bahagian hadapan dan belakang. Selain itu, bahagian pilihan meliputi pemantauan aplikasi dengan Prometheus dan Grafana untuk pemerhatian yang dipertingkatkan dan penjejakan prestasi.

Sama ada anda menggunakan aplikasi sembang untuk pengeluaran atau menerokai keupayaan Kubernetes, panduan ini akan berfungsi sebagai peta jalan yang komprehensif untuk menyediakan aplikasi anda dan berjalan dengan cekap.

? Bermula Untuk k8s

Di bawah jadual membantu anda menavigasi ke bahagian pemasangan alat tertentu dengan pantas.

Tech stack Installation
Docker Install and configure Docker
Kind & Kubectl Install and configure Kind & Kubectl
Metallb Install Metallb
Ingress Install and configure Ingress
Helm Helm Install and configure
SSL Certificate Install and configure Cert Manager
Project Deploy Project Deploy and Others
Monitoring Namespace Create for Groping Prometheus and grafana and Other
Prometheus Install and configure Prometheus
Grafana Install and configure Grafana

? Pra-syarat untuk melaksanakan projek ini:

[!Nota]
vps keperluan minimum

  • RAM - 4GB
  • CPU - 2 Teras
  • Storan - 20 GB
  • Satu Domain

? Docker Pasang dan konfigurasikan

sudo apt-get update

sudo apt-get install docker.io -y
sudo usermod -aG docker $USER && newgrp docker

? Jenis & Kubectl Pasang dan konfigurasikan

Pasang KIND dan kubectl menggunakan skrip yang disediakan. Cipta fail kind_kubectl_config.yaml:

#!/bin/bash

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.26.0/kind-linux-amd64
chmod +x ./kind
sudo cp ./kind /usr/local/bin/kind

VERSION="v1.31.0"
URL="https://dl.k8s.io/release/${VERSION}/bin/linux/amd64/kubectl"
INSTALL_DIR="/usr/local/bin"

curl -LO "$URL"
chmod +x kubectl
sudo mv kubectl $INSTALL_DIR/
kubectl version --client

rm -f kubectl
rm -rf kind

echo "kind & kubectl installation complete."
./kind_kubectl_config.yaml

[!Nota]
Jika Vps ARM64 anda, gunakan ini [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.26.0/kind-linux-amd64
Jalankan skrip ini dan ia menyelaraskan kubectl dan persekitaran yang baik.
Jenis Pasang Maklumat Lanjut

?️ Sediakan Kluster JENIS

Buat fail kind-cluster-config.yaml:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4

nodes:
- role: control-plane
  image: kindest/node:v1.31.2
- role: worker
  image: kindest/node:v1.31.2
- role: worker
  image: kindest/node:v1.31.2
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP

Buat kelompok menggunakan fail konfigurasi:

kind create cluster --config kind-cluster-config.yaml --name my-kind-cluster

Sahkan kelompok:

kubectl get nodes
kubectl cluster-info

[!Nota]
Di sini saya menambah extraPortMappings untuk menjalankan Ingress

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

? Metallb Pasang

[!Nota]
Saya menggunakan Metallb untuk menggunakan LoadBalance. Katakan anda menggunakan Aws/Azure/DigitalOcean ect yang menyediakan kemudahan loadBalance kubernate kemudiannya tidak memerlukan Metallb. Di sini saya membeli VPS daripada syarikat tempatan. Mereka memberikan satu alamat IP untuk mengakses VPS.

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.9/config/manifests/metallb-frr.yaml

Semak konfigurasi Metallb

kubectl get all -n metallb-system

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

?️ Buat fail metallb_config.yaml:

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool
  namespace: metallb-system
spec:
  addresses:
  - 160.191.163.33-160.191.163.33

gunakan fail metallb_config.yaml

kubectl apply -f metallb_config.yaml

[!Nota]
Alamat IP VPS SAYA ialah 160.191.163.33. Tukar IP ini mengikut keperluan anda

♻️ Ingress Pasang dan konfigurasikan

kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/deploy-ingress-nginx.yaml

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

[!Nota]
Di sini service/ingress-nginx-controller menunjukkan EXTERNAL-IP ialah IP VPS anda. IP VPS saya ialah 160.191.163.33. Ia memastikan Metallb LoadBalance kami berfungsi.

? Pasang dan konfigurasikan Helm

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh

./get_helm.sh

Semak Versi Helm

helm version

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

?? Pasang dan konfigurasikan Pengurus Sijil || Sijil SSL

sudo apt-get update

sudo apt-get install docker.io -y
sudo usermod -aG docker $USER && newgrp docker

Memasang CRD pengurus sijil

#!/bin/bash

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.26.0/kind-linux-amd64
chmod +x ./kind
sudo cp ./kind /usr/local/bin/kind

VERSION="v1.31.0"
URL="https://dl.k8s.io/release/${VERSION}/bin/linux/amd64/kubectl"
INSTALL_DIR="/usr/local/bin"

curl -LO "$URL"
chmod +x kubectl
sudo mv kubectl $INSTALL_DIR/
kubectl version --client

rm -f kubectl
rm -rf kind

echo "kind & kubectl installation complete."

https://artifacthub.io/packages/helm/cert-manager/cert-manager

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

? Penyerahan Projek dan Lain-lain

Langkah Pertama

Klon Projek di bawah dalam VPS anda

./kind_kubectl_config.yaml

Langkah Kedua

Pergi ke folder k8s dan anda boleh melihat fail ini

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Langkah Ketiga

Buat Ruang Nampe

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4

nodes:
- role: control-plane
  image: kindest/node:v1.31.2
- role: worker
  image: kindest/node:v1.31.2
- role: worker
  image: kindest/node:v1.31.2
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP

Langkah Keempat

Gunakan semua fail Rahsia

kind create cluster --config kind-cluster-config.yaml --name my-kind-cluster

Langkah Kelima

Jumlah Mongodb Declear dan Lain-lain

kubectl get nodes
kubectl cluster-info

Langkah Enam

Gunakan Selebihnya Fail Lain

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.9/config/manifests/metallb-frr.yaml

Langkah Ketujuh

Konfigurasikan Domain Sijil SSL. Buka ssl_certificate.yaml dan edit nama domain yang anda inginkan

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Gunakan fail ssl_certificate.yaml

kubectl get all -n metallb-system

Langkah Lapan

Konfigurasikan fail Ingress. Buka ingress.yaml dan tambahkan nama domain yang anda inginkan.

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Gunakan fail ingress.yaml

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool
  namespace: metallb-system
spec:
  addresses:
  - 160.191.163.33-160.191.163.33

Semak Sijil

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Semak NameSpace

kubectl apply -f metallb_config.yaml

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

? Paparan Pelayar

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

? Kesimpulan

Tahniah! Anda telah berjaya menggunakan Aplikasi Sembang Tindanan Penuh . Anda kini boleh mengakses Apl Sembang anda.

? Pemantauan dan Lain-lain [Pilihan]

Kini kami melakukan ciri Tambahan seperti Pemantauan. Ia membantu anda mempelajari tentang pelayan dan apl.

Cipta Ruang Nama

sudo apt-get update

sudo apt-get install docker.io -y
sudo usermod -aG docker $USER && newgrp docker

Semak Ruang Nama

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

[!Nota]
Ruang Nama ini membantu mengawal semua aplikasi pemantauan seperti- Prometheus, Grafana, Loki dll

Prometheus dan Grafana Pasang dan Konfigurasikan

Pasang

#!/bin/bash

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.26.0/kind-linux-amd64
chmod +x ./kind
sudo cp ./kind /usr/local/bin/kind

VERSION="v1.31.0"
URL="https://dl.k8s.io/release/${VERSION}/bin/linux/amd64/kubectl"
INSTALL_DIR="/usr/local/bin"

curl -LO "$URL"
chmod +x kubectl
sudo mv kubectl $INSTALL_DIR/
kubectl version --client

rm -f kubectl
rm -rf kind

echo "kind & kubectl installation complete."

Jalankan Prometheus Melalui Pelabuhan

./kind_kubectl_config.yaml

kini anda boleh mengakses Prometheus menggunakan port ini. Suka

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4

nodes:
- role: control-plane
  image: kindest/node:v1.31.2
- role: worker
  image: kindest/node:v1.31.2
- role: worker
  image: kindest/node:v1.31.2
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP

[!Nota]
Tukar Alamat IP

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Grafana Pasang dan Konfigurasikan
Jalankan Grafana Melalui Pelabuhan

kind create cluster --config kind-cluster-config.yaml --name my-kind-cluster

Dapatkan Nama Pengguna dan Kata Laluan Grafana

Nama Pengguna

kubectl get nodes
kubectl cluster-info

kata laluan

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.9/config/manifests/metallb-frr.yaml

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

[!Nota]
Anda boleh menukar kata laluan

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Papan Pemuka Grafana.

Di sini anda boleh memilih jenis Papan Pemuka Algoritma yang berbeza

Chat App Deploy on Kubernetes Using Kind, Metallb and Ingress

Itu sahaja. Selamat Belajar :) .
[jika ia membantu, berikan bintang kepada repositori ?]

Pautan Github Projek
https://github.com/kamruzzamanripon/k8-node-react-mongodb-app

Atas ialah kandungan terperinci Apl Sembang Digunakan pada Kubernetes Menggunakan Kind, Metallb dan Ingress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn