使用 ConfigMap 配置 MySQL
apiVersion: v1kind: ConfigMapmetadata: name: mysql-myshop-configdata: # 这里是键值对数据 mysqld.cnf: | [client] port=3306 [mysql] no-auto-rehash [mysqld] skip-host-cache skip-name-resolve default-authentication-plugin=mysql_native_password character-set-server=utf8mb4 collation-server=utf8mb4_general_ci explicit_defaults_for_timestamp=true lower_case_table_names=1---apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: mysql-myshopspec: replicas: 1 template: metadata: labels: name: mysql-myshop spec: containers: - name: mysql-myshop image: mysql:8.0.16 imagePullPolicy: IfNotPresent ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "123456" volumeMounts: # 以数据卷的形式挂载 MySQL 配置文件目录 - name: cm-vol-myshop mountPath: /etc/mysql/conf.d - name: nfs-vol-myshop mountPath: /var/lib/mysql volumes: # 将 ConfigMap 中的内容以文件形式挂载进数据卷 - name: cm-vol-myshop configMap: name: mysql-myshop-config items: # ConfigMap 中的 Key - key: mysqld.cnf # ConfigMap Key 匹配的 Value 写入名为 mysqld.cnf 的文件中 path: mysqld.cnf - name: nfs-vol-myshop persistentVolumeClaim: claimName: nfs-pvc-mysql-myshop---apiVersion: v1kind: Servicemetadata: name: mysql-myshopspec: ports: - port: 3306 targetPort: 3306 type: LoadBalancer selector: name: mysql-myshop
# 查看 ConfigMap、
kubectl get cm
kubectl describe cm <ConfigMap Name>