# 前提

# 0 系统版本centos7.6       

# 1 已经安装好kubeadm-1.9.6 k8s集群 master01-15.64 node01-15.65 node02-15.76(参考k8s-杜宽)

# 2 已经安装好nfs服务器 15.30  目录 /root/nfs_data

 

# 安装mysql过程 原文:https://zengwenqi.blog.csdn.net/article/details/112243757

# 挨个启动本目录中的yaml文件即可

kubectl apply -f pv-mysql.yaml 

apiVersion: v1
kind: PersistentVolume
metadata:
  name: model-db-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 5Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: model-db-pv-claim
    namespace: default
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs:
    path: /root/nfs_data
    server: 10.69.15.30
  volumeMode: Filesystem

kubectl apply -f pvc-mysql.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: model-db-pv-claim
  namespace: default
  labels:
    app: model-mysql
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

kubectl apply -f config-mysql.yaml 

apiVersion: v1
kind: ConfigMap
metadata:
  name: model-db-config
  namespace: default
  labels:
    app: model-db
data:
  my.cnf: |-
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld] 
    character-set-server = utf8mb4  
    collation-server = utf8mb4_unicode_ci  
    init_connect='SET NAMES utf8mb4'  
    skip-character-set-client-handshake = true  
    max_connections=2000
    secure_file_priv=/var/lib/mysql
    bind-address=0.0.0.0
    symbolic-links=0
    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

kubectl apply -f dep-mysql.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: model-db
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: model-mysql
  template:
    metadata:
      labels:
        app: model-mysql
    spec:
      containers:
      - args:
        - --datadir
        - /var/lib/mysql/datadir
        env:
          - name: MYSQL_ROOT_PASSWORD
            value: root
          - name: MYSQL_USER
            value: user
          - name: MYSQL_PASSWORD
            value: user
        image: mysql:5.6
        name: model-db-container
        ports:
        - containerPort: 3306
          name: dbapi
        volumeMounts:
        - mountPath: /var/lib/mysql
          name: model-db-storage
        - name: config
          mountPath: /etc/mysql/conf.d/my.cnf
          subPath: my.cnf
      volumes:
      - name: model-db-storage
        persistentVolumeClaim:
          claimName: model-db-pv-claim
      - name: config      
        configMap:
          name: model-db-config
      - name: localtime
        hostPath:
          type: File
          path: /etc/localtime

kubectl apply -f svc-mysql.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: model-mysql
  name: model-db-svc
  namespace: default
spec:
  type: NodePort
  ports:
  - name: http
    port: 3306
    nodePort: 33306
    protocol: TCP
    targetPort: 3306
  selector:
    app: model-mysql

# 查看状态

kubectl get all -n default

 

# 测试mysql 随便哪个node都可以

mysql -h10.69.15.65 -uroot -proot --port=33306

 

# 安装mysql过程 原文:https://zengwenqi.blog.csdn.net/article/details/112243757

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐