首页 小编推荐正文

鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三

经过K8S运用NAS卷,请区别以下场景:

静态存储卷:

运用阿里云ACK,PV、PVC办法,nfs驱动;

运用阿里云ACK,PV、PVC办法,Flexvolume驱动;

运用阿里云ACK,Volume办法,nfs驱动;

运用阿里云ACK,Volume办法,Fl容子菲exvolume驱动;

自建K8S,PV、PVC办法,nfs驱动;

自建K8S,Volume办法,nfs驱动;

动态存储卷:

运用阿里云ACK

运用自建K8S

静态卷-运用阿里云Kuberneteincurrs(ACK)时

1. 运用PV、PVC办法(nfs驱动)

首要承认当时的挂载是否装备了noresvport参数,参阅NAS团队供给的办法;

例如当时的pv如下面yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nas
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 2Gi
mountOptions:
- vers=3
nfs:
path:香坂 /default
server: 2564f49129-ggu23.诊组词cn-shenzhen.nas.aliyuncs.com
persistentVolumeReclaimPolicy: Retain鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三

修正PV:

kubectl edit pv pv-na鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三s

更新mountOptions:

mountOptions:
- vers=4.0
- noresvport

或许:

mountOptions:
- vers=3
- nolock,tcp,noresvport

重启运用这个pv的pod;

需求留意:

因为代磊新浪博客一个节点上,假如现已有某个挂载点挂载在一个目录下了,其他的挂载(相同挂载点)即便装备了noresvport参数,仍是会foll寒门翰林ow曾经的挂载参数。即noresvport不收效;

解决办法:

办法1:修正pv参数后,把一切运用这个挂载点的pod掉离这个节点,然后再调回来。

办法2:运用新的挂载点创立新的pv运用(一个nas文件体系能够有2个挂载点);

示例办法1:

集群中有2个worker节点,布置一个deploy包括3个Pod;
# kubectl get node | grep -v master
NAME STATUS ROLES AGE 亚空瘴气VERSION
cn-shenzhen.i-wz9c9m0m4oldr6mt89rd Ready 55d v1.12.6-aliyun.1
cn-shenzhen.i-wz9gvy73m4qyk03xzg1y Ready 60d v1.12.6-aliyun.1
# kubectl get pod
NAME READY STATUS RESTARTS AGE
nas-static-784496fbb9-cqr97 1/1 Running 0 63m
nas-static-784496fbb9-gljbq 1/1 Running 0 63m
nas-static-784496fbb9-ngzkq 1/1 Running 0 63m
修正pv,增加- nolock,tcp,noresvport Options;
修正deploy,把这个deploy的pod都调度到节点:cn-shenzhen.i-wz9c9m0m4oldr6mt89rd上;
> 在deploy中增加 nodeName: cn-shenzhen.i-wz9c9m0m4oldr6mt89rd姑苏康民医药有限公司
> 假如您的集群节点较多,能够给一批节点增加label,然后经过nodeSelector把pod调度到这写节点;
> 参阅:https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-pods-nodes/
留意:假如您用的时分statefulset的运用,需求把updateStrategy.type装备为RollingUpdate;
然后再把pod调度到其他节点:cn-shenzhen.i-wz9gvy73m4qyk03xzg1y
到节点cn-shenzhen.i-wz9gvy73m4qyk03xzg1y 上验证noresport,现已收效。
2564f49129-ggu23.cn-shenzhen.nas.aliyuncs.com:/default on /var/lib/kubelet/pod敬爱老公s曲蕃蕊/aa79e380-9bdb-11e9-a545-00163e0eff42/volumes/kubernetes.io~nfs/pv-nas 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.0.11,mountvers=3,mountport=4002,mountproto=tcp,local_lock=all,addr=192.168鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三.0.11)
最终,因为当时运用nas的pod是有nodeName标签的,能够修正deploy,把nodeName(nodeSelector)去掉。

2. 运用PV、PVC办法(Flexvolum鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三e驱动)

首要承认当时的挂载是否装备了noresvport参数,参阅NAS团队供给的办法;

例如当时的pv如下面yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nas
spec:
capacity:
storage: 5Gi
storageClassName: nas
accessModes:
- ReadWriteMany
flexVol赤色官权ume:
driver: "alicloud/nas"
opti修眼神功ons:
server: "0cd8b4a576-uih75.cn-hangzhou.nas.aliyuncs.com"
path: "/k8s"
vers: "3"

重启运用这个pv的pod(晋级flexvolume版别到最新);

需求留意:

因为一个节点上,假如现已有某个挂载点挂载在一个目录下了,其他的挂载(相同挂载点)即便装备了noresvport参数,仍是会follow曾经的挂载参数。即noresvport不收效;

解决办法:

办法1:修正pv参数后,把一切运用这个挂载点的pod掉离这个节点,然后再调回来。

办法2:运用新的挂载点创立新的pv运用(一个nas文件体系能够有2个挂载点);

参阅示例办法1

3. 运用Volu鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三me办法挂载(nfs驱动)

不支持增加noresvport 参数,请运用pv、pvc办法;

apiVersion: v1
kind: Pod
metadata:
name: "flexvolume-nas-example"
spec:
containers:
- name: "nginx"
image: "nginx"
volumeMounts:
- name: "nas1"
mountPath: "/data"
volumes:
- name: "nas1"
nfs:
path: /
server: 0cd8类组词b4a576-grs79.cn-hangzhou.nas.aliyuncs.com

4. 运用Volume办法挂载(flexvolume驱动)

apiVersion: v1
kind: Pod
metadata:
name: "flexvolume-n伊耳舒as-example"
spec:
containers:
- name: "nginx"
image: "nginx"
volumeMounts:
- name: "nas1"
mountPath: "/data"
volumes:
- name: "nas1"
flexVolume:
driver: "alicloud/nas"
options:
server篮坛记载王: "0cd8b4a576-grs79.cn-hangzhou.nas.aliyuncs.com"
path: "/k8s"
vers: "3"

重启运用这个pv的pod(晋级flexvolume版别到最新);

需求留意:

因为一个节点上,假如现已有某个挂载点挂载在一个目录下了,其他的挂载(相同挂载点)即便装备了noresvport参数,仍是会follow曾经的挂载参数。即noresvport不收效;

解决办法:

办法1:修正pv参数后,把一切运用这个挂载点的pod掉鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三离这个节点,然后再调回来。

办法2:运用新的挂载点创立新的pv运用(一个nas文件体系能够有2个挂载点);

参阅示例办法1

静态卷-不运用ACK,自建K8S

参阅上面ACK集群中运用nfs驱动的解决方案;

动态存储卷:

自建集群和ACK同下面办法;

关于运用下面storageclass创立的pv,假如没有增加noresvport参数,其生成的pv也没有增加noresvport:

apiV鸡血藤,K8S环境中NAS卷增加noresvport办法,安倍晋三ersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: alicloud-nas
mountOptions:
- vers=3
provisioner: alicloud/nas
reclaimPolicy: Retain

处理动态卷分为两个部分:

1. 更新storageclass:

这样后续生成的pv会默许增加noresvport参数;修正stroageclass:

# kubectl edit sc alicloud-nas
mountOptions:
- nolock,tcp,noresvport
- vers=3

2. 更新存量pv的挂载

# kubectl get pv
pvc-b56f1李久衍85a-9be4-11e9-a545-00163e0eff42 2Gi RWO Retain Bound default/html-web-0 alicloud-nas 5h14m
pvc-bc6b1f8d-9be4-11e9-a545-00163e0eff42 2Gi RWO Reta崩牙驹和张子强的过节in Bound default/html-web-1 alicloud-nas 5h14m
pvc-bf949736-9be4-11e9-a545-00163e0eff42 2王二妮与老公李飞离婚Gi RWO Retain Boun性侵少女d default/html-web-2 alicloud-nas 5h14m

同办法:运用PV、PVC办法(nfs驱动)

在pv中增加noresvport,

调度pod到其他节点;

作者:阚俊宝

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。