K8S系列文章之 部署MySQL数据库

Kubernetes中部署MySQL数据库及数据操作指南

1 编写 mysql.yaml文件

apiVersion: v1
kind: Namespace
metadata:
  name: devops   # Namespace 的名称
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: devops-mysql   # deployment控制器名称
  namespace: devops
spec:
  replicas: 1
  revisionHistoryLimit: 5
  strategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app: devops-mysql
  template:
    metadata:
      labels:
        app: devops-mysql
    spec:
      volumes:
        - name: devops-mysql
          nfs:
            server: xx.xx.xx.xx  # 修改为挂载存储的服务器ip
            path: /root/data/nfs/mysql/devops   # 修改为存储服务器的存储挂载路径
      containers:
        - name: devops-mysql
          image: mysql:5.7
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: xxxxxxxx     # 设置MySQL数据库登录密码
          imagePullPolicy: Always
          ports:
            - containerPort: 3306
          volumeMounts:
            - name: devops-mysql
              mountPath: /var/l
Kubernetes (K8s) 中部署 MySQL 数据库通常涉及以下几个步骤: 1. **创建镜像**: 首先,你需要有一个包含 MySQL 安装的 Docker 镜像。如果没有现成的,你可以从官方 MySQL Docker 镜像开始,或者基于官方镜像构建一个新的镜像。 2. **配置镜像**: 在镜像中,你可能需要设置环境变量(如 MYSQL_ROOT_PASSWORD)、数据卷挂载点(存储持久化的数据库数据),以及其他的启动参数。 3. **编写 Deployment**: 使用 YAML 或 JSON 文件定义一个 Kubernetes `Deployment` 对象,描述了你想要运行的 MySQL 实例的数量、副本集策略、容器配置等。 ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment spec: replicas: 3 # 备份策略 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: your-mysql-image ports: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-password key: password volumeMounts: - name: data- name: data-volume persistentVolumeClaim: claimName: mysql-pvc ``` 4. **创建 PVC (Persistent Volume Claim)**: 编写一个 `PersistentVolumeClaim` 来申请存储空间给数据库的数据卷。 ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi # 根据需求调整大小 ``` 5. **应用配置**: 将上述资源定义文件(比如 `deployment.yaml` 和 `pvc.yaml`)应用到 K8s 集群中,通过 `kubectl apply -f deployment.yaml` 等命令。 完成以上步骤后,K8s 就会按照你的配置自动管理和扩展 MySQL 实例,并提供高可用性和持久化存储。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值