Think Twice

Memorandum

CentOS7 minimal で Kubernetes ~part 5~

GoogleCloudPlatformでGuestBookを動かしてみる

(もうCentOSじゃありません。)

gcp に container cluseter を作成
$ gcloud beta container clusters create guestbook --num-nodes 3
Creating cluster guestbook...done.
Created [https://container.googleapis.com/v1/projects/kube-1043/zones/asia-east1-b/clusters/guestbook].
kubeconfig entry generated for guestbook.
NAME       ZONE          MASTER_VERSION  MASTER_IP        MACHINE_TYPE   STATUS
guestbook  asia-east1-b  1.0.3           130.211.246.179  n1-standard-1  RUNNING
クラスタを確認する。
$ gcloud beta container clusters list
NAME       ZONE          MASTER_VERSION  MASTER_IP        MACHINE_TYPE   STATUS
guestbook  asia-east1-b  1.0.3           130.211.246.179  n1-standard-1  RUNNING
nodeの確認
$ kubectl get nodes
NAME                               LABELS                                                    STATUS
gke-guestbook-32b71c9c-node-2sd6   kubernetes.io/hostname=gke-guestbook-32b71c9c-node-2sd6   Ready
gke-guestbook-32b71c9c-node-88j1   kubernetes.io/hostname=gke-guestbook-32b71c9c-node-88j1   Ready
gke-guestbook-32b71c9c-node-kgjq   kubernetes.io/hostname=gke-guestbook-32b71c9c-node-kgjq   Ready
service はまだない。(kubernetesのサービスのみ)
$ kubectl get services
NAME         LABELS                                    SELECTOR   IP(S)          PORT(S)
kubernetes   component=apiserver,provider=kubernetes   <none>     10.215.240.1   443/TCP
redis のコントローラーを作成
$ kubectl create -f redis-master-controller.json
replicationcontrollers/redis-master
pod の確認
$ kubectl get -o wide pods
NAME                 READY     STATUS    RESTARTS   AGE       NODE
redis-master-x8dsk   1/1       Running   0          2m        gke-guestbook-32b71c9c-node-2sd6
redis のサービス作成
$ kubectl create -f redis-master-service.json
services/redis-master
サービス確認
$ kubectl get service -l name=redis-master
NAME           LABELS              SELECTOR            IP(S)            PORT(S)
redis-master   name=redis-master   name=redis-master   10.215.243.107   6379/TCP
コントローラー作成
$ kubectl create -f redis-worker-controller.json
replicationcontrollers/redis-slave
サービス作成
$ kubectl create -f redis-worker-service.json
services/redis-slave
frontend のコントローラー作成
$ kubectl create -f frontend-controller.json
replicationcontrollers/frontend
サービス作成
$ kubectl create -f frontend-service.json
services/frontend
サービス確認
$ kubectl get services
NAME           LABELS                                    SELECTOR            IP(S)            PORT(S)
frontend       name=frontend                             name=frontend       10.215.253.56    80/TCP
kubernetes     component=apiserver,provider=kubernetes   <none>              10.215.240.1     443/TCP
redis-master   name=redis-master                         name=redis-master   10.215.243.107   6379/TCP
redis-slave    name=redis-slave                          name=redis-slave    10.215.248.252   6379/TCP
ロードバランサーIPアドレス確認
$ kubectl describe services frontend | grep "LoadBalancer Ingress"
LoadBalancer Ingress:	130.211.249.217
サービスを確認してもロードバランサーIPアドレスが表示される
$ kubectl get services
NAME           LABELS                                    SELECTOR            IP(S)             PORT(S)
frontend       name=frontend                             name=frontend       10.215.253.56     80/TCP
                                                                             130.211.249.217
kubernetes     component=apiserver,provider=kubernetes                 10.215.240.1      443/TCP
redis-master   name=redis-master                         name=redis-master   10.215.243.107    6379/TCP
redis-slave    name=redis-slave                          name=redis-slave    10.215.248.252    6379/TCP


ブラウザでアクセス
http://130.211.249.217
f:id:mix-juice001:20150823085245p:plain

Kubernetes のweb ui にアクセスしてみる

Kubernetes User Interface

ID/PWが必要なので確認する。
f:id:mix-juice001:20150823090521p:plain

$ gcloud beta container clusters list --zone asia-east1-b
NAME       ZONE          MASTER_VERSION  MASTER_IP        MACHINE_TYPE   STATUS
guestbook  asia-east1-b  1.0.3           130.211.246.179  n1-standard-1  RUNNING
$ 
$ gcloud beta container clusters describe guestbook
clusterIpv4Cidr: 10.212.0.0/14
createTime: '2015-08-21T19:59:51+00:00'
currentMasterVersion: 1.0.3
currentNodeVersion: 1.0.3
endpoint: 130.211.246.179
initialClusterVersion: 1.0.3
initialNodeCount: 3
instanceGroupUrls:
- https://www.googleapis.com/replicapool/v1beta2/projects/kube-1043/zones/asia-east1-b/instanceGroupManagers/gke-guestbook-32b71c9c-group
loggingService: logging.googleapis.com
masterAuth:
  clientCertificate: LS0t…S0tLQo=
  clientKey: LS0tS…S0tLQo=
  clusterCaCertificate: LS0t…LS0K
  password: 'password'
  username: 'username'
monitoringService: monitoring.googleapis.com
name: guestbook
network: default
nodeConfig:
  diskSizeGb: 100
  machineType: n1-standard-1
  oauthScopes:
  - https://www.googleapis.com/auth/compute
  - https://www.googleapis.com/auth/devstorage.read_only
  - https://www.googleapis.com/auth/logging.write
  - https://www.googleapis.com/auth/monitoring
nodeIpv4CidrSize: 24
selfLink: https://container.googleapis.com/v1/projects/162560360030/zones/asia-east1-b/clusters/guestbook
servicesIpv4Cidr: 10.215.240.0/20
status: RUNNING
zone: asia-east1-b

https://130.211.246.179/ui
にアクセスすると
https://130.211.246.179/api/v1/proxy/namespaces/kube-system/services/kube-ui/#/dashboard/
にリダイレクトされて
f:id:mix-juice001:20150822071904p:plain