apiVersion: v1 kind: Service metadata: name: mariadb spec: ports: - name: mysql port: 3306 - name: metrics port: 9104 selector: app: mariadb type: LoadBalancer loadBalancerIP: 172.23.255.5 --- apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 kind: Deployment metadata: name: mariadb spec: selector: matchLabels: app: mariadb strategy: type: Recreate template: metadata: labels: app: mariadb spec: containers: - image: cr.lan/mariadb name: mariadb imagePullPolicy: Always env: # Use secret in real usage - name: MYSQL_ROOT_PASSWORD value: 54MzzfHHTA9qJX64Pvdn ports: - containerPort: 3306 name: mariadb volumeMounts: - name: mariadb-persistent-storage mountPath: /var/lib/mysql resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "1500Mi" cpu: "2000m" - image: cr.lan/mariadb-prometheus-exporter name: mariadb-prometheus-exporter imagePullPolicy: Always ports: - containerPort: 9104 name: metrics resources: requests: memory: "24Mi" cpu: "50m" limits: memory: "128Mi" cpu: "100m" volumes: - name: mariadb-persistent-storage persistentVolumeClaim: claimName: mariadb-data --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mariadb-data spec: storageClassName: nfs-ssd volumeName: mariadb-data accessModes: - ReadWriteOnce resources: requests: storage: 40Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: mariadb-data spec: storageClassName: "nfs-ssd" nfs: path: /data/raid1-ssd/k8s-data/mariadb-data server: ebin01 capacity: storage: 40Gi accessModes: - ReadWriteOnce volumeMode: Filesystem persistentVolumeReclaimPolicy: Retain claimRef: kind: PersistentVolumeClaim name: mariadb-data namspace: live-env