Rumah >pembangunan bahagian belakang >Golang >Penjelasan terperinci tentang orkestrasi kontena dan penggunaan automatik rangka kerja Gin

Penjelasan terperinci tentang orkestrasi kontena dan penggunaan automatik rangka kerja Gin

WBOY
WBOYasal
2023-06-23 08:54:121170semak imbas

Rangka kerja Gin ialah rangka kerja web ringan yang sesuai untuk pembangunan pesat API dan aplikasi web. Ia dicirikan oleh prestasi tinggi, kebolehskalaan mudah, dan banyak fungsi yang dilaksanakan melalui perisian tengah, seperti pengesahan, penghalaan, log permintaan, dsb. Dalam pembangunan sebenar, kami boleh menggunakan bekas Docker untuk mengurus aplikasi Gin dan mengerahkannya secara automatik menggunakan kluster Kubernetes.

1. Orkestrasi kontena Docker

Docker ialah teknologi kontena yang cekap dan ringan yang membolehkan kami menggunakan dan menjalankan aplikasi dengan pantas pada mana-mana platform. Kami boleh menggunakan Docker untuk membungkus aplikasi Gin dan menggunakan aplikasi tersebut pada pelayan tempatan atau awan. Langkah-langkah khusus adalah seperti berikut:

1 Tulis Fail Docker

Pertama, kita perlu menulis Fail Docker, yang menerangkan proses pembinaan bekas Docker. Dalam Dockerfile, kita perlu menentukan imej asas, memasang pakej bergantung, menyalin aplikasi ke bekas dan operasi lain. Berikut ialah contoh fail Docker yang mudah:

FROM golang:1.16-alpine

WORKDIR /app
COPY . .

RUN go build -o main .

EXPOSE 8080
CMD ["./main"]

Dalam Fail Docker ini, kami menggunakan imej rasmi Golang 1.16 sebagai imej asas, tetapkan direktori kerja ke /app, dan salin semua fail dalam direktori semasa ke Dalam direktori /apl bekas. Kami kemudian menjalankan arahan go build untuk menyusun aplikasi dan menamakannya sebagai utama. Akhirnya, kami mendedahkan port 8080 dalam bekas dan memulakan aplikasi melalui arahan CMD.

2. Bina imej Docker

Selepas menulis fail Docker, kita perlu menggunakan arahan binaan docker untuk membina imej Docker. Jalankan arahan berikut dalam terminal:

docker build -t gin-app:latest .

Arahan ini akan membina imej Docker bernama gin-app dalam direktori semasa dan label imej ini adalah terkini.

3. Jalankan bekas Docker

Selepas membina imej Docker, kita boleh menggunakan arahan docker run untuk menjalankan bekas. Sebelum menjalankan kontena, kita harus menentukan port mana yang ingin kita dedahkan aplikasinya. Dalam contoh ini, kami akan memetakan port kontena 8080 ke port hos tempatan 8080. Jalankan arahan berikut:

docker run -d -p 8080:8080 gin-app:latest

Arahan ini akan menjalankan bekas bernama gin-app di latar belakang dan memetakan port 8080 dalam bekas ke port 8080 pada hos. Pada langkah ini, aplikasi Gin seharusnya sudah boleh diakses pada localhost melalui port 8080.

2. Penggunaan automatik Kubernetes

Kubernetes ialah sistem orkestrasi kontena yang boleh membantu kami menggunakan, mengembangkan dan mengurus aplikasi secara automatik. Dalam Kubernetes, kami boleh mentakrifkan penggunaan dan perkhidmatan aplikasi melalui fail yaml. Langkah-langkah khusus adalah seperti berikut:

1 Tulis fail Deployment

Deployment ialah konsep teras yang digunakan oleh Kubernetes untuk menggunakan dan mengemas kini aplikasi. Dalam Deployment, kami mentakrifkan atribut seperti bilangan salinan aplikasi, imej bekas, pembolehubah persekitaran dan volum yang dipasang. Berikut ialah contoh Deployment yang mudah:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gin-app-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: gin-app
  template:
    metadata:
      labels:
        app: gin-app
    spec:
      containers:
      - name: gin-app
        image: gin-app:latest
        ports:
        - containerPort: 8080

Dalam contoh ini, kami mentakrifkan objek Deployment bernama gin-app-deployment dan menentukan bilangan replika aplikasi menjadi 2. Pemilih digunakan untuk memilih Pod untuk digunakan Di sini kami memilih Pod dengan label app=gin-app. Dalam templat Pod, kami mentakrifkan bekas bernama gin-app, mengaitkannya dengan imej Docker yang dibina sebelum ini gin-app:latest, dan menentukan bahawa port dalam bekas yang terdedah kepada bekas lain ialah 8080.

2. Tulis fail Perkhidmatan

Perkhidmatan ialah objek yang digunakan dalam Kubernetes untuk menyediakan perkhidmatan pengimbangan beban Ia boleh menghalakan permintaan dalam kelompok ke Pod yang betul. Berikut ialah contoh Perkhidmatan mudah:

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

Dalam contoh ini, kami mentakrifkan objek Perkhidmatan bernama gin-app-service dan menentukan Pod dengan label app=gin-app sebagai hujung belakang , port bagi perkhidmatan ialah 80, dan permintaan dimajukan ke port 8080 kontena. Pilihan jenis menentukan jenis Perkhidmatan sebagai LoadBalancer, jadi Kubernetes akan mencipta pengimbang beban luaran untuk Perkhidmatan ini supaya kami boleh mengakses perkhidmatan ini dari luar.

3. Penggunaan aplikasi

Selepas menulis fail Deployment dan Service, kami boleh menggunakan perintah kubectl untuk menggunakan mereka ke gugusan Kubernetes. Laksanakan arahan berikut dalam terminal:

kubectl create -f gin-app-deployment.yaml
kubectl create -f gin-app-service.yaml

Kedua-dua arahan ini akan mencipta dua objek Kubernetes gin-app-deployment dan gin-app-service masing-masing dan menggunakan mereka ke gugusan Kubernetes. Selepas penempatan selesai, kita boleh menggunakan perintah kubectl get untuk melihat statusnya:

kubectl get deployments
kubectl get services

Dalam output kedua-dua arahan ini, kita sepatutnya dapat melihat objek Deployment dan Service yang kami buat dan melihat setiap mereka Bilangan salinan, alamat IP, nombor port dan maklumat lain.

3. Ringkasan

Melalui orkestrasi kontena Docker yang dinyatakan di atas dan penggunaan automatik Kubernetes, kami boleh menggunakan aplikasi Gin dengan cepat dalam sebarang persekitaran. Pendekatan ini boleh meningkatkan kecekapan pembangunan dan mengurangkan beban kerja penempatan dan penyelenggaraan. Pada masa yang sama, ciri ketersediaan dan skalabiliti tinggi Kubernetes juga membolehkan kami mengembangkan skala aplikasi dengan mudah untuk memenuhi keperluan perniagaan yang berubah-ubah.

Atas ialah kandungan terperinci Penjelasan terperinci tentang orkestrasi kontena dan penggunaan automatik rangka kerja Gin. 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