はじめに

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

参考記事

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.