web-dev-qa-db-ja.com

Kubernetesノード上のNFSサーバー?

ベアメタルで稼働する社内Kubernetesクラスターがありますが、クラスター内のいずれかのノード(ワーカーまたはマスター)にNFSサーバーを設定できますか?はいの場合、クラスター内の何かを変更する必要がありますか?

3
AVarf

NFSサーバーとして機能するpodを設定できます。

Docker Hub cpuguy83/nfs-server に準備ができたイメージがあります。

これを使用するには、クラスター内のポッドに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

NFSボリュームを使用したpodの例:

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"]

2
Crou