文章目錄
- 部署基礎服務
- 部署Redis
- 部署MySQL
- 端口轉發測試
- 運行與構建前后端鏡像
- 構建后端鏡像 `docker build -t ruoyi-admin:v3.8 .`
- 構建前端鏡像 `docker build -t ruoyi-ui:v3.8 .`
- 創建私庫,推拉鏡像
- 前后端應用部署
- 后端應用部署
- 前端應用部署
- 啟動順序與初始化容器
- 修改前端部署配置,使用until-do實現等待就緒
- 修改后端部署配置
- Ingress入口
- ingress作用
- ingress部署
- ingress路徑類型
- ingress部署(主機名匹配)
部署基礎服務
# 安裝倉庫(通過鏡像安裝)
[root@k3s-m soft]# helm repo add stable https://mirror.azure.cn/kubernetes/charts/
"stable" has been added to your repositories
[root@k3s-m soft]# helm repo add bitnami https://charts.bitnami.com/bitnami/
"bitnami" has been added to your repositorieshelm repo update# 配置k8s路徑
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
# 持久配置
echo 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml' | sudo tee -a /etc/profile
# 查看配置
echo $KUBECONFIG# 查看已有部署
[root@k3s-m ~]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-mysql default 1 2025-06-07 14:37:37.262899896 +0800 CST deployed mysql-1.6.9 5.7.30
mysql default 1 2025-06-06 21:54:20.065172314 +0800 CST deployed mysql-1.6.9 5.7.30
redis default 1 2025-06-06 22:33:45.539588468 +0800 CST deployed redis-10.5.7 5.0.7
# 刪除部署
[root@k3s-m ~]# helm delete my-mysql
release "my-mysql" uninstalled
部署Redis
helm search repo bitnami/redis --versions
# 這里需要注意,新版本的參數語法可能有所不同,會導致standalone失效
helm install redis bitnami/redis --version 17.3.7 \
--set architecture=standalone \
--set-string auth.password=123456 \
--set replica.replicaCount=0 \
--set master.persistence.enabled=false \
--set master.persistence.medium=Memory \
--set master.persistence.sizeLimit=1Gi \--kubeconfig=/etc/rancher/k3s/k3s.yaml# 復制地址,以供后續鏈接使用
redis-master.default.svc.cluster.local
# 查看pod
[root@k3s-m helm]# kubectl get pod
NAME READY STATUS RESTARTS AGE
mynginx 1/1 Running 11 (134m ago) 7d20h
redis-master-0 1/1 Running 0 4m38s
NAME: redis
LAST DEPLOYED: Wed Jun 11 10:45:53 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: redis
CHART VERSION: 17.3.7
APP VERSION: 7.0.5** Please be patient while the chart is being deployed **Redis® can be accessed via port 6379 on the following DNS name from within your cluster:redis-master.default.svc.cluster.localTo get your password run:export REDIS_PASSWORD=$(kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" | base64 -d)To connect to your Redis® server:1. Run a Redis® pod that you can use as a client:kubectl run --namespace default redis-client --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:7.0.5-debian-11-r7 --command -- sleep infinityUse the following command to attach to the pod:kubectl exec --tty -i redis-client \--namespace default -- bash2. Connect using the Redis® CLI:REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h redis-masterTo connect to your database from outside the cluster execute the following commands:kubectl port-forward --namespace default svc/redis-master 6379:6379 &REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h 127.0.0.1 -p 6379
部署MySQL
- 將ruoyi-vue項目中的sql文件夾拷貝到服務器,執行命令生成configMap
[root@k3s-m app]# kubectl create configmap ruoyi-init-sql --from-file=/home/app/sql
configmap/ruoyi-init-sql created
- 編寫部署配置文件ruoyi-mysql.yaml
auth:rootPassword: "123456"database: ry-vueinitdbScriptsConfigMap: ruoyi-init-sqlprimary:persistence:size: 2Gienabled: truesecondary:replicaCount: 2persistence:size: 2Gienabled: truearchitecture: replication
[root@k3s-m helm]# ls
ruoyi-mysql.yaml
# 注意指定版本,否則可能導致副本數不生效。
[root@k3s-m helm]# helm install db -f ruoyi-mysql.yaml bitnami/mysql --version 9.4.1 --kubeconfig=/etc/rancher/k3s/k3s.yaml
NAME: db
LAST DEPLOYED: Wed Jun 11 10:52:49 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.4.1
APP VERSION: 8.0.31** Please be patient while the chart is being deployed **Tip:Watch the deployment status using the command: kubectl get pods -w --namespace defaultServices:echo Primary: db-mysql-primary.default.svc.cluster.local:3306echo Secondary: db-mysql-secondary.default.svc.cluster.local:3306Execute the following to get the administrator credentials:echo Username: rootMYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default db-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)To connect to your database:1. Run a pod that you can use as a client:kubectl run db-mysql-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.31-debian-11-r0 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash2. To connect to primary service (read/write):mysql -h db-mysql-primary.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"3. To connect to secondary service (read-only):mysql -h db-mysql-secondary.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"# 復制訪問地址
echo Primary: db-mysql-primary.default.svc.cluster.local:3306
echo Secondary: db-mysql-secondary.default.svc.cluster.local:3306
端口轉發測試
[root@k3s-m helm]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 13d
redis-headless ClusterIP None <none> 6379/TCP 16m
redis-master ClusterIP 10.43.156.26 <none> 6379/TCP 16m
db-mysql-secondary-headless ClusterIP None <none> 3306/TCP 9m11s
db-mysql-primary-headless ClusterIP None <none> 3306/TCP 9m11s
db-mysql-secondary ClusterIP 10.43.81.111 <none> 3306/TCP 9m11s
db-mysql-primary ClusterIP 10.43.71.82 <none> 3306/TCP 9m11s[root@k3s-m helm]# kubectl port-forward svc/db-mysql-primary --address=192.168.55.10 3306:3306
Forwarding from 192.168.55.10:3306 -> 3306
[root@k3s-m helm]# kubectl port-forward svc/redis-master --address=192.168.55.10 6379:6379
Forwarding from 192.168.55.10:6379 -> 6379
運行與構建前后端鏡像
構建后端鏡像 docker build -t ruoyi-admin:v3.8 .
#編譯
FROM maven AS build
WORKDIR /build/app
#將本地的maven目錄裝載到容器中的maven目錄下,這樣就不用重復下載依賴的jar包了
#VOLUME ~/.m2 /root/.m2
COPY . .
RUN mvn clean package#打包
FROM openjdk:8u342-jre
WORKDIR /app/ruoyi
COPY --from=build /build/app/ruoyi-admin/target/ruoyi-admin.jar .
EXPOSE 8080
ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]
構建前端鏡像 docker build -t ruoyi-ui:v3.8 .
FROM node:14-alpine AS build
WORKDIR /build/ruoyi-ui
COPY . .
# 安裝依賴并打包到正式環境
RUN npm install --registry=https://registry.npmmirror.com && npm run build:prodFROM nginx:1.22
WORKDIR /app/ruoyi-ui
COPY --from=build /build/ruoyi-ui/dist .
EXPOSE 80
創建私庫,推拉鏡像
# 本地docker自建倉庫
docker run -d -p 5000:5000 --name registry registry:2
# k3s倉庫配置/etc/rancher/k3s/registries.yaml
mirrors:"192.168.55.1:5000":endpoint:- "http://192.168.55.1:5000"insecure: true # 信任非https協議
#重啟master組件
systemctl restart k3s
#重啟node組件
systemctl restart k3s-agent
查看containerd的配置文件
cat /var/lib/rancher/k3s/agent/etc/containerd/config.toml
# 宿主機標記并推送鏡像
docker tag ruoyi-admin:v3.8 127.0.0.1:5000/ruoyi-admin:v3.8
docker push 127.0.0.1:5000/ruoyi-admin:v3.8
docker tag ruoyi-ui:v3.8 127.0.0.1:5000/ruoyi-ui:v3.8
docker push 127.0.0.1:5000/ruoyi-ui:v3.8
# 虛擬機拉去鏡像
crictl pull 192.168.55.1:5000/ruoyi-ui:v3.8
crictl pull 192.168.55.1:5000/ruoyi-admin:v3.8
前后端應用部署
- 復制dns地址
#Redis can be accessed via port 6379 on the following DNS name from within your cluster:
redis-master.default.svc.cluster.local#MySQL DNS NAME
Primary: db-mysql-primary.default.svc.cluster.local:3306
Secondary: db-mysql-secondary.default.svc.cluster.local:3306
后端應用部署
- 編寫配置文件
application-k8s.yaml
# 數據源配置
spring:# redis 配置redis:# 地址host: redis-master# 端口,默認為6379port: 6379# 數據庫索引database: 0# 密碼password: 123456# 連接超時時間timeout: 10slettuce:pool:# 連接池中的最小空閑連接min-idle: 0# 連接池中的最大空閑連接max-idle: 8# 連接池的最大數據庫連接數max-active: 8# #連接池最大阻塞等待時間(使用負值表示沒有限制)max-wait: -1msdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverdruid:# 主庫數據源master:url: jdbc:mysql://db-mysql-primary:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 123456# 從庫數據源slave:# 從數據源開關/默認關閉enabled: trueurl: jdbc:mysql://db-mysql-secondary:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 123456# 初始連接數initialSize: 5# 最小連接池數量minIdle: 10# 最大連接池數量maxActive: 20# 配置獲取連接等待超時的時間maxWait: 60000# 配置連接超時時間connectTimeout: 30000# 配置網絡超時時間socketTimeout: 60000# 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一個連接在池中最小生存的時間,單位是毫秒minEvictableIdleTimeMillis: 300000# 配置一個連接在池中最大生存的時間,單位是毫秒maxEvictableIdleTimeMillis: 900000# 配置檢測連接是否有效validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsewebStatFilter: enabled: truestatViewServlet:enabled: true# 設置白名單,不填則允許所有訪問allow:url-pattern: /druid/*# 控制臺管理用戶名和密碼login-username: ruoyilogin-password: 123456filter:stat:enabled: true# 慢SQL記錄log-slow-sql: trueslow-sql-millis: 1000merge-sql: truewall:config:multi-statement-allow: true
- 使用配置文件生成configMap
[root@k3s-m app]# kubectl create configmap ruoyi-admin-config --from-file=/home/app/application-k8s.yaml
configmap/ruoyi-admin-config created
- 編寫部署配置
ruoyi-admin.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: ruoyi-adminlabels:app: ruoyi-admin
spec:replicas: 1selector:matchLabels:app: ruoyi-admintemplate:metadata:labels:app: ruoyi-adminspec:containers:- name: ruoyi-adminimage: 10.150.36.72:5000/ruoyi-admin:v3.8ports:- containerPort: 8080volumeMounts:# springBoot啟動時,在jar包所在位置的config目錄下查找配置文件# jar包所在的位置就是dockerfile中WORKDIR定義的目錄,即/app/ruoyi- mountPath: /app/ruoyi/configname: config# 使用application-k8s.yaml作為配置文件# 啟動命令如下: java -jar ruoyi-admin.jar --spring.profiles.active=k8sargs: ["--spring.profiles.active=k8s"]volumes:- name: configconfigMap:name: ruoyi-admin-config
---
apiVersion: v1
kind: Service
metadata:name: ruoyi-admin
spec:type: ClusterIPselector:app: ruoyi-adminports:- port: 8080targetPort: 8080
- 執行部署命令
kubectl apply -f ruoyi-admin.yaml
kubectl get pods
kubectl logs -f ruoyi-admin-559d7f64c5-vx2lc kubectl get svc
kubectl port-forward svc/ruoyi-admin --address=192.168.55.10 8080:8080
前端應用部署
- 編寫nginx配置
server {listen 80;server_name localhost;charset utf-8;location / {# dockerfile中WORKDIR目錄root /app/ruoyi-ui;try_files $uri $uri/ /index.html;index index.html index.htm;}location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 后端service的DNSproxy_pass http://ruoyi-admin:8080/;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}
- 使用nginx.conf生成configMap
[root@k3s-m app]# kubectl create configmap ruoyi-ui-config --from-file=/home/app/nginx.conf
configmap/ruoyi-ui-config created
- 編寫k3s部署配置
ruoyi-ui.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: ruoyi-uilabels:app: ruoyi-ui
spec:replicas: 1selector:matchLabels:app: ruoyi-uitemplate:metadata:labels:app: ruoyi-uispec:containers:- name: ruoyi-uiimage: 192.168.55.1:5000/ruoyi-ui:v3.8ports:- containerPort: 80volumeMounts:- mountPath: /etc/nginx/conf.dname: configvolumes:- name: configconfigMap:name: ruoyi-ui-configitems:- key: nginx.confpath: default.conf
---
apiVersion: v1
kind: Service
metadata:name: ruoyi-ui
spec:type: NodePortselector:app: ruoyi-uiports:- port: 80targetPort: 80nodePort: 30080
- 執行部署命令
kubectl apply -f ruoyi-ui.yaml
kubectl get pods
- 訪問前端頁面:http://192.168.55.10:30080/index
啟動順序與初始化容器
我們可以使用初始化容器(Init Container)來控制啟動順序。
● Pod中的初始化容器在應用容器之前啟動。
● 初始化容器未執行完成,應用容器不會啟動。
● 多個初始化容器按順序執行,前一個執行完成才會執行下一個。
修改前端部署配置,使用until-do實現等待就緒
apiVersion: apps/v1
kind: Deployment
metadata:name: ruoyi-uilabels:app: ruoyi-ui
spec:replicas: 1selector:matchLabels:app: ruoyi-uitemplate:metadata:labels:app: ruoyi-uispec:# 修改這里,加入檢查配置initContainers:- name: wait-for-ruoyi-admin # 名稱image: nginx:1.22 # 鏡像command: # 首先進入循環,每隔5秒執行一次。訪問后端,-m 3 表示超時3秒- sh- -c- |until curl -m 3 ruoyi-admin:8080 do echo waiting for ruoyi-admin;sleep 5;donecontainers:- name: ruoyi-uiimage: 192.168.55.1:5000/ruoyi-ui:v3.8ports:- containerPort: 80volumeMounts:- mountPath: /etc/nginx/conf.dname: configvolumes:- name: configconfigMap:name: ruoyi-ui-configitems:- key: nginx.confpath: default.conf
---
apiVersion: v1
kind: Service
metadata:name: ruoyi-ui
spec:type: NodePortselector:app: ruoyi-uiports:- port: 80targetPort: 80nodePort: 30080
[root@k3s-m app]# kubectl delete -f ruoyi-ui.yaml
[root@k3s-m app]# kubectl apply -f ruoyi-ui2.yaml
[root@k3s-m app]# kubectl get pods -owide --watch
ruoyi-ui-787bbfb854-9gl7h 0/1 Terminating 2 (81m ago) 22h 10.42.1.101 k3s-w1 <none> <none>
ruoyi-ui-b6bc44dd6-9rc48 0/1 Pending 0 0s <none> <none> <none> <none>
ruoyi-ui-b6bc44dd6-9rc48 0/1 Pending 0 0s <none> k3s-w1 <none> <none>
ruoyi-ui-b6bc44dd6-9rc48 0/1 Init:0/1 0 0s <none> k3s-w1 <none> <none>
ruoyi-ui-b6bc44dd6-9rc48 0/1 Init:0/1 0 3s 10.42.1.102 k3s-w1 <none> <none>
ruoyi-ui-b6bc44dd6-9rc48 0/1 PodInitializing 0 5s 10.42.1.102 k3s-w1 <none> <none>
ruoyi-ui-b6bc44dd6-9rc48 1/1 Running 0 6s 10.42.1.102 k3s-w1 <none> <none>
修改后端部署配置
apiVersion: apps/v1
kind: Deployment
metadata:name: ruoyi-adminlabels:app: ruoyi-admin
spec:replicas: 1selector:matchLabels:app: ruoyi-admintemplate:metadata:labels:app: ruoyi-adminspec:initContainers:- name: wait-for-mysqlimage: bitnami/mysql:8.0.31-debian-11-r0env:- name: MYSQL_ROOT_PASSWORDvalue: "123456"command:- sh- -c- |set -emaxTries=10while [ "$$maxTries" -gt 0 ] \&& ! mysqladmin ping --connect-timeout=3 -s \-hdb-mysql-primary -uroot -p$$MYSQL_ROOT_PASSWORDdo echo 'Waiting for MySQL to be available'sleep 5let maxTries--doneif [ "$$maxTries" -le 0 ]; thenecho >&2 'error: unable to contact MySQL after 10 tries'exit 1fi- name: wait-for-redisimage: bitnami/redis:7.0.5-debian-11-r7env:- name: REDIS_PASSWORDvalue: "123456"command:- sh- -c- |set -emaxTries=10while [ "$$maxTries" -gt 0 ] \&& ! timeout 3 redis-cli -h redis-master -a $$REDIS_PASSWORD pingdo echo 'Waiting for Redis to be available'sleep 5let maxTries--doneif [ "$$maxTries" -le 0 ]; thenecho >&2 'error: unable to contact Redis after 10 tries'exit 1ficontainers:- name: ruoyi-adminimage: 192.168.55.1:5000/ruoyi-admin:v3.8ports:- containerPort: 8080volumeMounts:# springBoot啟動時,在jar包所在位置的config目錄下查找配置文件# jar包所在的位置就是dockerfile中WORKDIR定義的目錄,即/app/ruoyi- mountPath: /app/ruoyi/configname: config# 使用application-k8s.yaml作為配置文件# 啟動命令如下: java -jar ruoyi-admin.jar --spring.profiles.active=k8sargs: ["--spring.profiles.active=k8s"]volumes:- name: configconfigMap:name: ruoyi-admin-config
---
apiVersion: v1
kind: Service
metadata:name: ruoyi-admin
spec:type: ClusterIPselector:app: ruoyi-adminports:- port: 8080targetPort: 8080
kubectl delete -f ruoyi-admin.yaml
kubectl apply -f ruoyi-admin2.yaml
[root@k3s-m app]# kubectl get pods -owide --watch
ruoyi-admin-559d7f64c5-vx2lc 0/1 Terminating 4 23h 10.42.0.131 k3s-m <none> <none>
ruoyi-admin-56d5b45cbc-52j72 0/1 Pending 0 0s <none> <none> <none> <none>
ruoyi-admin-56d5b45cbc-52j72 0/1 Pending 0 0s <none> k3s-m <none> <none>
ruoyi-admin-56d5b45cbc-52j72 0/1 Init:0/2 0 0s <none> k3s-m <none> <none>
ruoyi-admin-56d5b45cbc-52j72 0/1 Init:1/2 0 2s 10.42.0.133 k3s-m <none> <none>
ruoyi-admin-56d5b45cbc-52j72 0/1 Init:1/2 0 9s 10.42.0.133 k3s-m <none> <none>
ruoyi-admin-56d5b45cbc-52j72 0/1 PodInitializing 0 10s 10.42.0.133 k3s-m <none> <none>
ruoyi-admin-56d5b45cbc-52j72 1/1 Running 0 11s 10.42.0.133 k3s-m <none> <none>
使用until do
的方式雖然可以實現等待依賴的服務就緒,但是他是一個無限循環,最好的方式是設置失敗重試次數,超過這個次數,初始化容器以失敗的狀態退出,Pod啟動終止。
Ingress入口
ingress作用
功能類似一個Nginx服務器。
- URL路由規則配置
- 實現負載均衡、流量分割、流量限制
- https配置
- 基于名字的虛擬托管
創建Ingress資源需要先部署Ingress控制器,如ingress-nginx。
不同控制器用法和配置是不一樣的。
k3s自帶一個基于Traefik的ingress控制器,因此我們可以直接創建ingress資源,無需再安裝ingress控制器。
注意:ingress只能公開http和https類型的服務到互聯網。公開其他類型的服務需要NodePort或LoadBalancer類型的Service。
ingress部署
- 編寫部署配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ruoyi-ingress
spec:rules:- http:paths:- path: / # 注意:這里的path,需要跟ruoyi-ui使用的nginx.conf中的location一致,不然會報錯。pathType: Prefixbackend:service:name: ruoyi-uiport:number: 80
- 執行部署命令
[root@k3s-m app]# vi ruoyi-ingress.yaml
[root@k3s-m app]# kubectl apply -f ruoyi-ingress.yaml
ingress.networking.k8s.io/ruoyi-ingress created
[root@k3s-m app]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ruoyi-ingress <none> * 192.168.55.10,192.168.55.11 80 8s
[root@k3s-m app]# kubectl describe ingress
Name: ruoyi-ingress
Labels: <none>
Namespace: default
Address: 192.168.55.10,192.168.55.11
Ingress Class: <none>
Default backend: <default>
Rules:Host Path Backends---- ---- --------* / ruoyi-ui:80 (10.42.1.102:80)
Annotations: <none>
Events: <none>
- 訪問:http://192.168.55.10
ingress路徑類型
Ingress 中的每個路徑必須設置路徑類型(Path Type),當前支持的路徑類型有三種:
Exact
:精確匹配 URL 路徑。區分大小寫。
Prefix
:URL 路徑前綴匹配。區分大小寫。并且對路徑中的元素逐個完成。
(說明:/foo/bar 匹配 /foo/bar/baz, 但不匹配 /foo/barbaz。)
ImplementationSpecific
:對于這種路徑類型,匹配方法取決于 IngressClass定義的處理邏輯。
ingress部署(主機名匹配)
- 編寫部署配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ruoyi-ingress
spec:rules:#類似于nginx的虛擬主機配置- host: "front.ruoyi.com"http:paths:- pathType: Prefixpath: "/"backend:service:name: ruoyi-uiport:number: 80- host: "backend.ruoyi.com"http:paths:- pathType: Prefixpath: "/"backend:service:name: ruoyi-adminport:number: 8080
- 執行部署
[root@k3s-m app]# vi ruoyi-ingress2.yaml
[root@k3s-m app]# kubectl apply -f ruoyi-ingress2.yaml
ingress.networking.k8s.io/ruoyi-ingress configured
[root@k3s-m app]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ruoyi-ingress <none> front.ruoyi.com,backend.ruoyi.com 192.168.55.10,192.168.55.11 80 13m
- 訪問前后端
在hosts中添加域名映射后,訪問域名地址。
192.168.55.10 front.ruoyi.com
192.168.55.10 backend.ruoyi.com