1
2

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.

IBM Cloud Private (無料のオンプレK8s SW製品) 最もシンプルな永続ボリュームの設定法

Last updated at Posted at 2018-03-01

無料でダウンロードして試せる IBM Cloud Private Community Edition (以下ICP-CE) を利用して、前回はGlusterFSを利用する方法を紹介しましたが、今回は、最も簡単に永続ボリュームを設定する方法の紹介です。 ICP-CEをインストールしたLinuxサーバーの内蔵ディスクを永続ボリュームとして定義します。
ただし、1台のサーバーにマスターとノードを混在させている時だけ有効な方法です。

ICP-CEへのログイン

kubectlを利用する前に、以下を実行しておきます。

imac:icp maho$ bx pr login
 Login method invokedAPI endpoint: https://192.168.1.100:8443

Username> admin

Password> 
Authenticating...
OK

Select an account:
1. ICP Account (dcf61fd7b0971a2ef7ceb4faae004db7)
Enter a number> 1
Targeted account: ICP Account (dcf61fd7b0971a2ef7ceb4faae004db7)

imac:icp maho$ bx pr cluster-config mycluster
Configuring kubectl: /Users/maho/.bluemix/plugins/icp/clusters/mycluster/kube-config
Cluster "mycluster" set.
Context "mycluster-context" modified.
User "mycluster-user" set.
Context "mycluster-context" modified.
Switched to context "mycluster-context".

OK
Cluster mycluster configured successfully.

PV定義のYAML

参考資料 https://kubernetes.io/docs/concepts/storage/volumes/#hostpath

参考資料を参照しながら、PVから作っていきます。 サーバーのパスを設定するだけですから簡単ですね。

hostpath-pv.yaml
kind: PersistentVolume
apiVersion: v1
metadata:
  name: hostpath1
  labels:
    type: local
    name: hostpath1
spec:
  capacity:
    storage: 300Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/tmp/hostpath-vol-1"
    type: DirectoryOrCreate

上記YAMLを適用します。

kubectl create -f hostpath-pv.yaml

ICP-CEの管理画面 PersistentVolume
スクリーンショット 2018-03-02 0.07.42.png

PVC定義のYAML

参考資料 https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims

次にPVCを作成します。

hostpath-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
 name: hostpath-pvc1
 annotations:
   volume.beta.kubernetes.io/storage-class: ""
spec:
 accessModes:
   - ReadWriteMany
 resources:
   requests:
     storage: "300Gi"
 selector:
   matchLabels:
     name: hostpath1

上記YAMLを適用します。

kubectl create -f hostpath-pv.yaml

ICP-CEの管理画面 PersistentVolumeClaim

スクリーンショット 2018-03-02 0.08.14.png

kubectl get での確認

以下、コマンドで状態を確認した結果です。

imac:icp maho$ kubectl get pv hostpath1
NAME        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                   STORAGECLASS   REASON    AGE
hostpath1   300Gi      RWX            Retain           Bound     default/hostpath-pvc1                            14m
imac:icp maho$ kubectl get pvc hostpath-pvc1
NAME            STATUS    VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
hostpath-pvc1   Bound     hostpath1   300Gi      RWX                           14m

ポッドからのHostpathで作った永続ボリュームの利用

ポッドとNodePortを作るYAMLです。

nginx_pod3.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod3
  labels:
    app: nginx-pod3
spec:
  containers:
  - name: nginx-pod
    image: gcr.io/google_containers/nginx-slim:0.8
    ports:
    - name: web
      containerPort: 80
    volumeMounts:
    - name: hostpath-vol1
      mountPath: /usr/share/nginx/html
  volumes:
  - name: hostpath-vol1
    persistentVolumeClaim:
      claimName: hostpath-pvc1
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-nodeport-service3
spec:
  type: NodePort
  selector:
    app: nginx-pod3
  ports:
  - protocol: TCP
    port: 80
    nodePort: 31593

ポッド起動して、ノードポートを開設します。

kubectl create -f nginx_pod3.yaml

Curlでアクセスした結果

imac:icp maho$ curl http://192.168.1.100:31593/
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.11.1</center>
</body>
</html>

簡易にコンテンツを作って、再テスト

imac:icp maho$ curl http://192.168.1.100:31593/
Hello World from Hostpath

まとめ

ICP-CEを1台のサーバーに設定する事も多いと思うので、簡単にhostpathで永続ストレージを作る事の方が多いと思うので、そういった時の参考になれば幸いです。 それから、CNCFのKubernetesの認証を受けた製品なので、当然なんでしょうけど、IBM Cloud Private は、Kuberntes のドキュメントを参照しながら hostpathの設定ができる事が確認できました。

1
2
1

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?