1.掛載存儲
可參考 之前文章設置 https://blog.csdn.net/weimeibuqieryu/article/details/140183843
2.部署yaml
先創建命名空間ruoyi, 有就不用創建了
kubectl create namespace ruoyi
我暫不需要使用xxjob和Monitor模塊, 所以去除了. 有需要再自行添加
需要先啟動后端服務ruoyi-service ,不然k8s會找不到后端服務報錯
需要先啟動后端服務ruoyi-service ,不然k8s會找不到后端服務報錯
創建部署文件 nginx-deploy.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: nginx-pvnamespace: ruoyi #使用ns ruoyi
spec:capacity:storage: 1Gi #存儲容量為 1 GiBaccessModes:- ReadWriteManynfs:path: /nfs/nginx/html/ruoyi-vue-plus #使用 NFS 服務器的路徑和地址, 使用自己定義的server: 139.159.140.xxx
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nginx-pvcnamespace: ruoyi
spec:accessModes:- ReadWriteManyresources:requests:storage: 1Gi
---apiVersion: v1
kind: Service
metadata:labels:app: nginx-servicename: nginx-servicenamespace: ruoyi
spec:ports:- nodePort: 30088 #節點端口 30088port: 80protocol: TCPtargetPort: 80selector:app: nginx-podtype: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-deployname: nginx-deploynamespace: ruoyi
spec:replicas: 1selector:matchLabels:app: nginx-podstrategy: {}template:metadata:labels:app: nginx-podnamespace: ruoyispec:containers:- image: nginx:1.22.1 使用 Nginx 1.22.1 鏡像name: nginxports:- containerPort: 80resources: { }volumeMounts:- name: nginx-configmountPath: /etc/nginx/nginx.confsubPath: nginx.conf- name: html-filesmountPath: "/usr/share/nginx/html/ruoyi-vue-plus"env:- name: TZ # 配置環境變量,設置時區value: Asia/Shanghaivolumes:- name: nginx-configconfigMap:name: nginx-configmapitems:- key: nginx.confpath: nginx.conf- name: html-filespersistentVolumeClaim:claimName: nginx-pvc
---
apiVersion: v1
kind: ConfigMap
metadata:name: nginx-configmapnamespace: ruoyi
data:nginx.conf: | #直接從項目里面復制. 修改后端服務為ruoyi-service:8080, 記得修改worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;# 限制body大小client_max_body_size 100m;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;upstream server {ip_hash;server ruoyi-service:8080; #就是這里記得修改}server {listen 80;server_name localhost;#https配置參考 start# listen 444 ssl;# 證書直接存放 /docker/nginx/cert/ 目錄下即可 更改證書名稱即可 無需更改證書路徑# ssl on;# ssl_certificate /etc/nginx/cert/origin.pem; # /etc/nginx/cert/ 為docker映射路徑 不允許更改# ssl_certificate_key /etc/nginx/cert/originPrivate.pem; # /etc/nginx/cert/ 為docker映射路徑 不允許更改# ssl_session_timeout 5m;# ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# ssl_prefer_server_ciphers on;# https配置參考 end# 演示環境配置 攔截除 GET POST 之外的所有請求# if ($request_method !~* GET|POST) {# rewrite ^/(.*)$ /403;# }# location = /403 {# default_type application/json;# return 200 '{"msg":"演示模式,不允許操作","code":500}';# }# 限制外網訪問內網 actuator 相關路徑location ~ ^(/[^/]*)?/actuator(/.*)?$ {return 403;}location / {root /usr/share/nginx/html/ruoyi-vue-plus;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;proxy_pass http://server/;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}}
部署該服務
kubectl apply -f nginx-deploy.yaml
就可以使用節點的ip+30088來訪問了. 公網記得防火墻的端口要打開