docker build -t idea-factory-xyz .
docker run -p 8080:80 idea-factory-xyz
open http://localhost:8080/
docker tag idea-factory-xyz gcr.io/[PROJECT-ID]/idea-factory-xyz
docker push gcr.io/[PROJECT-ID]/idea-factory-xyz
gcloud container clusters create idea-factory-xyz --num-nodes=2
gcloud container clusters describe idea-factory-xyz
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
- イメージに静的ファイルを含めて配信します。これによりimageの管理が必要になりますが、k8sのエコシステムに含めることができます。
- confファイルはConfigMap Objectを利用することでイメージに含めずに利用することもできます。
- 一般的には静的ファイルホスティングでk8sを選択するケースはあまりないかと思います。
クラスタ作成後、以下を実行すると雛形のyamlが出力されます
kubectl create deployment idea-factory-xyz --image=nginx --dry-run -o yaml
あるいはGCPのコンソール上から作成したオブジェクトのyamlファイルを参照する手もあります。
Serviceを作成しなくても、ローカルへポートフォワーディングしてpodへの疎通確認ができます。
kubectl get pods
kubectl port-forward <POD NAME> 8080:80
kubectl get services # NodePortを控える(3xxxx)
kubectl get nodes --output wide # Nodeの外部IPを控える
gcloud compute firewall-rules create test-node-port --allow tcp:<node-port> # node-portに控えたポートを入力
これでNodeにアクセスできる。削除は以下の通り
gcloud compute firewall-rules delete test-node-port