Alicloud-Nas-Controller插件升级
您在ACK集群中使用alicloud-nas-controller时,如果安装的版本较低,可以通过如下方式升级组件:
当前集群状态:
如果您使用的nas controller是早期版本,如下:
apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: alicloud-nas-controller name: alicloud-nas-controller namespace: kube-system spec: selector: matchLabels: app: alicloud-nas-controller template: metadata: labels: app: alicloud-nas-controller spec: containers: - env: - name: PROVISIONER_NAME value: alicloud/nas - name: NFS_SERVER value: 2564f49129-**.cn-shenzhen.nas.aliyuncs.com - name: NFS_PATH value: / image: registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v3.1.0-k8s1.11 imagePullPolicy: IfNotPresent name: alicloud-nas-controller volumeMounts: - mountPath: /persistentvolumes name: nfs-client-root serviceAccount: admin serviceAccountName: admin tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized operator: Exists volumes: - flexVolume: driver: alicloud/nas options: path: / server: 2564f49129-**.cn-shenzhen.nas.aliyuncs.com vers: "4.0" name: nfs-client-root
StorageClass配置如下:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas mountOptions: - vers=4.0 provisioner: alicloud/nas reclaimPolicy: Retain
集群中有应用使用上述controller配置创建了pvc/pv,并挂载到pod中使用:
# kubectl describe pod web-nas-1 | grep ClaimName ClaimName: html-web-nas-1 # kubectl get pvc html-web-nas-1 NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE html-web-nas-1 Bound pvc-2612b272-14e7-11ea-a9b7-00163e084110 2Gi RWO alicloud-nas 85m 这时pv的配置为v4版本; # kubectl get pv pvc-2612b272-14e7-11ea-a9b7-00163e084110 -oyaml | grep mountOptions -A 6 mountOptions: - vers=4.0 nfs: path: /default-html-web-nas-1-pvc-2612b272-14e7-11ea-a9b7-00163e084110 server: 2564f49129-**.cn-shenzhen.nas.aliyuncs.com persistentVolumeReclaimPolicy: Retain storageClassName: alicloud-nas
PV新诉求
登陆Pod所在节点,查看挂载nas的参数为:
# mount | grep nfs 2564f49129-**.cn-shenzhen.nas.aliyuncs.com:/default-html-web-nas-1-pvc-2612b272-14e7-11ea-a9b7-00163e084110 on /var/lib/kubelet/pods/32222e36-14f2-11ea-a9b7-00163e084110/volumes/kubernetes.io~nfs/pvc-2612b272-14e7-11ea-a9b7-00163e084110 type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.25,local_lock=none,addr=192.168.1.152)
如果你希望更新nas挂载参数,期望修改pv的mountOptions参数,例如配置为下面参数:
- nolock,tcp,noresvport - vers=3
执行编辑命令:
# kubectl edit pv pvc-2612b272-14e7-11ea-a9b7-00163e084110
将mountOptions参数更新为:
mountOptions: - nolock,tcp,noresvport - vers=3
重启Pod:
# kubectl delete pod web-nas-1 登陆Pod所在节点插件nas挂载参数:可见已经配置了noresvport等参数; # mount | grep nfs 2564f49129-**.cn-shenzhen.nas.aliyuncs.com:/default-html-web-nas-1-pvc-2612b272-14e7-11ea-a9b7-00163e084110 on /var/lib/kubelet/pods/ba374a37-14f3-11ea-a9b7-00163e084110/volumes/kubernetes.io~nfs/pvc-2612b272-14e7-11ea-a9b7-00163e084110 type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.152,mountvers=3,mountport=4002,mountproto=tcp,local_lock=all,addr=192.168.1.152)
通过上面方法,可以对当前已经生成的NAS PV进行更新,并通过重启Pod使其生效。(注意:noresvport参数生效有其特殊性,咨询nas技术支持。)
升级Nas Controller:
上面的文档只是把老版本生成的pv更新挂载参数,只有更新了nas controller版本后才能使后续生成的pv自动使用新挂载参数。
新Controller模板:
kind: Deployment apiVersion: extensions/v1beta1 metadata: name: alicloud-nas-controller namespace: kube-system spec: strategy: type: Recreate template: metadata: labels: app: alicloud-nas-controller spec: tolerations: - operator: Exists affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: node-role.kubernetes.io/master operator: Exists priorityClassName: system-node-critical serviceAccount: admin hostNetwork: true containers: - name: nfs-provisioner image: registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.14.3.8-58bf821-aliyun env: - name: PROVISIONER_NAME value: alicloud/nas securityContext: privileged: true volumeMounts: - mountPath: /var/log name: log volumes: - hostPath: path: /var/log name: log
通过下面命令重建Nas Controller:
# kubectl delete deploy alicloud-nas-controller # kubectl create -f controller.yaml
StorageClass更新:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas mountOptions: - nolock,tcp,noresvport - vers=3 parameters: server: "2564f49129-**.cn-shenzhen.nas.aliyuncs.com:/" driver: nfs provisioner: alicloud/nas reclaimPolicy: Retain
通过下面命令更新StorageClass:
# kubectl delete sc alicloud-nas # kubectl create -f stroageclass.yaml
验证:
扩容应用Pod数量,生成新PVC、PV:
# kubectl get pv default-html-web-nas-5-pvc-91f37aa0-14f6-11ea-a9b7-00163e084110 -oyaml| grep mountOptions -A 6 mountOptions: - nolock,tcp,noresvport - vers=3 nfs: path: /default-html-web-nas-5-pvc-91f37aa0-14f6-11ea-a9b7-00163e084110 server: 2564f49129-**.cn-shenzhen.nas.aliyuncs.com persistentVolumeReclaimPolicy: Retain
查看Pod挂载信息,noresvport等参数均已配置成功:
2564f49129-**.cn-shenzhen.nas.aliyuncs.com:/default-html-web-nas-5-pvc-91f37aa0-14f6-11ea-a9b7-00163e084110 on /var/lib/kubelet/pods/4bc4bb3e-14f7-11ea-a9b7-00163e084110/volumes/kubernetes.io~nfs/default-html-web-nas-5-pvc-91f37aa0-14f6-11ea-a9b7-00163e084110 type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.152,mountvers=3,mountport=4002,mountproto=tcp,local_lock=all,addr=192.168.1.152)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
容器镜像服务 联手 IDE 插件,实现一键部署、持续集成与交付
容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式。 甚至可以说,是在容器技术之后,DevOps、CI/CD 等运维关键问题才有了质的飞跃:实现资源的动态创建和销毁,更轻量的容器技术既能保证环境一致性也能进一步提高迭代频率,各种容器平台也能更好地保证应用高可用、自动伸缩、业务连续等等。 今天将跟大家分享支撑双十一的容器镜像服务 ACR,以及它是如何实现搭配 IDE 插件和 CICD/云原生应用交付链来实现一键部署与持续集成,以下是本文提纲: 什么是 容器镜像服务 ACR 如何搭配 免费 IDE 插件 实现一键部署 如何运用 CICD/云原生应用交付链 实现持续集成与交付 想听软萌音在线讲解?阿里云小姐姐直播,手把手教你,12月5日晚上8点—9点,直播间等你(还有弹幕截屏送礼品!) 容器镜像服务 ACR 为了更好地支持双十一大规模分发需求,容器镜像服务(Alibaba Cloud Container Registery, ACR)团队提前进行规划及迭代更新,全面提升了大规...
- 下一篇
CNCF官方大使张磊:什么是云原生?
作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使编者说:从 2015 年 Google 牵头成立 CNCF 以来,云原生技术开始进入公众的视线并取得快速的发展,到 2018 年包括 Google、AWS、Azure、Alibaba Cloud 等大型云计算供应商都加入了云原生基金会CNCF,云原生技术也从原来的应用容器化发展出包括容器、Service Mesh、微服务、不可变基础设施、Serverless、FaaS 等众多技术方向,CFCF 旗下也囊括了越来多的开源项目。 Kubernetes 作为 CNCF 的第一个项目从诞生之初就就令人瞩目,Kubernetes 由 Google 工程师基于 Google 内部多年集群管理系统 Borg 的设计经验,结合云计算时代的基础设施特点重新设计而得,旨在帮助企业解决大规模 IT 基础设施的应用容器编排难题。Google 在 2014 年 6 月开源Kubernetes 以后,在 Redhat、Microsoft、Alibaba 等厂商和众多开源爱好者共同的努力下,成长为如今容器编排领域的事实标准,极大的推动了云原生领域的发展。在系...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境