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.4 --- 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: docker-registry.lan/mariadb:arm64 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 - image: docker-registry.lan/mariadb-prometheus-exporter:arm64 name: mariadb-prometheus-exporter imagePullPolicy: Always ports: - containerPort: 9104 name: metrics volumes: - name: mariadb-persistent-storage persistentVolumeClaim: claimName: mariadb-pv-claim --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mariadb-pv-claim annotations: volume.beta.kubernetes.io/storage-provisioner: "nfs-storage" volume.beta.kubernetes.io/storage-class: "managed-nfs-storage" spec: storageClassName: "fast" accessModes: - ReadWriteOnce resources: requests: storage: 20Gi