配置带有CIF的flexvolume时,Pod在Node上安装错误目录

时间:2019-04-09 13:43:21

标签: kubernetes cifs

在具有1个主节点和3个节点的Kubernetes集群以及单机Kubernetes上也会发生以下问题。

我设置了具有flexvolume smb支持(https://github.com/Azure/kubernetes-volume-drivers/tree/master/flexvolume/smb)的Kubernetes。当我使用flexvolume应用新的pod时,Node将按预期方式安装smb共享。但是Pod会将他的共享指向Node上的某个docker目录。

我的安装:

使用以下对象创建Pod

smb-secret.yaml

apiVersion: v1
kind: Secret
metadata:
  name: smb-secret
type: microsoft.com/smb
data:
  username: YVVzZXI=
  password: YVBhc3N3b3Jk

nginx-flex-smb.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-flex-smb
spec:
  containers:
  - name: nginx-flex-smb
    image: nginx
    volumeMounts:
    - name: test
      mountPath: /data
  volumes:
  - name: test
    flexVolume:
      driver: "microsoft.com/smb"
      secretRef:
        name: smb-secret
      options:
        source: "//<host.with.smb.share>/kubetest"
        mountoptions: "vers=3.0,dir_mode=0777,file_mode=0777"

会发生什么

  • 节点上的安装点是在/var/lib/kubelet/pods/bef26895-5ac7-11e9-a668-00155db9c92e/volumes/microsoft.com~smb上创建的。
  • mount返回//<host.with.smb.share>/kubetest on /var/lib/kubelet/pods/bef26895-5ac7-11e9-a668-00155db9c92e/volumes/microsoft.com~smb/test type cifs (rw,relatime,vers=3.0,cache=strict,username=aUser,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=172.27.72.43,file_mode=0777,dir_mode=0777,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
  • 在主机和节点本身上的读取和写入工作符合预期
  • 在豆荚上
      / li的
    • mount指向tmpfs on /data type tmpfs (rw,nosuid,nodev,seclabel,size=898680k,nr_inodes=224670,mode=755)
    • 但是目录/ data的内容来自节点上的/run/docker/libcontainerd/8039742ae2a573292cd9f4ef7709bf7583efd0a262b9dc434deaf5e1e20b4002/

我尝试用PersistedVolumeClaime安装Pod,并得到相同的问题。寻找这个问题没有解决方法。

我们的其他Pod使用GlusterFS和heketi,效果很好。

是否可能是配置失败?缺少什么了吗?

编辑:解决方案
我将Docker升级到最新的经过验证的版本18.06,现在一切正常。

1 个答案:

答案 0 :(得分:1)

我将Docker升级到了经过验证的最新版本18.06,现在一切正常。

要安装它,请遵循Get Docker CE for CentOS上的说明。