前回の続きになります。
前回は、Kubernetes にて CentOS7 + Apache + PHP7.0 の環境を用意して、Apacheを確認する部分まで進みましたので、その続きとして PHP の動作を確認してみたいと思います。
とりあえず、phpinfo でPHPの設定情報でも表示してみようと思ったのですが、イメージファイル内には phpのファイルを含めていませんでしたので表示できません。
イメージに PHP ファイルを含めるようにして再作成すれば確認できる状態になると思いますが、ファイルを変更するごとに再作成を行うのも面倒&開発環境ですので、ホストをマウントするようにしたいと思います。
※ Kubernetes 1.9.2 で試してます
ホストをマウントするボリュームを用意
ホストをマウントしようとは決めましたが、ググってもいまいちどれが良いのか分からない、、というかバージョンのせいなのか、どれも書き方が違っている・・・。
仕方がないので、公式ドキュメント + 翻訳 で頑張ってみることにします。
まず、Volume といっても 普通の Volume と 永続的なVolume でわかれているようです。
消えても良いかどうかと言われると、開発のソースコードは消えない方が良いので、永続的な Volume (PersistentVolume)を利用するようにします。
ざっくりと、説明をみてみると、「PersistentVolume」と「PersistentVolumeClaims」が必要みたいです。
うーん・・さっぱり意味がわかりません・・ ^^;
とりあえず、言われるがままに用意します。
うーん・・さっぱり意味がわかりません・・ ^^;
とりあえず、言われるがままに用意します。
apiVersion: v1 kind: PersistentVolume metadata: name: centos7-volume spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: centos7-storage hostPath: path: /ホストのパスフルパスで指定/html
サイズとして、1Gi を確保
とりあえず作成してみる。
kubectl create -f centos7-volume.yml
kubectl get vp でエラーなく作成できているか確認。
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE centos7-volume 1Gi RWO Retain Available centos7-storage 5s
次に、PersistentVolumeClaims を用意。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: centos7-volume-claims spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: centos7-storage
storageClassName を PersistentVolume と合わせてあげれば上手くつながってくれるみたいです。
こっちも作成してみる。
kubectl create -f centos7-volume-claims.yml
kubectl get vpc で STATUS が Bound になってれば成功です。
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE centos7-volume-claims Bound centos7-volume 1Gi RWO centos7-storage 3s
ボリュームが作成できたので、PODと紐付けてみます。
POD と Volume を紐付け
前回しようした、「centos7.yml」に Volume について追記します。
apiVersion: apps/v1 kind: Deployment metadata: name: mycentos7 labels: app: mycentos7 spec: selector: matchLabels: app: mycentos7 template: metadata: labels: app: mycentos7 spec: containers: - name: mycentos7 image: localhost:5000/web/mycentos7:1 ports: - containerPort: 80 volumeMounts: - mountPath: /var/www name: docroot volumes: - name: docroot persistentVolumeClaim: claimName: centos7-volume-claims
先程作った Volume を /var/www にマウントします。
マウントされるホスト側のディレクトリには、html ディレクトリと、phpinfo() を書いたPHPファイルを用意してます。
前回同様、
kubectl apply -f centos7.yml
で動かしてあげると、phpinfo が表示されるはず。
(サービスは前と同じです)
でました!!
とりあえず、Apache + PHP まではできたようですので、次はデーターベースに進みたいと思います。
タイトルに含めてたけど、EC-CUBEにたどり着けるのはまだ先になりそう。。
以上、Docker For Mac で Kubernetes を試してEC-CUBEを動かしてみる(その2) でした。
0 件のコメント:
コメントを投稿