Rumah  >  Artikel  >  Java  >  Bagaimana untuk menggunakan aplikasi SpringBoot ke K8S

Bagaimana untuk menggunakan aplikasi SpringBoot ke K8S

王林
王林ke hadapan
2023-05-14 17:22:061425semak imbas

Tolak imej ke Docker Hub

Kami pernah membina gudang imej kami sendiri Kali ini kami menukar kaedah dan memuat naik imej ke Docker Hub.

  • Mula-mula kita perlu mendaftar akaun untuk Docker Hub, Docker HubAlamat: https://hub.docker.com/

    Bagaimana untuk menggunakan aplikasi SpringBoot ke K8S


  • Untuk menggunakan aplikasi dan menggunakan projek mall-tiny-fabric sebelumnya, ubah suai fail pom.xml dahulu, terutamanya untuk menambah maklumat pensijilan Docker Hub dan ubah suai awalan Imej berikut, kandungan khusus adalah seperti berikut; pelayan

    dahulu, dan kemudian gunakan perintah
  • Tolak imej ke
:
  • packageLinux Selepas tolakan berjaya, anda boleh melihat imej dalam docker:push. Docker HubBagaimana untuk menggunakan aplikasi SpringBoot ke K8S

  • Pengerahan Aplikasi

    Docker HubBagaimana untuk menggunakan aplikasi SpringBoot ke K8SSeterusnya kami akan menggunakan aplikasi ke K8S, termasuk

    penggunaan aplikasi dan
  • penggunaan .

Gunakan MySQL

SpringBootMySQL

Mula-mula tambah fail konfigurasi

untuk mencipta Sila rujuk komen untuk perkara yang spesifik arahan;

    <configuration>    <!-- Docker 远程管理地址-->    <dockerHost>http://192.168.5.94:2375</dockerHost>    <!-- 增加认证信息-->    <authConfig>        <push>            <!--Docker Hub 客户名-->            <username>macrodocker</username>            <!--Docker Hub 密码-->            <password>xxx</password>        </push>    </authConfig>    <images>        <image>            <!--修改镜像前缀为Docker Hub 客户名-->            <name>macrodocker/${project.name}:${project.version}</name>        </image>     </images> </configuration>
  • mysql-deployment.yamlBuat dengan menggunakan fail konfigurasiDeployment; 🎜>

  • Selepas berjalan dengan jayanya, tanya
dan dapatkan bahawa
    sudah sedia; 🎜>, anda boleh lulus Untuk mengakses nama perkhidmatan
  • , anda perlu mencipta

    dan menambah fail konfigurasi Deployment untuk mencipta Deployment; 🎜>

    dicipta dengan menggunakan fail konfigurasi
  • ; > telah didedahkan pada port
;
  • apiVersion: apps/v1kind: Deploymentmetadata:  # 指定Deployment的名称  name: mysql-deployment  # 指定Deployment的标签   labels:    app: mysqlspec:  # 指定创立的Pod副本数量   replicas: 1  # 定义如何查找要管理的Pod  selector:    # 管理标签app为mysql的Pod    matchLabels:      app: mysql  # 指定创立Pod的模板  template:    metadata:      # 给Pod打上app:mysql标签      labels:        app: mysql    # Pod的模板规约    spec:      containers:        - name: mysql          # 指定容器镜像          image: mysql:5.7          # 指定开放的端口          ports:            - containerPort: 3306          # 设置环境变量          env:            - name: MYSQL_ROOT_PASSWORD              value: root          # 使用存储卷          volumeMounts:            # 将存储卷挂载到容器内部路径            - mountPath: /var/log/mysql              name: log-volume            - mountPath: /var/lib/mysql              name: data-volume            - mountPath: /etc/mysql              name: conf-volume      # 定义存储卷      volumes:        - name: log-volume          # hostPath类型存储卷在宿主机上的路径          hostPath:            path: /home/docker/mydata/mysql/log            # 当目录不存在时创立            type: DirectoryOrCreate        - name: data-volume          hostPath:            path: /home/docker/mydata/mysql/data            type: DirectoryOrCreate        - name: conf-volume          hostPath:            path: /home/docker/mydata/mysql/conf            type: DirectoryOrCreate
    Deploymentmysql-deployment

    Selepas penempatan selesai, anda perlu mencipta pangkalan data
  • baharu dan mengimport yang berkaitan tables. Alamat jadual ialah: macrozheng/mall-learning/blob/master/document/sql/mall.sql
  • Berikut ialah cara yang agak mudah untuk mengimport pangkalan data melalui Pod dan mula-mula mengkonfigurasi saluran SSH; MySQLServicemysql-service.yamlService

    Selepas itu, kita boleh mengakses pangkalan data dalam
  • sama seperti mengakses pangkalan data pada pelayan
. Cuma tambahkan IP pangkalan data dan port dalam
    terus.
  • Service

  • Kerahkan aplikasi SpringBoot

    Servicemysql-serviceNode的30306

    Mula-mula tambah fail konfigurasi
  • dengan Untuk mencipta
, di sini kita boleh mengatasi konfigurasi lalai dalam
    melalui pembolehubah persekitaran; fail ;
  • mall

    kubectl apply -f mysql-deployment.yaml

  • Kita boleh melihat log permulaan aplikasi melalui perintah

    ; Navicat Bagaimana untuk menggunakan aplikasi SpringBoot ke K8SJika anda ingin mengakses aplikasi

    dari luar, anda perlu mencipta
  • dan menambah fail konfigurasi
  • untuk mencipta

    ; LinuxMinikubeMinikube Buat

    dengan menggunakan fail konfigurasi; port;

    Bagaimana untuk menggunakan aplikasi SpringBoot ke K8S

    [macro@linux-local k8s]$ kubectl get deploymentsNAME                      READY   UP-TO-DATE   AVAILABLE   AGEmysql-deployment          1/1     1            1           38snginx-volume-deployment   2/2     2            2           6d5h

Pada pelayan , kita boleh mengakses halaman projek seterusnya melalui perintah

, tetapi kita boleh hanya lihat rentetan
    kod yang dikembalikan.
  • mall-tiny-fabric-deployment.yaml

    apiVersion: v1kind: Servicemetadata:  # 定义服务名称,其余Pod可以通过服务名称作为域名进行访问  name: mysql-servicespec:  # 指定服务类型,通过Node上的静态端口暴露服务  type: NodePort  # 管理标签app为mysql的Pod  selector:    app: mysql  ports:    - name: http      protocol: TCP      port: 3306      targetPort: 3306      # Node上的静态端口      nodePort: 30306
    DeploymentSpringBootAplikasi akses luaran

  • 因为使用Minikube安装的K8S Node处于Linux服务器的内网环境,无法直接从外部访问,所以我们需要安装一个Nginx反向代理商下才能访问。

    • 首先我们需要安装Nginx

    • 安装完成后增加一个Nginx的配置文件,这里我的配置路径为/mydata/nginx/conf/conf.d/,用于将mall-tiny.macrozheng.com域名的访问代理商到K8S中的SpringBoot应用中去,proxy_pass为上面curl使用的路径;

    server {    listen       80;    server_name  mall-tiny.macrozheng.com; #修改域名    location / {        proxy_set_header Host $host:$server_port;        proxy_pass   http://192.168.49.2:30180; #修改为代理商服务地址        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }}
    • 重启Nginx服务,再修改访问Linux服务器的本机host文件,增加如下记录;

    192.168.5.94 mall-tiny.macrozheng.com
    • 之后就可直接在本机上访问K8S上的SpringBoot应用了,访问地址:http://mall-tiny.macrozheng.com/swagger-ui.html

    • Bagaimana untuk menggunakan aplikasi SpringBoot ke K8S

Atas ialah kandungan terperinci Bagaimana untuk menggunakan aplikasi SpringBoot ke K8S. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam