k8sでDockerイメージを格納するためのプライベートレジストリを構築する
こんにちは、ナナオです。 自宅にk8sを構築してからいろいろやりたいことが増えました。 ということで今回はk8sを使って自宅内で使えるプライベートレジストリの構築に挑戦してみました。 どうやって構築するか うちには以前ジャンクで買ったNASがあるので、このNASをストレージにしてDockerイメージを放り込めるようにしたいです。 NASにはNFSで接続できます。 一度NAS側にDockerイメージを放り込むためのディレクトリを作成しておきます。 私の場合WebUIで設定できました 次に先ほど作成したディレクトリを参照するPVとPVCを作っていきます。 apiVersion: v1 kind: PersistentVolume metadata: name: registry-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteMany # 複数ノードから同時に読み書き可能 persistentVolumeReclaimPolicy: Retain storageClassName: nas nfs: server: 192.168.0.xx # NASのIPアドレス path: /docker-registry # NASの共有パス --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-pvc namespace: kube-system spec: accessModes: - ReadWriteMany resources: requests: storage: 100Gi storageClassName: nas 作成したところ、エラーになりました。 │ Warning FailedScheduling 15m default-scheduler 0/3 nodes are available: persistentv │ │ olumeclaim "registry-pvc" not found. not found │ │ Warning FailedScheduling 15m default-scheduler running PreFilter plugin "VolumeBind │ │ ing": error getting PVC "kube-system/registry-pvc": could not find v1.PersistentVolumeClaim "kube-system │ │ /registry-pvc" │ │ Normal Scheduled 15m default-scheduler Successfully assigned kube-system/do │ │ cker-registry-85dbb54f6c-zmrkl to nanaonuc6caysserver │ │ Warning FailedMount 58s (x15 over 15m) kubelet MountVolume.SetUp failed for volume │ │ "registry-pv" : mount failed: exit status 32 │ │ Mounting command: mount │ │ Mounting arguments: -t nfs 192.168.0.94:/docker-registry /var/lib/kubelet/pods/1f2e1d4d-447c-4bcf-9987-c │ │ 930a2576654/volumes/kubernetes.io~nfs/registry-pv │ │ Output: mount: /var/lib/kubelet/pods/1f2e1d4d-447c-4bcf-9987-c930a2576654/volumes/kubernetes.io~nfs/regi │ │ stry-pv: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper │ │ program. │ │ dmesg(1) may have more information after failed mount system call. エラーのbad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helperから、NFSを扱うためのツールセット各ノードにがインストールされていないことが原因だとわかりました。 ...