k8s ComfigMap mysql

创建ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
    name: test-mysql-config
data:
    test_my.cnf: |
         [mysqld]
         server_id=10
         log_bin=master
[root@k8s-master statefulTest]# kubectl create -f mysql-configmap.yaml
configmap/test-mysql-config created
[root@k8s-master statefulTest]# 
[root@k8s-master statefulTest]# kubectl get cm
NAME                DATA   AGE
kube-root-ca.crt    1      126d
test-mysql-config   1      11s
[root@k8s-master statefulTest]# 
[root@k8s-master statefulTest]# kubectl describe cm test-mysql-config
Name:         test-mysql-config
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
test_my.cnf:
----
[mysqld]
server_id=10
log_bin=master


BinaryData
====

Events:  <none>
[root@k8s-master statefulTest]# 

创建MySQL pod

apiVersion: apps/v1
kind: StatefulSet
metadata:
    name: test-mysql
spec:
    replicas: 1
    selector:
        matchLabels:
            app: mysql
    serviceName: "test-mysql"
    template:
        metadata:
            labels:
               app: mysql
        spec:
            containers:
            - name: test-mysql
              image: mysql:5.7
              imagePullPolicy: IfNotPresent
              env:
              - name: MYSQL_ROOT_PASSWORD
                value: redhat
              volumeMounts:
                 - name: mysql-data-volume
                   mountPath: /var/lib/mysql
                 - name: mysql-config-volume
                   mountPath: "/etc/mysql/conf.d/"
                   readOnly: true
            volumes:
              - name: mysql-data-volume
                persistentVolumeClaim:
                    claimName: db-pvc-5g
              - name: mysql-config-volume					// 创建数据卷,存放MySQL配置文件
                configMap:
                    name: test-mysql-config
---
apiVersion: v1
kind: Service
metadata:
    name: test-mysql
spec:
    ports:
    - port: 3306
    selector:
        app: mysql


在使用Kubernetesk8s)管理MySQL时,有几个主要的方面需要考虑。首先,你需要部署MySQL on k8s的环境。这可以通过使用适当的Kubernetes资源(如Deployment、Pod和Service)来实现。具体的部署方法可以参考引用中提到的资源。 其次,当你需要卸载MySQL时,你可以使用以下命令: ``` kubectl delete pod -n mysql kubectl patch ns mysql -p '{"metadata":{"finalizers":null}}' kubectl delete ns mysql ``` 这些命令将删除与MySQL相关的Pod和命名空间。具体的卸载方法可以参考引用中提到的命令。 需要注意的是,虽然可以实现MySQL的主从复制,但目前官方还没有提供MySQL on k8s的高可用实现方案。一些网上的高可用方案存在,但我们公司尚未在生产环境中使用,所以无法评价这些方案的可行性和稳定性。此外,对于大数据领域而言,MySQL通常只用作元数据存储,因此即使主节点出现故障,对于整体业务的影响也不会很大。 综上所述,Kubernetes可以用于管理MySQL,并且可以实现MySQL的主从复制。但是,要实现MySQL on k8s的高可用性,需要进一步研究和评估可行的方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQLK8S 环境中部署与监控,一篇搞定它!](https://blog.csdn.net/m0_73311735/article/details/127282165)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值