オリジナルのイメージをつくるための Dockerfile はこちらです。php -S するだけの小さな Docker イメージ
ステップをまとめてみます。
- GCPコンソールでプロジェクト作成
- イメージをビルドして、レジストリにアップ
- cluster を作成
- pod を作成
- つくった pod を expose
- パブリックな IP でアクセスができるようになります。完。
事前準備として以下の2つのコマンドは打てるようにしておいてください。
- gloud
- kubectl
Step.1 GCPでプロジェクトを作成
ここは頑張って作成してみてください。課金とかも許容する大きな心が必要かもしれません。がんばってください。
Step.2 イメージをビルドして、レジストリにアップ
上で登録したプロジェクトIDを、<PROJECT-ID>
の部分にいれてください。以下、hello-なんちゃらの部分も、任意で設定できますので。
$ gcloud config set project <PROJECT-ID>
$ PROJECT_ID="$(gcloud config get-value project)"
# イメージ作成
$ docker build -t gcr.io/${PROJECT_ID}/php-server:v1 .
# イメージプッシュ
$ gcloud docker -- push gcr.io/${PROJECT_ID}/php-server:v1
無事、Container Registry に上がりました。
Step.3 クラスタ作成
$ gcloud container clusters create hello-cluster
# Check
$ gcloud container clusters list
$ gcloud compute instances list
Step.4 ポッド作成
$ kubectl run hello-world --image=gcr.io/${PROJECT_ID}/php-server:v1 --port 7788
Step.5 Expose する
$ kubectl expose deployment hello-world --type=LoadBalancer --port 7788
Step.6 アクセス!
# まずは、IP を確認
$ kubectl get service hello-world
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-world 10.43.248.115 35.187.210.206 7788:32718/TCP 53m
無事アクセスできました。
あとかたづけ
$ kubectl get all
$ gcloud container clusters delete <CLUSTER-NAME>
$ kubectl delete deploy <DEPLOY-NAME>
$ kubectl delete service <SERVICE-NAME>
以上、入門メモでございます。 🙂