用Service去找StatefulSet,指定mysql初始密码,用hostPath与本地进行挂载
    这里只同步了data,还应该同步log和my.cnf

    1. apiVersion: v1
    2. kind: Service
    3. metadata:
    4. name: mysql57
    5. labels:
    6. app: mysql
    7. spec:
    8. selector:
    9. app: mysql
    10. type: NodePort
    11. ports:
    12. - name: mysql57
    13. port: 3306
    14. nodePort: 30306
    15. ---
    16. apiVersion: apps/v1
    17. kind: StatefulSet
    18. metadata:
    19. name: mysql
    20. spec:
    21. selector:
    22. matchLabels:
    23. app: mysql # has to match .spec.template.metadata.labels
    24. serviceName: mysql
    25. replicas: 1 # by default is 1
    26. template:
    27. metadata:
    28. labels:
    29. app: mysql # has to match .spec.selector.matchLabels
    30. spec:
    31. terminationGracePeriodSeconds: 10
    32. containers:
    33. - name: mysql
    34. image: mysql:5.7
    35. ports:
    36. - containerPort: 3306
    37. name: mysql
    38. volumeMounts:
    39. - name: host-path
    40. mountPath: /var/lib/mysql
    41. env:
    42. - name: MYSQL_ROOT_PASSWORD
    43. value: "1234"
    44. volumes:
    45. - name: host-path
    46. hostPath:
    47. path: /usr/local/mysql
    48. type: DirectoryOrCreate

    需要知道pod在哪个节点上运行,创建相应的父文件夹
    如果启动失败,可能是因为分配到的节点上的目录有问题