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 resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "1500Mi" cpu: "2000m" - image: docker-registry.lan/mariadb-prometheus-exporter:arm64 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-pv-claim --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mariadb-pv-claim annotations: volume.beta.kubernetes.io/storage-class: nfs-ssd spec: storageClassName: nfs-ssd accessModes: - ReadWriteOnce resources: requests: storage: 20Gi