GKEでコンテナ ( Nginx-Proxy + Go )を動かす
やること
- GKEクラスタを作成以下の前ブログで作成済み
- Deploymentを作成
- imageは自身のDocker Hubから取得
- Serviceを作成
- imageは自身のDocker Hubから取得
Nodeの確認
■ $ kubectl get nodes
NAME STATUS ROLES AGE VERSION gke-dev-cluster-1-default-pool-fb10b043-739n Ready <none> 25m v1.11.7-gke.12 gke-dev-cluster-1-default-pool-fb10b043-mt09 Ready <none> 25m v1.11.7-gke.12 gke-dev-cluster-1-default-pool-fb10b043-ws9l Ready <none> 25m v1.11.7-gke.12
DeploymentでPodとコンテナを作成する
■ sample-deploy.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: echo labels: app: echo spec: replicas: 1 selector: matchLabels: app: echo template: metadata: labels: app: echo spec: containers: - name: nginx image: hyajima/docker_golang_nginx:latest ports: - containerPort: 80 - name: echo image: hyajima/golang_echo:latest ports: - containerPort: 8080
■ $ kubectl apply -f sample-deploy.yaml
deployment.apps/echo created
リソースを確認する
■ $ kubectl get pod,replicaset,deployment --selector app=echo
NAME READY STATUS RESTARTS AGE pod/echo-857fd889bc-tsvzl 2/2 Running 0 1m NAME DESIRED CURRENT READY AGE replicaset.extensions/echo-7b8d64d78f 0 0 0 7m replicaset.extensions/echo-857fd889bc 1 1 1 1m NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deployment.extensions/echo 1 1 1 1 7m
サービスを作成する
■ sample-service.yaml
apiVersion: v1 kind: Service metadata: name: frontend spec: ports: - port: 80 targetPort: 80 selector: app: echo type: LoadBalancer
■ $ kubectl apply -f sample-service.yaml
■ $ kubectl get service
kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend LoadBalancer 10.27.254.67 104.198.X.X 80:31813/TCP 1h kubernetes ClusterIP 10.27.240.1 <none> 443/TCP 2h
■ 動作確認
■ $ curl 104.198.X.X
> Hello Docker!!