03- Montar el directorio cifs usando flexVolume

Este artículo describe cómo usar flexVolume para montar la carpeta compartida de Windows, el clúster k8s está construido por rke

flexVolume

FlexVolume es una interfaz de complemento fuera del árbol que ha estado en Kubernetes desde la versión 1.2 (antes de CSI). Utiliza un modelo basado en exec para interactuar con el controlador. El usuario debe instalar el archivo ejecutable del controlador FlexVolume en el complemento de volumen predefinido en cada nodo (en algunos casos, el nodo maestro).

Pod interactúa con el controlador Flexvolume a través del complemento flexvolume en árbol. Por favor, consulte aquí para más detalles .

juliohm / cifs

El complemento de volumen basado en Flexvolume permite a los clústeres montar volúmenes CIFS (recursos compartidos de samba), consulte aquí para más detalles

Como usar

  1. Instale cifs-utils en cada nodo para montar directorios compartidos

    sudo apt-get install -y cifs-utils

  2. Instale el complemento juliohm / cifs en cada nodo

Aquí puede usar DaemonSet para implementar automáticamente en el nodo:

git clone https://github.com/juliohm1978/kubernetes-cifs-volumedriver.git
cd kubernetes-cifs-volumedriver

make install

El pod montará el directorio / usr / libexec / kubernetes / kubelet-plugins / volume / exec / del nodo y copiará los archivos

Prueba

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  nodeSelector:
    mediatek/role: app
  containers:
  - name: busybox
    image: busybox
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: test
      mountPath: /data
  volumes:
  - name: test
    flexVolume:
      driver: "juliohm/cifs"
      fsType: "cifs"
      options:
        opts: username=[user_name],password=[pass_word],domain=[domain],file_mode=0755,dir_mode=0755
        server: [ip_or_host_name]
        share: [share_folder]

Ocultar información confidencial

En el uso real, la información confidencial, como la contraseña del nombre de usuario, no debe colocarse directamente en las opciones, sino que puede colocarse en secreto:

---
apiVersion: v1
data:
  password: dXNlcjEyMw==
  username: cGFzczEyMw==
kind: Secret
metadata:
  name: my-secret
type: juliohm/cifs

---
...
    options:
      opts: domain=Foo
      server: 10.0.0.114
      share: /publico
    secretRef:
      name: my-secret

depurar

En uso real, encontré algunos problemas:

  1. El volumen no se puede montar y el pod de descripción encuentra un error: el tiempo de espera expiró esperando que los volúmenes se adjunten

ps. Después de actualizar k8s a 1.17.x con rke, se imprimirá un mensaje más detallado:

Incapaz de adjuntar o montar volúmenes: volúmenes desmontados = [xxx], volúmenes no adjuntos = [xxx default-token-rcxrw]: no se pudo obtener el complemento de volumeSpec para el volumen "xxx" err = ningún complemento de volumen coincide

Imprima el registro del contenedor de kubelet, sugiriendo que no se puede encontrar el complemento, enable-controller-attach-detach: false y extra_binds: - "/ usr / libexec / kubernetes / kubelet-plugins: / var / lib / kubelet / volumeplugins" se han configurado, Y compruebe que el directorio de complementos en el pod existe, este problema me ha preocupado durante mucho tiempo.

Finalmente, mire cuidadosamente la documentación de flexvolume y encuentre tal pasaje

El directorio de complementos predeterminado es / usr / libexec / kubernetes / kubelet-plugins / volume / exec /. Se puede cambiar en kubelet mediante el indicador --volume-plugin-dir, y en el administrador del controlador mediante el indicador --flex-volume-plugin-dir.

Tenga en cuenta que el directorio de complementos mencionado aquí es / usr / libexec / kubernetes / kubelet-plugins / volume / exec / en lugar de / var / lib / kubelet / volumeplugins, y luego intente pasar los parámetros de inicio a kubelet:

services:
  kubelet:
    extra_args:
      volume-plugin-dir: /var/lib/kubelet/volumeplugins/volume/exec

Después de reiniciar kubelet!

Supongo que te gusta

Origin www.cnblogs.com/windchen/p/12760718.html
Recomendado
Clasificación