Rumah > Artikel > pembangunan bahagian belakang > Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego
Dengan perkembangan pesat Internet, semakin banyak perusahaan mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan.
Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi, pengurusan Sesi, dll. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Docker dan Kubernetes untuk mengatur dan mengurus aplikasi Beego untuk memudahkan penggunaan dan pengurusan aplikasi yang pantas.
Docker ialah teknologi virtualisasi berasaskan kontena yang membolehkan pembangun membungkus aplikasi dan semua perpustakaan bergantung, fail konfigurasi, dll. dalam bekas, supaya Memastikan aplikasi boleh dijalankan dalam mana-mana persekitaran, dan semua perpustakaan dan konfigurasi bergantung adalah sama.
Apabila menggunakan Docker untuk menggunakan aplikasi Beego, kami boleh membungkus aplikasi, semua perpustakaan bergantung dan fail konfigurasi dalam bekas dan memetakan bekas ke port tertentu pada mesin hos. Dengan cara ini, kami boleh mengakses aplikasi Beego kami melalui alamat IP dan port mesin hos.
Apabila menggunakan Docker untuk menggunakan aplikasi Beego, kita perlu melakukan langkah berikut:
Sila ikuti Dokumentasi rasmi untuk memasang Docker: https://docs.docker.com/install/
Fail Docker ialah fail teks biasa yang mengandungi semua arahan untuk membina imej Docker . Dalam Dockerfile, kita perlu menentukan imej Docker untuk digunakan, menyalin aplikasi dan semua perpustakaan bergantung dan fail konfigurasi ke bekas, mulakan aplikasi Beego, dsb.
Contoh Dockerfile yang mudah adalah seperti berikut:
# 使用golang 1.13版本的Docker镜像 FROM golang:1.13 # 将当前目录下的所有文件复制到容器中/app目录下 ADD . /app # 设置工作目录为/app WORKDIR /app # 编译Beego应用程序 RUN go build main.go # 暴露8080端口 EXPOSE 8080 # 启动Beego应用程序 CMD ["./main"]
Dalam direktori tempat Dockerfile terletak, laksanakan arahan berikut untuk membina Docker. imej:
docker build -t myapp:latest .
Arahan ini akan membungkus semua fail dalam direktori tempat Fail Docker terletak ke dalam imej Docker dengan label myapp:latest.
Selepas membina imej Docker, kita boleh menggunakan arahan berikut untuk menjalankan bekas Docker:
docker run -p 8080:8080 myapp:latest
Arahan ini akan menjalankan label myapp :imej Docker terkini, dan petakan port 8080 kontena ke port 8080 mesin hos.
Kini, kami boleh mengakses aplikasi Beego kami dengan mengakses http://localhost:8080 melalui penyemak imbas.
Kubernetes ialah alat orkestrasi kontena sumber terbuka yang boleh menggunakan secara automatik, menskala dan mengurus aplikasi kontena. Menggunakan Kubernetes boleh menyediakan aplikasi dengan ciri seperti ketersediaan tinggi, kebolehskalaan dan toleransi kesalahan.
Apabila menggunakan Kubernetes untuk menggunakan aplikasi Beego, kami perlu terlebih dahulu membungkus aplikasi dan semua perpustakaan bergantung serta fail konfigurasi ke dalam imej Docker, dan kemudian menggunakan imej Docker ini ke gugusan Kubernetes. Kubernetes akan menjalankan imej Docker ini secara automatik pada nod dalam kelompok Kubernetes dan mendedahkan port perkhidmatan ke luar.
Apabila menggunakan Kubernetes untuk menggunakan aplikasi Beego, kita perlu melakukan langkah berikut:
Sila rujuk dokumentasi rasmi untuk memasang dan mengkonfigurasi gugusan Kubernetes: https://kubernetes.io/docs/setup/
Dalam Kubernetes, kami menggunakan Deployment to define a deployable Himpunan bekas replika yang berkongsi konfigurasi dan volum storan yang sama. Kubernetes akan secara automatik menetapkan Pod (bekas) ini kepada nod dalam kelompok dan menyemak statusnya untuk memastikan ketersediaan tinggi dan toleransi kesalahan aplikasi.
Contoh Deployment yang mudah adalah seperti berikut:
apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment spec: replicas: 3 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myapp:latest ports: - containerPort: 8080
Deployment ini mentakrifkan koleksi kontena boleh ditiru bernama myapp-deployment, yang mengandungi 3 Pod dan dipilih menggunakan label app=myapp Pod. Bekas yang berjalan dalam setiap Pod menggunakan myapp:imej terkini dan dedahkan port kontena 8080.
Dalam Kubernetes, kami menggunakan Perkhidmatan untuk mendedahkan Pod dalam Deployment ke luar. Perkhidmatan akan memberikan IP maya dan port kepada Pod dan memajukan semua permintaan kepada Pod ini.
Contoh Perkhidmatan ringkas adalah seperti berikut:
apiVersion: v1 kind: Service metadata: name: myapp-service spec: selector: app: myapp ports: - name: http port: 8080 targetPort: 8080 type: LoadBalancer
Perkhidmatan ini mentakrifkan perkhidmatan pengimbangan beban bernama myapp-service, yang memajukan permintaan ke Pod dengan label app=myapp dan meletakkan bekas Port 8080 dipetakan ke port Perkhidmatan.
Selepas mencipta Penyerahan dan Perkhidmatan, kita boleh menggunakan arahan berikut untuk menggunakan aplikasi Beego:
kubectl apply -f deployment.yaml kubectl apply -f service.yaml
Arahan ini akan menggunakan replika pengumpulan kontena dan perkhidmatan pengimbangan beban dan tambahkannya pada kelompok Kubernetes.
Sekarang, kami boleh menggunakan perintah kubectl get svc untuk mendapatkan IP maya dan port Perkhidmatan, dan kemudian mengakses aplikasi Beego kami melalui penyemak imbas.
Dalam artikel ini, kami memperkenalkan cara menggunakan Docker dan Kubernetes untuk menggunakan dan mengurus aplikasi Beego. Menggunakan kedua-dua alat ini, kami boleh menggunakan aplikasi dengan cepat ke platform awan dan memastikan konsistensi aplikasi, ketersediaan tinggi, kebolehskalaan dan toleransi kesalahan. Adalah dipercayai bahawa teknologi ini akan membantu dengan penggunaan dan pengurusan aplikasi Internet yang semakin kompleks.
Atas ialah kandungan terperinci Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!