Назад | Перейти на главную страницу

Сервер NFS на узле Kubernetes?

У нас есть собственный кластер Kubernetes, работающий на «голом железе», могу ли я настроить сервер NFS на одном из узлов (рабочий или главный) в кластере? Если да, нужно ли что-то менять в кластере?

Вы можете настроить pod который будет действовать как сервер NFS.

На Docker Hub есть готовый образ cpuguy83 / nfs-сервер.

Чтобы использовать его, вам необходимо создать службу для предоставления доступа к серверу NFS для модулей внутри кластера:

kind: Service
apiVersion: v1
metadata:
  name: nfs-service
spec:
  selector:
    role: nfs
  ports:
    # Open the ports required by the NFS server
    # Port 2049 for TCP
    - name: tcp-2049
      port: 2049
      protocol: TCP

    # Port 111 for UDP
    - name: udp-111
      port: 111

И pod который запустит изображение:

kind: Pod
apiVersion: v1
metadata:
  name: nfs-server-pod
  labels:
    role: nfs
spec:
  containers:
    - name: nfs-server-container
      image: cpuguy83/nfs-server
      securityContext:
        privileged: true
      args:
        # Pass the paths to share to the Docker image
        - /exports

Пример pod используя том NFS:

kind: Pod
apiVersion: v1
metadata:
  name: pod-using-nfs
spec:
  # Add the server as an NFS volume for the pod
  volumes:
    - name: nfs-volume
      nfs: 
        # URL for the NFS server
        server: 10.108.211.244 # Change this!
        path: /

  # In this container, we'll mount the NFS volume
  # and write the date to a file inside it.
  containers:
    - name: app
      image: alpine

      # Mount the NFS volume in the container
      volumeMounts:
        - name: nfs-volume
          mountPath: /var/nfs

      # Write to a file inside our NFS
      command: ["/bin/sh"]
      args: ["-c", "while true; do date >> /var/nfs/dates.txt; sleep 5; done"]