pod处于pending状态,通常都是资源不满足导致的,你的问题大概率是PV 不足造成的,如果使用local-pv可以看下sc的类是否创建。可以通过kubectl get pv来查看下是否创建对应的pv。
感谢各位,解决了 k8s通信有点问题,之后就好了
本地盘若使用一块磁盘分多个 pv 目录,每个 pv 共用整块磁盘容量,capacity 也都会显示该磁盘总大小,而非 tikv.request 大小
pod 内默认挂载点为 /var/lib/xxx ,如 tikv 默认挂载点 /var/lib/tikv
若希望额外配置挂载点,请参考 多盘挂载
也就说 配置文件里配置的mountpath 是 会被强行挂接为/var/lib/mountpath , 多盘挂载配置的目录是不是也是会挂到/var/lib/xxxx
每个 pd / tikv / tiflash 默认需要(消耗)一块 pv 存数据,pod 内默认挂载点 /var/lib/xxx,其他自定义挂载点(不能和 /var/lib/xxx 重复)参考 多盘挂载 文档
我的意思是: local-volume中定义的Mountpath 比如原来以为/tikv_data后会在pod 根下创建/tikv_data,实际上pod内挂接到了/var/lib/tikv_data下,就是您说的默认挂载点。 多盘挂载的自定义目录在配置时肯定不会和前面的重复 ,比如我自定义了 /tikv_log /tivk_wal 那么这2个自定义的挂载点在pod内是否也是被挂载到/var/lib/tikv_log /var/lib/tikv_wal?
- 每个 pd / tikv / tiflash 默认需要(消耗)一块 pv 存数据,pod 内默认挂载点 /var/lib/xxx,如 tikv 默认挂载点 /var/lib/tikv,参考 https://github.com/pingcap/tidb-operator/blob/v1.4.0/charts/tidb-cluster/templates/scripts/_start_tikv.sh.tpl#L37
- 其他自定义挂载点参考 多盘挂载 文档,如给 tidb slow log 单独配 pv 持久化
您这个已经说了2次了,我明白这些,我想知道的是 多盘挂载后自定义的目录是不是也放到 /var/lib下,是或者否? 这一点在官方文档上没有说明 ,就像您说的 pod 内默认挂载点 /var/lib/xxx 在官方部署文档里 并没有说明。或者说 你说的 pod 内默认挂载点 /var/lib/xxx 是代表所有的 mountpath 无论是否是多盘自定义的?
阿里开源了一个分本地盘的插件,不用提前自己挂载磁盘。很久之前测试过,找不到链接了。
手动分本地盘的话,就是把磁盘分成n多分区,比如说1000G一个,挂载到node上,然后sc从这里面挑了以后绑定到pvc上。
找到了,楼主可以参考下这个:
默认挂载点在官网文档没有明说,因为用户无需关心。
可以用官网例子试一下就明白了,组件配置目录和挂盘目录保持一致,若不挂盘,用的就是 EmptyDir。
比如 tikv 的 wal-dir = “/data_sbi/tikv/wal”, storageVolumes 配置一块 pv mountPath: “/data_sbi/tikv/wal”, 该 pv 即可用于 tikv wal, 若不配 storageVolumes 则默认使用 pod EmptyDir
感谢大佬,k8s初学很多地方还不懂 ,我把这帖子问题总结下 :
1、 对于文件系统local-volume 只能识别 ‘挂载点’ ,如果使用已有文件系统下的目录则必须通过 mount --bind方式对目录生成一个挂载点。例如:主机上磁盘sdc1已经mount到data目录,如果想要在/data下的子目录生成pv ,则必须使用 mount --bind /data/olddir /xxxx/newdir 方式生成一个挂载点,对于挂载点名称格式无特殊要求。
2、所谓的发现目录指定就是挂载点目录的上层目录,对于1中例子 /data即为发现目录, local-volume会为该目录下的所有 ‘挂载点’ 生成一个pv, 所有pv的大小与/data文件系统大小一致,local-volume配置文件中每个storageclass的 hostpath/hostdir指定为发现目录 。
3、 正常情况在apply local-volume的配置后会生成storageclass和为发现目录下的挂载点生成pv ,在apply tidb集群配置文件后才会生成PVC并寻找pv进行绑定。如果磁盘、localvolume配置没有问题,需要看看k8s集群是否正常。
4、 local-volume配置文件中指定的mountdir,在pod内部会被设置为/var/lib/mountdir
另外建议官方文档中https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/configure-storage-class 第 1 步:准备本地存储 的内容在细化写,目前大部分内容都是不同组件的重复描述,一些关键的地方使用的连接。
建议: 1、 实际存储配置时 也给个样例 而不是通过链接去看英文样例 2、一些关键的点做下说明,这样方便初学者理解。
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。