无法在 k8s 集群上挂载 CIFS 存储

无法在 k8s 集群上挂载 CIFS 存储

我必须挂载 CIFS 存储,尝试使用 flexvolume,fstab/cifs,但我不知道我做错了什么。

使用 microk8s v1.18

root@master:~/yamls# cat pod.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: cifs-secret
  namespace: default
type: fstab/cifs
data:
  username: 'xxxxxxxxxxx='
  password: 'xxxxxxxxxxxxxxxxxxxxxx=='
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - name: busybox
    image: busybox
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: test
      mountPath: /data
  volumes:
  - name: test
    flexVolume:
      driver: "fstab/cifs"
      fsType: "cifs"
      secretRef:
        name: "cifs-secret"
      options:
        networkPath: "//srv/storage"
        mountOptions: "dir_mode=0755,file_mode=0644,noperm"

root@master:~/yamls# kubectl apply -f pod.yaml 
pod/busybox configured
The Secret "cifs-secret" is invalid: type: Invalid value: "fstab/cifs": field is immutable

在将机密类型更改为时,Opaque我得到了这个

Events:
  Type     Reason       Age                   From                                      Message
  ----     ------       ----                  ----                                      -------
  Normal   Scheduled    <unknown>             default-scheduler                         Successfully assigned default/busybox to spb-airsys-services.spb.rpkb.ru
  Warning  FailedMount  17m (x23 over 48m)    kubelet, master  MountVolume.SetUp failed for volume "test" : Couldn't get secret default/cifs-secret err: Cannot get secret of type fstab/cifs

我必须在 Secret 上使用 CIFS 驱动程序吗?为什么这么难?是 API 发生了变化还是其他原因?为什么 API 版本会随着版本而变化,是为了提供版本兼容性而发明的吗?

将来,您对 NFS 挂载有什么建议?此外,您使用哪些做法来提供挂载的快照(或任何其他备份系统)?

答案1

如果机密在创建时被标记为不可变,则无法更改;只能删除并重新创建。您需要先删除旧的不可变机密。

kubectl delete secret cifs-secret

如果您希望更改机密,则不应将其标记为不可变。您似乎没有在此 YAML 中这样做,但似乎之前已经这样做了。

使用该 secret 的现有 pod 在删除后仍会继续使用;即使 secret 具有相同的名称,也需要重新创建它们以使用新创建的 secret。

您应该将 secret 创建与 pod 创建分开,并为它们使用不同的 YAML 文件。这不仅允许您使用不可变 secret 并防止此类问题再次发生,还允许您分离关注点并将 pod 部署到不同的环境(例如开发、生产),每个环境可能具有不同的 secret。

相关内容