Edited at

Docker for Mac with Kubernetes で WordPressを立てる

More than 1 year has passed since last update.


はじめに

Docker for Mac with Kubernetes のBeta版が利用できるようになったようなので、WordPressを立ててみました


使用バージョン

$ docker -v

Docker version 17.12-kube_beta, build ca0c9dbcb219048a1a61fbf82a2e69f1b9795023


手順


Kubernetesをインストールする過程は省略

こちらを参考にしてください:

https://qiita.com/taishin/items/920d62a641c9cd58f289


wordpressを準備する

https://github.com/kubernetes/examples/tree/master/mysql-wordpress-pd の以下のファイルをダウンロード

・ mysql-deployment.yaml

・ wordpress-deployment.yaml

wordpress-deployment.yamlのイメージを最新版に変更

...

spec:
containers:
- image: wordpress:4.9.1-php7.1-apache #変更
...


Kubernetesに設定を反映する

mysqlのパスワードを設定する

kubectl create secret generic mysql-pass --from-literal=password=yourpassword

mysqlを立ち上げる

kubectl apply -f mysql-deployment.yaml

wordpressを立ち上げる

kubectl create -f wordpress-deployment.yaml


起動を確認する

$ kubectl get pvc

NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mysql-pv-claim Bound pvc-64a467ef-f759-11e7-9b74-025000000001 20Gi RWO hostpath 42m
wp-pv-claim Bound pvc-c9ce4309-f75c-11e7-9b74-025000000001 20Gi RWO hostpath 17m
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
wordpress-5566d7675-9bs57 1/1 Running 0 17m
wordpress-mysql-7b4ffb6fb4-6rkkj 1/1 Running 0 42m
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h
wordpress LoadBalancer 10.101.234.56 <pending> 80:31689/TCP 17m
wordpress-mysql ClusterIP None <none> 3306/TCP 42m

GKEなどではServiceのEXTERNAL-IPに接続先のIPアドレスが表示されますが、Docker for Macは localhost で繋ぐようです。

$ curl -sSL -D - localhost -o /dev/null

HTTP/1.1 200 OK
Date: Fri, 12 Jan 2018 06:16:50 GMT
Server: Apache/2.4.10 (Debian)
X-Powered-By: PHP/7.1.13
Link: <http://localhost/wp-json/>; rel="https://api.w.org/"
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8


片付ける

# 一気に削除する場合

$ kubectl delete all,pvc,secret --all
# 設定ファイルを使って削除する場合
kubectl delete -f wordpress-deployment.yaml
kubectl delete -f mysql-deployment.yaml

参考記事