zoukankan      html  css  js  c++  java
  • 项目实战篇【kubernetes】八 kubernetes ConfigMap


    接着上一篇的内容,我们已经部署了mysql服务,思考一个问题,当我们想修改配置文件如何修改?本节引入ConfigMap,ConfigMap顾名思义,是用于保存配置数据的键值对,可以用来保存单个属性,也可以保存配置文件。Secret可以为Pod提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以使用ConfigMap。

    1、使用ConfigMap配置mysql

    创建mysql-svc.yml配置文件

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mysql-open-config
    data: 
      #这里是键值对数据
      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/v1beta1
    kind: Deployment
    metadata:
      name: mysql-open
    spec:
      replicas: 1
      template:
        metadata:
          labels: 
            name: mysql-open
        spec:
          containers: 
            - name: mysql-open
              image: mysql:8.0.18
              imagePullPolicy: IfNotPresent
              ports:
                - containerPort: 3306
              env:
                - name: MYSQL_ROOT_PASSWORD
                  value: "root"
    		  #容器中的挂载目录
              volumeMounts:
                - name: cm-vol-open
                  mountPath: /etc/mysql/conf.d
                - name: nfs-vol-open
                  mountPath: /var/lib/mysql
          volumes: 
    	   #挂载到数据卷
            - name: cm-vol-open
              configMap:
                name: mysql-open-config
                items:
    		    #configmap中的key
                  - key: mysqld.cnf
                #configmap key中匹配的value 写入名为mysqld.cnf 的文件中
                    path: mysqld.cnf
            - name: nfs-vol-open
              persistentVolumeClaim:
                claimName: nfs-pvc-mysql-open
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mysql-open
    spec: 
      ports:
        - port: 3306
    	  targetPort: 3306
      type: LoadBalancer
      selector:
        name: mysql-open
    

    如果之前部署了mysql数据卷挂载,需要删除之前的数据文件,然后启动mysql服务

    [root@yn100-22 service]# kubectl get cm
    NAME                DATA   AGE
    mysql-open-config   1      3m8s
    [root@yn100-22 service]# kubectl describe  cm mysql-open-config
    

    使用数据库连接工具连接mysql,使用命令kubectl get svc查看mysql的端口,此时mysql已能正常使用。

    2、学习交流QQ群【883210148】

    alt QQ群

    3、关注微信公众号,免费获取文档及资源

    alt 微信公众号

  • 相关阅读:
    (七)mysql 记录长度
    (六)列类型
    (五)校对集
    (四)中文数据问题
    Spring Boot Jpa 的使用
    Spring Boot:如何优雅的使用 Mybatis
    Spring Boot:定时任务
    Spring Boot 小技巧
    【重磅】Spring Boot 2.0权威发布
    Spring Boot + Jpa + Thymeleaf 增删改查示例
  • 原文地址:https://www.cnblogs.com/kevin-ying/p/13300015.html
Copyright © 2011-2022 走看看