k8s 动态存储卷 mysql示例

1. 安装NFS服务器

首先,你需要在一台服务器上安装NFS。这里假设你使用的是基于Debian或RHEL的系统。

对于Debian/Ubuntu系统:
sudo apt update
sudo apt install nfs-kernel-server
对于RHEL/CentOS系统:
sudo yum install nfs-utils
sudo systemctl enable --now nfs-server
设置NFS共享目录

创建一个共享目录并编辑 /etc/exports 文件来配置NFS共享:

mkdir -p /srv/nfs/k8s
echo "/srv/nfs/k8s *(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports
sudo exportfs -rav
sudo systemctl restart nfs-kernel-server

2. 安装NFS客户端

对于想要挂载NFS共享的Kubernetes节点,你需要在每个节点上安装NFS客户端。

Debian/Ubuntu:
sudo apt update
sudo apt install nfs-common
RHEL/CentOS:
sudo yum install nfs-utils

3. 配置NFS客户端使用Kubernetes (YAML配置)

你可以通过PersistentVolumes (PV) 和 PersistentVolumeClaims (PVC) 在Kubernetes中配置NFS客户端。首先,创建一个PersistentVolume对象指向你的NFS服务器:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: /srv/nfs/k8s
    server: <NFS_SERVER_IP>
  persistentVolumeReclaimPolicy: Retain

然后,创建一个PersistentVolumeClaim来使用这个Volume:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

4. 检查NFS连接

你可以通过简单地尝试挂载NFS共享到一个临时目录来测试NFS连接,如:

mkdir -p /tmp/nfs-test
mount -t nfs <NFS_SERVER_IP>:/srv/nfs/k8s /tmp/nfs-test

检查挂载是否成功:

mount | grep nfs

5. 使用StatefulSet部署MySQL

创建一个StatefulSet以及相关的PVC来部署MySQL,示例YAML配置如下:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql
spec:
  serviceName: "mysql"
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "yourpassword"
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
  volumeClaimTemplates:
  - metadata:
      name: mysql-persistent-storage
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: ""
      resources:
        requests:
          storage: 5Gi

注意:确保将<NFS_SERVER_IP>替换为你的NFS服务器的IP地址,并且调整其他配置(如容量、访问模式等)以适应你的具体需求。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值