Artikel ini terutamanya memperkenalkan cara menggunakan projek bahagian hadapan secara automatik ke dalam persekitaran kontena berasaskan Kubernetes. Di sini kami menggunakan GitLab CI/CD untuk melengkapkan proses ini GitLab berfungsi sebagai platform untuk pengurusan kod, kawalan versi dan kerjasama, dan Kubernetes berfungsi sebagai alat untuk orkestrasi kontena dan penggunaan, yang boleh menjadikan proses pembangunan bahagian hadapan lebih cekap dan. selesa.
Mula-mula buat projek pada GitLab dan kaitkan dengan repositori Git. Kemudian, hidupkan fungsi CI/CD dalam tetapan projek dan pilih Pelari yang anda mahu gunakan. Di sini kami akan memasang GitLab Runner dan mendaftarkannya dalam senarai Runner GitLab.
Proses memasang GitLab Runner agak mudah Anda hanya perlu mengikuti panduan pemasangan sistem dan platform yang berbeza.
Selepas pemasangan selesai, kita perlu mengkonfigurasi GitLab Runner. Dengan mengandaikan anda sudah mempunyai kluster Kubernetes, kami perlu mengkonfigurasi GitLab Runner untuk dijalankan pada kluster. Proses konfigurasi khusus adalah seperti berikut:
① Pertama, kita perlu mengkonfigurasi Akaun Perkhidmatan Kubernetes untuk Pelari Akaun Perkhidmatan perlu diberi kuasa untuk mengakses API Kubernetes dalam kelompok.
② Selepas itu, kami perlu mengkonfigurasi Pelari ini untuk menggunakan Akaun Perkhidmatan untuk mengakses API. Untuk melakukan ini, kita perlu menetapkan medan berikut dalam fail konfigurasi Runner (config.toml):
[[runners.kubernetes.volumes.host_path]] name = "docker" mount_path = "/var/run/docker.sock" host_path = "/var/run/docker.sock" [[runners.kubernetes.volumes.config_map]] name = "kube-config" mount_path = "/etc/kubernetes" [[runners.kubernetes.volumes.empty_dir]] name = "tls" mount_path = "/etc/gitlab-runner/certs" [[runners.kubernetes.volumes.secret]] name = "runner-secret" mount_path = "/etc/gitlab-runner"
di mana, kube-config
ialah nama peta konfigurasi yang berkaitan dengan Runner, dan runner-secret
ialah nama peta konfigurasi yang berkaitan dengan Runner Nama rahsia yang berkaitan.
③ Akhir sekali, kita perlu mengemas kini dan memulakan semula GitLab Runner supaya ia boleh menggunakan bekas yang dijalankan dalam Kubernetes. Jalankan arahan berikut untuk memulakan semula GitLab Runner secara automatik:
sudo gitlab-runner restart
Selepas mendapatkan Runner yang dikonfigurasikan, kami boleh mula melaksanakan penempatan automatik . Di sini kami menggunakan fail bernama .gitlab-ci.yml
untuk menentukan proses CI/CD kami.
Pertama, kita perlu menentukan fail Docker untuk digunakan semasa menjalankan kontena dalam Kubernetes. Fail Docker ini akan digunakan semasa membina imej Docker, seperti yang ditunjukkan di bawah:
FROM nginx:1.15.8-alpine COPY dist /usr/share/nginx/html COPY nginx/default.conf /etc/nginx/conf.d/
Imej ini akan menggunakan nginx:1.15.8-alpine
sebagai imej asas, salin fail bahagian hadapan kami ke direktori lalai Nginx, dan gantikan fail Konfigurasi Nginx lalai supaya aplikasi kami dapat berjalan dengan baik.
Kemudian, tentukan proses CI/CD kami dalam fail .gitlab-ci.yml
. Khususnya, kami akan mengisytiharkan proses binaan projek dalam fail ini, kemudian menolak imej Docker yang dibina ke pustaka imej kontena, dan akhirnya menjalankan imej ini dalam Kubernetes. Prosesnya adalah seperti berikut:
stages: - build - release build: stage: build script: - docker build -t registry.cn-hangzhou.aliyuncs.com/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_TAG . - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD registry.cn-hangzhou.aliyuncs.com - docker push registry.cn-hangzhou.aliyuncs.com/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_TAG only: - /^v\d+\.\d+(\.\d+)?(-\S*)?$/ release: stage: release script: - kubectl apply -f k8s/ only: - /^v\d+\.\d+(\.\d+)?(-\S*)?$/
Dalam fail ini, kami mula-mula mengisytiharkan bahawa proses kami mempunyai dua peringkat: build
dan release
, dan lengkapkan binaan dan tolak ke imej bekas dalam build
peringkat proses Perpustakaan, proses penggunaan Kubernetes selesai dalam peringkat release
. Ambil perhatian bahawa di sini kami hanya mendayakan proses CI/CD untuk komit Git yang tagnya ialah nombor versi.
Akhir sekali, gunakan aplikasi kami dalam Kubernetes kami. Kami akan menggunakan fail bernama deployment.yml
untuk melengkapkan penggunaan. Fail ini mengisytiharkan objek Deployment untuk menjalankan aplikasi bahagian hadapan dalam Kubernetes.
apiVersion: apps/v1 kind: Deployment metadata: name: frontend-deployment spec: replicas: 1 # 运行一个副本 selector: matchLabels: app: frontend template: metadata: labels: app: frontend spec: containers: - name: frontend image: registry.cn-hangzhou.aliyuncs.com/wbbry/frontend:latest # 镜像名称 imagePullPolicy: Always ports: - containerPort: 80 # 前端端口
Fail ini menentukan nombor replicas
bagi objek Deployment (di sini ialah 1), dan mengisytiharkan nama dan nombor port imej kontena. Selepas melengkapkan fail penempatan ini, kami boleh menggunakan alat baris arahan Kubernetes (kubectl) untuk mencipta objek Deployment:
kubectl apply -f deployment.yml
Pada ketika ini, aplikasi bahagian hadapan kami seharusnya dapat berjalan dengan jayanya pada Kubernetes.
Kesimpulan
Artikel ini memperkenalkan cara untuk menggunakan projek bahagian hadapan secara automatik ke dalam persekitaran kontena berasaskan Kubernetes. Ia memberi tumpuan kepada penggunaan GitLab CI/CD, Kubernetes dan Docker, dan menunjukkan proses penempatan melalui DEMO yang lengkap. Saya harap artikel ini berguna kepada jurutera pembangunan bahagian hadapan.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan projek gitlab bahagian hadapan secara automatik ke k8s. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!