一个伪linux粉丝的blog

  1. 首页
  2. unix/linux
  3. 正文

nfs-provisioner and feature-gates

15 10 月, 2022 598点热度 0人点赞 0条评论

最近测试新的 k8s 集群,版本1.24.6 ,NFS Provisioner 这个坑里躺了好久,发现特性门控feature-gates 里面真不能乱改,有版本兼容问题。

第一部分,NFS Provisioner

问题

起因是 集群里面有应用要用到 mysql-operator,要用到 storageclass ,于是拿出用了很久的 NFS Provisioner yaml文件,结果发现mysql 没起来。

2次报错如下:

1
2
3
persistentvolume-controller  waiting for a volume to be created, either by external provisioner "fuseim.pri/ifs" or manually created by system administrator
 
Warning  FailedScheduling  4m53s (x2 over 10m)  default-scheduler  0/2 nodes are available: 2 pod has unbound immediate PersistentVolumeClaims. preemption: 0/2 nodes are available: 2 Preemption is not helpful for scheduling.

疑惑了很久才发现 nfs provisioner pod 没起来。

然后网上找一圈,90% 以上的帖子 说要改 /etc/kubernetes/manifests/kube-apiserver.yaml 文件

在参数中新增加 - --feature-gates=RemoveSelfLink=false

结果集群立马挂了, 6443 直接不通了,当时还以为是别的原因引起的,又是想了好一阵才想起主要改了这个参数,移除后,集群起来了。

那么肯定不是这个原因了

继续翻,找到这篇 “k8s 1.24 使用nfs“ 和 这篇 https://vqiu.cn/kube120-nfs-provisioner/

里面提到 feature-gates=RemoveSelfLink=false 参数正式移除了,所以导致添加这个之前的nfs provider不好用, 现在使用新的方式去做。

在1.20 版本中此功能现在默认禁用,最终将在后续版本中将此功能移除。更多关注# 1164

解决办法

也就是 2022年2月10号发布的 4.0.16 版本修复了这个问题。

我这里当然是用最新版本嘛,8月4号发布的 4.0.17 。

地址 https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/releases/download/nfs-subdir-external-provisioner-4.0.17/nfs-subdir-external-provisioner-4.0.17.tgz

后续步骤照旧,这里也记录下

1
2
3
4
5
6
7
8
9
10
#解压
tar -xvf nfs-subdir-external-provisioner-4.0.17.tgz
 
解压后修改 values.yaml中的 nfs.server 和 nfs.path字段为NFS服务器的
然后使用 helm安装命令安装即可
helm install  nfs-subdir-external-provisioner . -n nfs
 
会创建一个nfs-client的storageclass,
如果需要可以使用下面命令改成默认存储
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

当然,上面的步骤还可以用helm来安装。

本次折腾,2种方式都顺带试过了,效果相同。

helm 部分

官网 https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

步骤 见下面的readme

https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/charts/nfs-subdir-external-provisioner/README.md

1
2
3
4
5
6
$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=x.x.x.x \
    --set nfs.path=/exported/path
# 本次用到的命令如下,更多参数看上面的 readme
helm install nfs-subdir-external-provisioner   nfs-subdir-external-provisioner/nfs-subdir-external-provisioner  \  --set nfs.server=10.29.0.149   \ --set nfs.path=/nfs_ssd/dce5_sc_14.189   \  --set storageClass.onDelete=truey

应用正常启动,问题解决了。

 

第二部分,关于特性门控feature-gates

前面提到的话题
 https://github.com/kubernetes/enhancements/issues/1164
Deprecate and remove SelfLink #1164

再看看官方文档

https://kubernetes.io/zh-cn/docs/reference/command-line-tools-reference/feature-gates/

果然已经拿掉了,所以强行加上这个参数后 apiserver起不来也是正常现象。

以后得不时看看 这个地址了。

 

相关文章:

  1. Linux下多线程下载工具
  2. MySQL配置文件说明-转
  3. cron导致系统故障?+ moodle备份
  4. Xfce 4.6 Final Released
标签: feature-gates NFS Provisioner
最后更新:15 10 月, 2022

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.

归档
分类
  • network / 332篇
  • Uncategorized / 116篇
  • unix/linux / 121篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 21篇
  • 英语学习 / 3篇
标签聚合
dreamhost空间 openssl postgres 邮件归档 Nginx 泰国 ldap 浏览器 VPS 网站运营 google-chrome docker Ubuntu kernel d90 wget gitlab kubectl Google nexus debian Google Voice ssh jira 天翼live 虚拟主机 k8s squid dreamhost deepseek

COPYRIGHT © 2008-2025 wanjie.info. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang