Rumah >alat pembangunan >git >Bagaimana untuk menggunakan projek gitlab bahagian hadapan secara automatik ke k8s

Bagaimana untuk menggunakan projek gitlab bahagian hadapan secara automatik ke k8s

PHPz
PHPzasal
2023-03-29 12:44:481628semak imbas

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.

  1. Konfigurasi GitLab

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.

  1. Pemasangan dan Konfigurasi GitLab Runner

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
  1. Mencapai penggunaan automatik

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.

  1. Pengedaran Aplikasi

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!

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