Dengan perkembangan teknologi pengkomputeran awan dan kontena, semakin banyak perusahaan mula menggunakan Kubernetes untuk mengurus dan menggunakan aplikasi. Sebagai bahasa pembangunan berprestasi tinggi, Golang semakin digemari oleh pembangun. Artikel ini akan memperkenalkan cara menggunakan rangka kerja web Golang Echo framework dan Kubernetes untuk membina aplikasi.
Pertama, kita perlu memasang persekitaran pembangunan Golang dan rangka kerja Echo secara tempatan. Pemasangan rangka kerja Golang dan Echo boleh dikendalikan mengikut dokumen rasmi, dan tidak akan diterangkan secara terperinci di sini.
Buat projek Golang baharu dalam persekitaran pembangunan tempatan anda. Kami akan mencipta aplikasi web mudah yang melaluinya pengguna boleh menanyakan masa semasa. Cipta folder baharu dan buat fail bernama main.go, salin kod berikut ke dalam fail:
package main import ( "net/http" "time" "github.com/labstack/echo" "github.com/labstack/echo/middleware" ) func main() { e := echo.New() // Middleware e.Use(middleware.Logger()) e.Use(middleware.Recover()) // Routes e.GET("/", func(c echo.Context) error { return c.String(http.StatusOK, time.Now().String()) }) // Start server e.Logger.Fatal(e.Start(":8080")) }
Dalam kod di atas, kami telah menggunakan rangka kerja Echo untuk mencipta pelayan HTTP, Masa semasa dikembalikan apabila pengguna mengakses laluan akar.
Untuk memudahkan proses penempatan, kami menyimpan aplikasi dan memuat naiknya ke Docker Hub. Cipta fail bernama Dockerfile dan salin kod berikut ke dalam fail:
FROM golang:1.13-alpine RUN apk --no-cache add gcc g++ make WORKDIR /app COPY . . RUN go build -o main . EXPOSE 8080 CMD ["./main"]
Dalam kod di atas, kami menggunakan imej 1.13-alpine yang disediakan secara rasmi oleh Golang sebagai imej asas, pasang kebergantungan kompilasi dan Salin sumber kod ke dalam bekas. Kemudian jalankan arahan go build untuk menyusun fail boleh laku dan akhirnya mulakan pelayan web.
Jalankan arahan berikut dalam direktori akar projek untuk membina imej Docker:
docker build -t yourdockerhubusername/echo-app .
Sebelum digunakan, kami perlu memasang alat Kubectl secara setempat dan perlu untuk mempunyai kluster Kubernetes yang Tersedia. Untuk langkah terperinci tentang memasang dan mengkonfigurasi alat Kubectl, sila rujuk dokumentasi rasmi Kubernetes.
Buat fail yang dipanggil echo-deployment.yaml dan salin kod berikut ke dalam fail:
apiVersion: apps/v1 kind: Deployment metadata: name: echo-app labels: app: echo spec: replicas: 2 selector: matchLabels: app: echo template: metadata: labels: app: echo spec: containers: - name: echo-app image: yourdockerhubusername/echo-app ports: - containerPort: 8080
Dalam kod di atas, kami telah mencipta fail yang dipanggil Echo-app Deployment, sambil menggunakan imej kontena yourdockerhubusername/echo-app untuk menjalankan aplikasi. Bilangan salinan contoh Deployment ini ialah 2, dan setiap salinan memulakan pelayan web dan mendengar port 8080.
Seterusnya, kami perlu mencipta Perkhidmatan untuk mendedahkan contoh Penerapan apl gema. Cipta fail bernama echo-service.yaml dan salin kod berikut ke dalam fail:
apiVersion: v1 kind: Service metadata: name: echo-service spec: ports: - name: http port: 80 targetPort: 8080 selector: app: echo
Dalam kod di atas, kami mencipta Perkhidmatan bernama echo-service, dengar pada port 80 dan Majukan permintaan ke port 8080 daripada contoh Penerapan apl gema.
Jalankan arahan berikut dalam direktori akar projek untuk menggunakan aplikasi:
kubectl apply -f echo-deployment.yaml kubectl apply -f echo-service.yaml
Selepas arahan di atas selesai, anda boleh melihat alamat IP Perkhidmatan melalui arahan berikut:
kubectl get svc echo-service
Sambung Seterusnya, lawati http://
Pada ketika ini, kami telah berjaya membina aplikasi web mudah menggunakan rangka kerja Echo Golang dan Kubernetes. Kaedah ini mudah dan cekap, serta boleh meningkatkan kecekapan pembangunan dan penggunaan.
Atas ialah kandungan terperinci Bina aplikasi menggunakan rangka kerja web Golang rangka kerja Echo dan Kubernetes. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!