mysql-pv-pvc.yaml
基于nfs
#pv不用指定命名空间 #pvc需要指定命名空间,默认为default #若有配置hosts映射,可使用映射名代替 #pv相当于逻辑卷,pvc是将多个卷合并为一使用 apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv namespace: test spec: capacity: storage: 1Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: mysql-nfs nfs: path: /data/nfs/mysql server: 192.168.137.100 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc namespace: test spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi storageClassName: mysql-nfs
mysql-deployment-svc.yaml
apiVersion: apps/v1 kind: Deployment metadata: labels: app: mysql name: mysql namespace: test spec: selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - image: mysql:8.0.30 name: mysql env: - name: MYSQL_ROOT_PASSWORD value: "1314521" - name: TZ value: "Asia/Shanghai" ports: - containerPort: 3306 volumeMounts: - name: mysqlvolume mountPath: /var/lib/mysql volumes: - name: mysqlvolume persistentVolumeClaim: claimName: mysql-pvc --- apiVersion: v1 kind: Service metadata: labels: app: svc-mysql name: svc-mysql namespace: test spec: selector: app: mysql type: ClusterIP ports: - port: 13306 protocol: TCP targetPort: 3306
ingress-nginx代理路由对外访问
需要再ingress配置tcp代理,参考:https://www.cnblogs.com/cgpei/p/17956397 中的“tcp代理设置”部分
apiVersion: v1 kind: ConfigMap metadata: name: tcp-services namespace: ingress-nginx data: 16379: "test/svc-mysql:13306"