Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penggunaan kontena menggunakan Kubernetes dalam Beego

Penggunaan kontena menggunakan Kubernetes dalam Beego

PHPz
PHPzasal
2023-06-22 08:01:171124semak imbas

Penyerahan kontena menggunakan Kubernetes dalam Beego

Dengan populariti pengkomputeran awan dan teknologi kontena, semakin banyak aplikasi web mula menggunakan penggunaan kontena. Dalam penggunaan kontena, Kubernetes telah menjadi salah satu piawaian de facto. Artikel ini akan memperkenalkan cara menggunakan Kubernetes untuk penggunaan kontena dalam Beego.

1. Apakah itu Beego?

Beego ialah rangka kerja MVC berasaskan Go (Golang) yang ringkas, pantas. Ini ialah rangka kerja sumber terbuka yang boleh digunakan untuk membangunkan aplikasi web berprestasi tinggi, boleh skala, boleh diselenggara dan boleh diuji dengan cepat.

2. Apakah itu Kubernetes?

Kubernetes ialah sistem orkestrasi kontena sumber terbuka untuk mengurus aplikasi kontena. Ia menyediakan keupayaan untuk mengautomasikan penggunaan, penskalaan dan pengurusan aplikasi kontena. Kubernetes boleh dijalankan dalam persekitaran awan peribadi dan awam dan boleh digunakan merentas berbilang penyedia awan.

3. Mengapa menggunakan Kubernetes untuk penggunaan kontena dalam Beego?

Menggunakan Kubernetes untuk penggunaan kontena dalam Beego mempunyai faedah berikut:

1 Kemudahalihan: Menggunakan teknologi penggunaan kontena, aplikasi boleh dimasukkan ke dalam bekas dan Gunakan di mana-mana sahaja dengan Kubernetes.

2. Penskalaan elastik: Menggunakan Kubernetes, bekas aplikasi boleh dikembangkan secara automatik dan mengecut secara mendatar untuk bertindak balas terhadap perubahan trafik.

3 Ketersediaan tinggi: Ketersediaan tinggi boleh dicapai menggunakan Kubernetes Jika nod gagal, Kubernetes akan memulakan semula bekas pada nod lain.

4 Mudah diurus: Menggunakan Kubernetes boleh memudahkan pengurusan aplikasi dan infrastruktur.

4. Bagaimana cara menggunakan Kubernetes untuk penggunaan kontena dalam Beego?

Berikut ialah langkah-langkah untuk penggunaan kontena menggunakan Kubernetes dalam Beego:

1 Tulis Fail Docker: Fail Docker ialah fail skrip untuk membina bekas Docker. Dalam direktori akar aplikasi Beego, cipta fail bernama Dockerfile dan tambah kandungan berikut:

FROM golang:1.13 as builder
WORKDIR /app
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o app .

FROM alpine
RUN apk update && apk add --no-cache ca-certificates
WORKDIR /root/
COPY --from=builder /app/app .
CMD ["./app"]

Dalam fail Dockerfile di atas, baris 1 menentukan bahawa imej asas yang digunakan ialah imej golang:1.13 rasmi, baris 1 Baris 2 menentukan direktori kerja sebagai /app. Baris 3 menyalin aplikasi Beego ke dalam bekas. Baris 4 memuat turun modul yang diperlukan oleh aplikasi. Baris 5 menyusun. Baris 7 menyalin aplikasi ke imej asas lain, alpine, yang kecil dan hanya mengandungi fail yang diperlukan. Baris terakhir menentukan arahan untuk dijalankan apabila bekas bermula.

2. Bina imej Docker: Navigasi ke direktori tempat fail Dockerfile terletak di terminal dan jalankan arahan berikut untuk membina imej Docker:

docker build -t [image name] .

Di mana, [nama imej] ialah Docker yang akan dicipta nama Imej. Sebagai contoh, anda boleh menggunakan arahan berikut untuk mencipta imej Docker bernama my-app:

docker build -t my-app .

3. Sebarkan menggunakan Kubernetes: Dalam Kubernetes, anda boleh menggunakan tiga kaedah berikut untuk menggunakan:

(1) Gunakan penyebaran Deployment: Gunakan fail sumber Deployment (deployment.yaml) untuk mentakrifkan penggunaan aplikasi. Fail sumber ini mentakrifkan imej bekas yang akan digunakan, bilangan salinan dan maklumat lain. Berikut ialah contoh fail deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  selector:
    matchLabels:
      app: my-app
  replicas: 3
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app-container
        image: my-app
        imagePullPolicy: Always
        ports:
        - containerPort: 8080

Dalam fail ini, baris 1 menentukan versi API, baris 2 menentukan sumber (Deployment) yang akan dibuat, baris 4 menentukan nama sumber dan baris 7 Baris menentukan pemilih untuk menunjukkan Pod yang akan dikawal, baris ke-10 menentukan bilangan salinan, dan baris ke-13 menentukan maklumat yang berkaitan dengan imej bekas.

(2) Gunakan kerahan Pod: Gunakan fail sumber Pod (pod.yaml) untuk mentakrifkan penggunaan Pod. Tentukan maklumat seperti imej kontena dan port aplikasi untuk digunakan dalam fail sumber. Berikut ialah contoh fail pod.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
    - name: my-app-container
      image: my-app
      imagePullPolicy: Always
      ports:
        - containerPort: 8080

Dalam fail ini, baris 1 menentukan versi API, baris 2 menentukan sumber (Pod) yang akan dibuat, baris 5 menentukan nama sumber dan baris 7 Baris 10 menentukan nama imej kontena untuk digunakan dan baris 10 menentukan port aplikasi.

(3) Gunakan kerahan Perkhidmatan: Gunakan fail sumber Perkhidmatan (service.yaml) untuk mentakrifkan objek Perkhidmatan. Fail ini menentukan maklumat seperti port yang akan dipetakan dan jenis perkhidmatan. Berikut ialah contoh fail service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  type: LoadBalancer
  ports:
    - name: http
      port: 8080
      targetPort: 8080

Dalam fail ini, baris 1 menentukan versi API, baris 2 menentukan sumber (Perkhidmatan) yang akan dibuat, baris 5 menentukan nama sumber dan baris 7 Baris menentukan pemilih perkhidmatan, baris 9 menentukan jenis perkhidmatan dan baris 10 menentukan surat-menyurat antara port pemetaan perkhidmatan dan port kontena.

Di atas ialah langkah-langkah untuk penggunaan kontena menggunakan Kubernetes dalam Beego. Dengan cara ini aplikasi Beego boleh digunakan dengan cepat dan mudah.

Atas ialah kandungan terperinci Penggunaan kontena menggunakan Kubernetes dalam Beego. 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