ブログを放置しまくっていますが、久々に書きたいと思います。
(もう2月というのに今年初投稿とは、、もっと適当に頑張ろっと)
Docker for mac で Kubernetes (Beta版) が利用できるようになったらしいので、試してみます。
Docker の使い方を教えてもらってから、開発環境は Docker を利用しており、Kubernetes も試してみたかったというか、興味があったものの、よく分からず手が出せておりませんでした。。 ^^;
ということで、基本よく分からない状態でゴニョゴニョやってみたいと思います。
最終的には、EC-CUBEが動く状態の環境を作りたいという趣旨です。
最終的には、EC-CUBEが動く状態の環境を作りたいという趣旨です。
Edge版をインストール
(と思ったのですが、一度Stable版をアンインストールしてEdge版が再インストールされるので、開発環境(主に Volume)のエクスポートを行いました)
インストールが完了して、起動したら設定を表示して、kubernetes を有効化します。
有効化できたら、利用できるようになっているはずです。
(miniKubeとかを使ってたら設定を変更する必要がありますが、そこらへんはスキップで)
インストールはできたので、さっそく何か動かしてみたいと思います。
ゴールは、EC-CUBEを動作させるということで、LAMP環境(できればMySQLではなくPostgreSQLが良い)を作りたいと思います。
・・ググる
・・・ググる
・・・・ググる
色々と検索をしてみましたが、よくあるサンプルは nginx と WordPress あたりですね。
(まぁ、並行的に動かして・・・と考えると nginx ですよね)
EC-CUBEのシステム要件としては、WebServer は Apache なので、(というか公開を前提とした本気の環境でも無いので)とりあえず Apache を動かしてたい。。
Apache のイメージを持ってきて動かせば、とりあえず起動させるのは問題ないかと思いますが、今の開発環境をベースに試したいと思いますので、謎の縛り状態でやってみたいと思います。
[ 環境 ]
CentOS 7
Apache 2.4
PHP 7.0
MySQL ( と PostgreSQL )
目指す環境が決まりましたので、順に進んでいきたいと思います。
まずはこれを用意
CentOS7 + Apache 2.4 + PHP7.0
普段は、Dockerfile を用意しておいて、docker-compose で組み立ててますが、Kubernetes でやるには、イメージをもってくるような状態にしないといけないようですので、普段の Dockerfile をもとにイメージを用意したいと思います。
・・・
プライベートなレジストリ持ってないです。はい。
(DockerHub のアカウント作ってないです ^^;
まずは、Apache と言いながら、いきなり別のことになりそうです。。
ということで、Dockerを使って自前で用意します。
実行します
レジストリが用意できたら、CentOS7 + Apache2.4 + PHP7.0 の環境のイメージを登録します。
別ディレクトリを作成して、イメージを作るためのファイルを用意します。
(別途用意ではなく、開発環境用に利用しているものを使いまわしてます)
インストールが完了して、起動したら設定を表示して、kubernetes を有効化します。
有効化できたら、利用できるようになっているはずです。
(miniKubeとかを使ってたら設定を変更する必要がありますが、そこらへんはスキップで)
インストールはできたので、さっそく何か動かしてみたいと思います。
つくる環境を考える
ゴールは、EC-CUBEを動作させるということで、LAMP環境(できればMySQLではなくPostgreSQLが良い)を作りたいと思います。
・・ググる
・・・ググる
・・・・ググる
色々と検索をしてみましたが、よくあるサンプルは nginx と WordPress あたりですね。
(まぁ、並行的に動かして・・・と考えると nginx ですよね)
EC-CUBEのシステム要件としては、WebServer は Apache なので、(というか公開を前提とした本気の環境でも無いので)とりあえず Apache を動かしてたい。。
Apache のイメージを持ってきて動かせば、とりあえず起動させるのは問題ないかと思いますが、今の開発環境をベースに試したいと思いますので、謎の縛り状態でやってみたいと思います。
[ 環境 ]
CentOS 7
Apache 2.4
PHP 7.0
MySQL ( と PostgreSQL )
まずは Apache
目指す環境が決まりましたので、順に進んでいきたいと思います。
まずはこれを用意
CentOS7 + Apache 2.4 + PHP7.0
普段は、Dockerfile を用意しておいて、docker-compose で組み立ててますが、Kubernetes でやるには、イメージをもってくるような状態にしないといけないようですので、普段の Dockerfile をもとにイメージを用意したいと思います。
・・・
プライベートなレジストリ持ってないです。はい。
(DockerHub のアカウント作ってないです ^^;
まずは、Apache と言いながら、いきなり別のことになりそうです。。
ということで、Dockerを使って自前で用意します。
version: "3" services: myregistry: image: registry:2.6 volumes: - ./myregistry:/var/lib/registry ports: - "5000:5000"
実行します
docker-compose -f docker-compose-registry.yml up -d
レジストリが用意できたら、CentOS7 + Apache2.4 + PHP7.0 の環境のイメージを登録します。
別ディレクトリを作成して、イメージを作るためのファイルを用意します。
(別途用意ではなく、開発環境用に利用しているものを使いまわしてます)
FROM centos:7 RUN yum -y install httpd RUN yum -y install epel-release RUN rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm RUN yum -y install --enablerepo=remi,remi-php70 php php-mbstring php-pdo php-gd php-xml php-zip php-mcrypt php-mysql php-pgsql RUN yum -y update COPY ./myconf.conf /etc/httpd/conf.d/myconf.conf CMD [ "/usr/sbin/httpd", "-D", "FOREGROUND" ]
<VirtualHost *:80> DocumentRoot /var/www/html <Directory "/var/www/html"> Require all granted AllowOverride All AddDefaultCharset utf-8 </Directory> </VirtualHost>
version: "3" services: web: build: . ports: - "80:80"
イメージを作成します
docker-compose -f docker-compose-web.yml build
イメージの作成が完了したら、レジストリに登録します。
イメージの名前を変えないといけないようなので、変更して登録します。
(登録したことないから、ググってコピペ状態です。。^^;
docker tag image_web:latest localhost:5000/web/mycentos7:1
で名前を変更して
docker push localhost:5000/web/mycentos7:1
で push します。
登録できたので、これをもとにようやくKubernetes に進みたいと思います。
pod 作成のために、deployment のファイルを用意します。
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
では、pod を作成してみます。
kubectl apply -f centos7.yml
先程用意したファイルで作成
kubectl get pod
で pod を確認してみます。
NAME READY STATUS RESTARTS AGE mycentos7-6b9db6df94-xwt7q 1/1 Running 0 14s
できてるっぽいです。
Apache のテストページがみたいので、アクセスしてみたいと思います。
アクセスするには、サービスが必要みたいなので、用意します。
apiVersion: v1 kind: Service metadata: name: mycentos7 labels: app: mycentos7 spec: ports: - port: 80 selector: app: mycentos7 type: NodePort
サービスを作成します。
kubectl create -f centos7-service.yml
作成したサービスを確認してみます。
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 19h mycentos7 NodePort 10.109.140.222 <none> 80:30462/TCP 2m
できたみたいです。
では、ブラウザからアクセスしてみます。
作成したサービスのポート番号にアクセスします。
http://localhost:30462/
表示できました。
なかなか大変だった。。
ひとまず、CentOS7 + Apache + PHP7.0 まできましたが、PHPが本当に動くのか部分は未確認なので、次回は PHP の動作確認から行いたいと思います。
以上、Docker For Mac で Kubernetes を試してEC-CUBEを動かしてみる(その1)でした。
0 件のコメント:
コメントを投稿