mirror of
https://gitee.com/y_project/RuoYi-Cloud.git
synced 2026-01-26 11:51:55 +08:00
增加k8s部署文件
This commit is contained in:
1
deployment/mysql/db/readme.txt
Normal file
1
deployment/mysql/db/readme.txt
Normal file
@@ -0,0 +1 @@
|
||||
存放sql目录下的所有脚本,用于docker自动执行。
|
||||
5
deployment/mysql/dockerfile
Normal file
5
deployment/mysql/dockerfile
Normal file
@@ -0,0 +1,5 @@
|
||||
# 基础镜像
|
||||
FROM mysql:5.7
|
||||
|
||||
# 执行sql脚本
|
||||
ADD ./db/*.sql /docker-entrypoint-initdb.d/
|
||||
47
deployment/mysql/mysql-deployment.yaml
Normal file
47
deployment/mysql/mysql-deployment.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ruoyi-mysql #指定deployment的名字
|
||||
namespace: kube-ruoyi
|
||||
labels:
|
||||
app: ruoyi-mysql-local
|
||||
spec: #规约
|
||||
replicas: 1 #pod的副本数量,就是希望创建多少个pod的副本.可p选字段。它的默认值是1。
|
||||
selector: #selector 字段定义 Deployment 如何查找要管理的 Pods。必须匹配 .spec.template.metadata.labels,否则请求会被 API 拒绝。
|
||||
matchLabels:
|
||||
app: ruoyi-mysql-local
|
||||
template: #Deployment Pod 模板;它和 Pod 的语法规则完全相同。 只是这里它是嵌套的,因此不需要 apiVersion 或 kind。
|
||||
metadata:
|
||||
labels:
|
||||
app: ruoyi-mysql-local
|
||||
spec: #pod模板规约
|
||||
containers: #容器
|
||||
- name: ruoyi-mysql #容器的名称
|
||||
image: ruoyi/mysql:5.7 #容器使用的镜像
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
volumeMounts:
|
||||
- name: mysql-local-data #pv的name
|
||||
mountPath: /var/lib/mysql #MySQL容器的数据都是存在这个目录的,要对这个目录做数据持久化
|
||||
env:
|
||||
- name: MYSQL_ROOT_PASSWORD
|
||||
valueFrom: # Read environment variables from kubernetes secrets
|
||||
secretKeyRef:
|
||||
name: ruoyi-mysql-secret
|
||||
key: mysql-root-pass
|
||||
- name: MYSQL_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: ruoyi-mysql-secret
|
||||
key: mysql-user
|
||||
- name: MYSQL_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: ruoyi-mysql-secret
|
||||
key: mysql-password
|
||||
volumes:
|
||||
- name: mysql-local-data #pv的name
|
||||
hostPath:
|
||||
path: /run/desktop/mnt/host/c/k8sVolume/mysql/data
|
||||
type: Directory
|
||||
restartPolicy: Always #Deployment 中的 Pod 模板必须指定适当的标签和适当的重新启动策略。只有 .spec.template.spec.restartPolicy 等于 Always 才是被允许的,这也是在没有指定时的默认设置
|
||||
29
deployment/mysql/mysql-pv-pvc.yaml
Normal file
29
deployment/mysql/mysql-pv-pvc.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: mysql-pv
|
||||
namespace: kube-ruoyi
|
||||
spec:
|
||||
capacity:
|
||||
storage: 3Gi
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
persistentVolumeReclaimPolicy: Retain # 手动删除
|
||||
storageClassName: hostpath #表明这个pv所属的storageClass
|
||||
hostPath:
|
||||
path: /mnt/data #节点上卷的完整路径。(必须是存在的路径,不然容器无法创建,deployment会报错)可以是目录或块设备(磁盘、分区…)。
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mysql-pvc-local
|
||||
namespace: kube-ruoyi
|
||||
spec:
|
||||
accessModes: #访问模式 申领在请求具有特定访问模式的存储时,使用与卷相同的访问模式约定。
|
||||
- ReadWriteMany
|
||||
volumeMode: Filesystem #卷模式
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
storageClassName: hostpath # 此处须显式设置空字符串或指定值,否则会被设置为默认的 StorageClass
|
||||
10
deployment/mysql/mysql-secret.yaml
Normal file
10
deployment/mysql/mysql-secret.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: ruoyi-mysql-secret
|
||||
namespace: kube-ruoyi
|
||||
type: Opaque #base-64加密
|
||||
data:
|
||||
mysql-root-pass: cGFzc3dvcmQ=
|
||||
mysql-user: YWRtaW4=
|
||||
mysql-password: MTIzNDU2
|
||||
12
deployment/mysql/mysql-svc.yaml
Normal file
12
deployment/mysql/mysql-svc.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ruoyi-mysql
|
||||
namespace: kube-ruoyi
|
||||
spec:
|
||||
ports:
|
||||
- port: 3306
|
||||
nodePort: 30060
|
||||
selector:
|
||||
app: ruoyi-mysql-local # 该 Service 会将所有具有标签 app: mysql-labels-app暴露到一个抽象的 Service 端口上(targetPort:容器接收流量的端口;port:可任意取值的抽象的 Service 端口,其他 Pod 通过该端口访问 Service
|
||||
type: NodePort
|
||||
Reference in New Issue
Block a user