k8s部署mysql

 

 

1、yaml文件内容,创建了apollo用户

vim mysql-statefulset.yaml 

 

apiVersion: v1
kind: Secret
metadata:
  name: mysql-secret
  namespace: apollo
type: Opaque
stringData:
  root-password: root123       # 可自定义,Apollo 中会用到
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-init-sql
  namespace: apollo
data:
  init.sql: |
    CREATE USER IF NOT EXISTS 'apollo'@'%' IDENTIFIED BY 'apollo123';
    GRANT ALL PRIVILEGES ON ApolloPortalDB.* TO 'apollo'@'%';
    GRANT ALL PRIVILEGES ON ApolloConfigDB.* TO 'apollo'@'%';
    FLUSH PRIVILEGES;
---
apiVersion: v1
kind: Service
metadata:
  name: apollo-mysql
  namespace: apollo
  labels:
    app: mysql
spec:
  ports:
  - port: 3306
    name: mysql
  clusterIP: None
  selector:
    app: mysql
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: apollo-mysql
  namespace: apollo
spec:
  serviceName: apollo-mysql
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:8.0.36
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-secret
              key: root-password
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: data
          mountPath: /var/lib/mysql
        - name: init-sql
          mountPath: /docker-entrypoint-initdb.d
        resources:
          requests:
            cpu: 500m
            memory: 512Mi
          limits:
            cpu: 750m
            memory: 768Mi
      volumes:
      - name: init-sql
        configMap:
          name: mysql-init-sql
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: alicloud-disk-ssd   # 你指定的存储类
      resources:
        requests:
          storage: 20Gi

 

2、运行

kc apply -f  mysql-statefulset.yaml

 

posted @ 2025-01-03 17:00  苦逼yw  阅读(2)  评论(0)    收藏  举报