###### tags: `notes` MariaDB and Phpmyadmin === ### YAML file - MariaDB: `db-yamls/db-deployment.yaml` - service - deployment - [建立persistent volume](https://docs.microsoft.com/en-us/azure/aks/azure-disk-volume) - phpmyadmin: `db-yamls/phpmyadmin-deploy.yaml` - service - deployment - kustomize: `db-yamls/kustomization.yaml` - MariaDB的secret - namespace --- ### 使用方式 ```bash # apply kubectl apply -k ./ # delete kubectl delete -k ./ # 顯示kustomize結果 kubectl kustomize ./ ``` --- MariaDB --- ##### `db-yamls/db-deployment.yaml` ```yaml apiVersion: v1 kind: Service metadata: name: api-mariadb labels: app: api spec: ports: - port: 3306 selector: app: api-mariadb tier: mariadb clusterIP: None --- apiVersion: apps/v1 kind: Deployment metadata: name: mariadb-deploy labels: app: api spec: selector: matchLabels: app: api-mariadb tier: mariadb strategy: type: Recreate template: metadata: labels: app: api-mariadb tier: mariadb spec: containers: - image: docker.io/library/mariadb:10.7 name: mariadb env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mariadb-pass key: password ports: - containerPort: 3306 name: mariadb-port volumeMounts: - name: azure mountPath: /var/lib/mysql volumes: - name: azure azureDisk: kind: Managed diskName: api-mariadb-AKSDisk diskURI: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx/resourceGroups/your-resource-group/providers/Microsoft.Compute/disks/api-mariadb-AKSDisk ``` --- phpmyadmin --- ##### `db-yamls/phpmyadmin-deploy.yaml` ```yaml # 1. expose by loadbalancer apiVersion: v1 kind: Service metadata: name: phpmyadmin labels: app: api spec: ports: - port: 80 selector: app: api-phpmyadmin tier: phpmyadmin type: LoadBalancer --- # 2. proxy to localhost # kubectl port-forward -n backend-api service/phpmyadmin 8080:8080 => (svc:local) apiVersion: v1 kind: Service metadata: name: phpmyadmin labels: app: api spec: ports: - port: 8080 # service/phpmyadmin:80 the traffic is routed to 8080 targetPort: 80 # TargetPort: This is the actual port on which your application is running inside the container. selector: app: api-phpmyadmin tier: phpmyadmin # kubectl port-forward -n backend-api service/phpmyadmin 8080:8080 => (svc:local) --- apiVersion: apps/v1 kind: Deployment metadata: name: phpmyadmin-deploy labels: app: api spec: selector: matchLabels: app: api-phpmyadmin tier: phpmyadmin strategy: type: Recreate template: metadata: labels: app: api-phpmyadmin tier: phpmyadmin spec: containers: - image: docker.io/library/phpmyadmin:5.1 name: phpmyadmin env: - name: PMA_HOST value: api-mariadb ports: - containerPort: 80 name: phpmyadmin-port ``` --- Kubecustom --- ##### `db-yamls/kustomization.yaml` ```yaml secretGenerator: - name: mariadb-pass literals: - password=yourpassword resources: - db-deploy.yaml - phpmyadmin-deploy.yaml namespace: api-backend ``` ---