首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >chown:更改‘/var/lib/mysql/’的所有权: kubernetes的start pod中不允许操作

chown:更改‘/var/lib/mysql/’的所有权: kubernetes的start pod中不允许操作
EN

Stack Overflow用户
提问于 2020-05-30 21:16:12
回答 1查看 927关注 0票数 1

当我在kubernetes v1.15.2中启动mysql 5.7 pod时,日志显示如下:

代码语言:javascript
运行
复制
2020-05-30 13:08:04+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.30-1debian10 started.
chown: changing ownership of '/var/lib/mysql/': Operation not permitted

这是我的mysql yaml定义:

代码语言:javascript
运行
复制
apiVersion: v1
kind: Service
metadata:
  name: apollo-mysql
  namespace: sre
spec:
  ports:
  - port: 3306
  selector:
    app: mysql
  clusterIP: None
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: apollo-mysql
  namespace: sre
spec:
  selector:
    matchLabels:
      app: apollo-mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: apollo-mysql
    spec:
      containers:
      - image: mysql:5.7
        name: mysql
        env:
          # Use secret in real usage
        - name: MYSQL_ROOT_PASSWORD
          value: gfwge4LucnXwfefewegLwAd29QqJn4
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: apollo-mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: apollo-mysql-persistent-storage
        persistentVolumeClaim:
          claimName: apollo-mysql-pv-claim

这是我的pv定义:

代码语言:javascript
运行
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-apollo-mysql-pv1
  namespace: sre
  labels:
    alicloud-pvname: apollo-mysql-data-db
spec:
  capacity:
    storage: 5Gi
  storageClassName: apollo-mysql-data-db
  mountOptions:
    - vers=4.0
    - noresvport
  accessModes:
    - ReadWriteOnce
  nfs:
    server: "192.168.64.237"
    path: "/mnt/data/apollodb/apollopv"
  persistentVolumeReclaimPolicy: Retain

我已经将mod改为777,如下所示:

代码语言:javascript
运行
复制
chmod 777 /mnt/data/apollodb/apollopv

那么问题出在哪里,我该怎么解决这个问题呢?我检查selinux的状态,发现它是禁用的。

代码语言:javascript
运行
复制
[miao@meowk8sslave3 apollodb]$ /usr/sbin/sestatus -v
SELinux status:                 disabled

这是我的nfs导出定义:

代码语言:javascript
运行
复制
/mnt/data/apollodb/apollopv *(rw,sync,no_subtree_check,no_root_squash)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-31 00:56:13

您提供的yaml缺少PVC,PVC指定要挂载的storageClass

看起来您正在尝试挂载一个外部NFS (可能是某个云提供商),在这种情况下,您需要安装nfs-utils并执行mount -t nfs 192.168.64.237:/entrypoint /mnt/...

您的PV显示为/mnt/data/apollodb/apollopv,它应该是nfs服务器的入口点,而不是它将被挂载到文件系统中的位置。

为此,您需要获得一个nfs服务器(获取IP地址和入口点;比如192.168.64.237:/nfs),然后将其挂载到pod中,如下所示:

代码语言:javascript
运行
复制
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: apollo-mysql
  namespace: sre
spec:
  selector:
    matchLabels:
      app: apollo-mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: apollo-mysql
    spec:
      containers:
      - image: mysql:5.7
        name: mysql
        env:
          # Use secret in real usage
        - name: MYSQL_ROOT_PASSWORD
          value: gfwge4LucnXwfefewegLwAd29QqJn4
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: apollo-mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: apollo-mysql-persistent-storage
        nfs:
          server: 192.168.64.237
          path: "/nfs"

您将不需要存储类、PVC和PV。您需要的一切都在pod中,外部有nfs服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62102987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档