5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

minikubeでNFSのPVとPVCを作ってprivate registryを起動する

Last updated at Posted at 2019-09-02

環境

  • minikube: v1.3.1
  • kubernetes: 1.15
  • macOS: 10.14.4

ホストOS側でNFSサーバを起動する

ディレクトリ作成。

sudo mkdir /share
sudo chmod 777 /share

sudo bash -c "echo '/share -mapall=nobody:wheel -network 192.168.99.0 -mask 255.255.255.0' >> /etc/exports"

NFSデーモンの起動

sudo nfsd start
sudo nfsd update  

確認

sudo showmount -e  

出力

Exports list on localhost:
/share                              192.168.99.0

minikube側に/shareディレクトリを作成

minikube ssh mkdir /share
``

### マウント確認

minikube ssh
sudo mkdir /share
sudo mount -t nfs 192.168.99.1:/share /share


`df`コマンドなどでマウントができていることを確認してアンマウント。

sudo umount /share


## PersistentVolumeと、PersistentVolumeClaimの定義

```yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: slow
  mountOptions:
    - hard
  nfs:
    path: /share
    server: 192.168.99.1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc1
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: slow

適当なファイル名で保存し、kubectl apply -f ファイル名 します。

private registryの起動

nodePortで30500に固定しています。ホスト側からpushする場合は、nodePortの30500に接続するように設定します。

kind: Service
apiVersion: v1
metadata:
  name: registry-service
spec:
  selector:
    app: registry-service
  type: NodePort
  ports:
  - protocol: TCP
    port: 5000
    targetPort: 5000
    nodePort: 30500
    name: registry-http
---
kind: Pod
apiVersion: v1
metadata:
  name: registry
  labels:
    app: registry
spec:
  containers:
    - name: registry
      image: registry:2
      volumeMounts:
      - mountPath: "/var/lib/registry"
        name: pvc
      ports:
      - containerPort: 5000
  volumes:
    - name: pvc
      persistentVolumeClaim:
        claimName: nfs-pvc1

適当なファイル名で保存し、kubectl apply -f ファイル名 します。

private registryのウェブUI

private registryに入っている内容をウェブUIで閲覧できるようにするにはkonradkleine/docker-registry-frontend:v2イメージを使います。

kind: Service
apiVersion: v1
metadata:
  name: registry-frontend-service
spec:
  selector:
    app: registry-frontend-service
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    name: registry-http-frontend
---
kind: Pod
apiVersion: v1
metadata:
  name: registry-frontend
  labels:
    app: registry-frontend
spec:
  containers:
    - name: registry-frontend
      image: konradkleine/docker-registry-frontend:v2
      ports:
      - containerPort: 80
      env:
      - name: ENV_DOCKER_REGISTRY_HOST
        value: registry-service
      - name: ENV_DOCKER_REGISTRY_PORT
        value: "5000"

適当なファイル名で保存し、kubectl apply -f ファイル名 します。

minikube service registry-frontend-service と実行するとブラウザで閲覧できます。

参照

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?