【问题标题】:Kubernetes POD create issue mysql PV, PVC issues, centos 7.3.1611Kubernetes POD 创建问题 mysql PV、PVC 问题、centos 7.3.1611
【发布时间】:2017-10-27 06:13:31
【问题描述】:

希望你做得很好。 我在同一个 VM 中有 Kubernetes 主从模拟 ==> centos 7.3.1611,2gb 内存,2 个虚拟核心。

Mysql 容器服务。

用户登录:root

Kubernetes 版本:1.5

        Temp directory
        --------------
        mkdir -p /tmp/work/data /tmp/work/init

        db.sql

        create table `item`(`id` bigint not null auto_increment primary key, `description` varchar(100), `done` bit);
        insert into `item`(`id`,`description`, `done`) valumes(1, 'Today is Friday', 0);
        insert into `item`(`id`,`description`, `done`) valumes(2, 'Today is Saturday', 1);

        cp db.sql /tmp/work/init


        pv001.yaml

        apiVersion: v1
        kind: PersistentVolume
        metadata:
          name: pv001
          labels:
            type: local
        spec:
          capacity:
            storage: 1Gi
          accessModes:
            - ReadWriteOnce
          #persistentVolumeReclaimPolicy: Recycle
          hostPath:
            path: "/tmp/work/data"

        pv002.yaml

        apiVersion: v1
        kind: PersistentVolume
        metadata:
          name: pv002
          labels:
            type: local
        spec:
          capacity:
            storage: 1Mi
          accessModes:
            - ReadWriteOnce
          #persistentVolumeReclaimPolicy: Recycle
          hostPath:
            path: "/tmp/work/init"


        dbclaim.yaml

        apiVersion: v1
        kind: PersistentVolumeClaim
        metadata:
          name: dbclaim
          labels:
            name: map_data_volume
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 1Gi

        dbinit.yaml

        apiVersion: v1
        kind: PersistentVolumeClaim
        metadata:
          name: dbinit
          labels:
            name: map_init_volume
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 1Mi


        mkdir -p /var/lib/mysql/data /var/lib/mysql/init

        mysql-pvc-pod.yaml

        apiVersion: v1
        kind: Pod
        metadata:
          name: mysql-pvc-pod
          labels:
            name: mysql-pvc-pod
        spec:
          containers:
            - resources:
                limits :
                  cpu: 1
              image: mysql
              name: mysql-pvc-pod
              env:
                - name: MYSQL_ROOT_PASSWORD
                  # change this
                  value: welcome1
                - name: MYSQL_USER
                  value: testuser
                - name: MYSQL_PASSWORD
                  value: mypass123
              ports:
                - containerPort: 3310
                  name: mysql-pvc-pod
              volumeMounts:
               - mountPath: /var/lib/mysql/data
                 name: db-volume
               - mountPath: /var/lib/mysql/init
                 name: db-init
          volumes:
            - name: db-volume
              persistentVolumeClaim:
                claimName: dbclaim
            - name: db-init
              persistentVolumeClaim:
                claimName: dbinit

        mysql-pvc-pod-service.yaml

        apiVersion: v1
        kind: Service
        metadata:
          labels:
            name: mysql-pvc-service
          name: mysql-pvc-service
        spec:
          externalIPs:
            - 10.0.2.15
          ports:
            # the port that this service should serve on
            - port: 3310
          # label keys and values that must match in order to receive traffic for this service
          selector:
            name: mysql-pvc-service

错误

我的 POD 崩溃了:CrashLoopBackOff

[root@centos7 ~]# kubectl 获取 pods

NAME READY STATUS RESTARTS AGE

mysql-pvc-pod 0/1 CrashLoopBackOff 8 18m

【问题讨论】:

  • 您是否尝试使用kubectl logs -f mysql-pvc-pod 检查日志?
  • 我试过了,但没有运气,我给了所有的写权限[root@centos7 ~]# ls -ltrh /var/lib/mysql/ total 0 drwxrwxrwx. 2 root root 6 May 26 05:49 data drwxrwxrwx. 2 root root 20 May 26 07:01 init [root@centos7 ~]# ls -ltrh /tmp/work/ total 0 drwxrwxrwx. 2 root root 6 May 25 19:06 data drwxrwxrwx. 2 root root 20 May 25 19:07 init [root@centos7 ~]# kubectl logs -f mysql-pvc-pod chown: cannot read directory '/var/lib/mysql/data': Permission denied chown: cannot read directory '/var/lib/mysql/init': Permission denied
  • 默认情况下,MySQL 将尝试使自己成为 datadir 的所有者,这被您的操作系统拒绝。是否启用了 selinux?运行 sestatus。
  • sestatus - 默认启用,解决方法是什么,我需要做什么

标签: mysql kubernetes


【解决方案1】:

尝试通过设置粘性位来授予世界写入权限。然后重新创建 pod

chmod 1777 /tmp/work/data /tmp/work/init

谢谢 -SR

【讨论】:

  • 我认为您没有很好地阅读我的查询请参阅[mysql-pvc-pod.yaml],以下目录/var/lib/mysql/data、/var/lib/mysql/init 的权限被拒绝
  • 对不起,我错过了 ls 命令输出。你可以为 selinux 发布 ls 命令输出吗? 'ls -lZd /tmp/work/data /tmp/work/init'。还可以看到您能够运行 docker mysql 容器。 'docker run --name my-mysql -v /tmp/work/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mypass123 -d mysql'
猜你喜欢
  • 2019-09-24
  • 2020-02-13
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 2020-08-24
  • 1970-01-01
  • 2021-11-08
相关资源
最近更新 更多