まずは、こちらを有効にします。
↓結果
3ノードのインスタンスをまず作る
※今回はaura
という名前でクラスタを作ってます。ところどころログ等に出るので、そちらは置き換えてください
$gcloud container clusters create <クラスタ名> --zone us-west1-a --machine-type=f1-micro --num-nodes=3 --disk-size=10
ん、怒られたので、
ERROR: (gcloud.container.clusters.create) ResponseError: code=403
...
Updates are available for some Cloud SDK components. To install them,
please run:
$ gcloud components update
アップデートしてみる (結構時間かかる
$ gcloud components update
もう一回、createしてみるとエラーがでた
ERROR: (gcloud.container.clusters.create) ResponseError: code=409, message=Already exists: projects/linesnova/zones/us-west1-a/clusters/aura.
が、クラスタがーできているか確認すると、できているようだ
$ gcloud container clusters list
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
aura us-west1-a 1.11.8-gke.6 35.233.190.180 f1-micro 1.11.8-gke.6 3 RUNNING
コスト対策で、node-pool(インスタンスグループ)を作り、ノードを1とします
$ gcloud container node-pools create <node-pool名> --cluster aura --zone us-west1-a --machine-type=f1-micro --num-nodes=1 --disk-size=10
当初に作ったノードはdefault-pool
という名称らしいので、それを消します
gcloud container node-pools delete default-pool --zone us-west1-a --cluster <クラスタ名>
gcloud container clusters listをするとこんな感じ
$ gcloud container clusters list
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
aura us-west1-a 1.11.8-gke.6 35.233.190.180 f1-micro 1.11.8-gke.6 1 RUNNING
よし、nodeが一つになった
kubectlコマンドが使えるようにするため、以下のコマンドを実行します。
$ gcloud container clusters get-credentials <クラスタ名> --zone us-west1-a
Fetching cluster endpoint and auth data.
kubeconfig entry generated for aura.
こちらのコマンドで存在確認できます。
$~/.kube/config
xxxxx
起動したPodを試してみる
Podとは、起動したインスタンス内のdockerみたいなコンテナらしい
どのノードでどのpodを動かすかは自動でやってくれるらしい
どのぐらいPod数があるか調べてみる
$ kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system event-exporter-v0.2.3-85644fcdf-7p88w 2/2 Running 0 16m
kube-system fluentd-gcp-scaler-8b674f786-whcc6 1/1 Running 0 16m
kube-system fluentd-gcp-v3.2.0-gd5px 2/2 Running 0 22m
kube-system heapster-v1.6.0-beta.1-64986d8cdf-hklpm 0/3 Pending 0 16m
kube-system kube-dns-76dbb796c5-5ckjr 1/4 ContainerCreating 0 16m
kube-system kube-dns-autoscaler-67c97c87fb-tfjlx 1/1 Running 0 16m
kube-system kube-proxy-gke-aura-blue-58df44f8-ssbm 1/1 Running 0 21m
kube-system l7-default-backend-7ff48cffd7-9pd8t 1/1 Running 1 16m
kube-system metrics-server-v0.2.1-fd596d746-gd2v7 2/2 Running 0 16m
kube-system prometheus-to-sd-kpxwm 1/1 Running 0 22m
結構あるなぁ 10Pod
そしてpendingがある場合は立ち上げられてない状態
原因を含め、確認コメント
$ kubectl describe pod --namespace kube-system heapster-v1.6.0-beta.1-64986d8cdf-hklpm
・
・
・
e(s) were out of disk space, 3 node(s) were unschedulable.
Warning FailedScheduling 20m (x3 over 20m) default-scheduler 0/3 nodes are available: 1 Insufficient memory, 2 node(s) were not ready, 2 node(s) were out of disk space, 2 node(s) were unschedulable.
Warning FailedScheduling 20m default-scheduler 0/3 nodes are available: 2 node(s) were unschedulable, 3 node(s) were not ready, 3 node(s) were out of disk space.
Warning FailedScheduling 20m (x4 over 20m) default-scheduler 0/2 nodes are available: 1 node(s) were unschedulable, 2 node(s) were not ready, 2 node(s) were out of disk space.
Warning FailedScheduling 6m (x13 over 17m) default-scheduler 0/1 nodes are available: 1 node(s) were not ready.
Warning FailedScheduling 1m (x27 over 17m) default-scheduler 0/1 nodes are available: 1 node(s) were not ready, 1 node(s) were out of disk space.
容量が足りないだと...
$ gcloud container node-pools create <node-pool名> --cluster aura --zone us-west1-a --machine-type=f1-micro --num-nodes=1 --disk-size=20
もう一度試してみるが足りない、いや、discではなくメモリが足りないぽい
default-scheduler 0/2 nodes are available: 1 Insufficient memory, 1 node(s) were not ready, 1 node(s) were out of disk space.
結果、preemptibleのオプションを指定、
preemptibleは、
普通のインスタンスと変わりがないが、 必ず24時間以内にシャットダウンされる。
そのため、通常のインスタンスの価格の数分の一の価格で提供されています。(最大70%オフ)
googleの余剰サーバを使った仕組み
$ gcloud container node-pools create <node-pool名> --cluster <クラスタ名> --zone us-west1-a --machine-type=f1-micro --num-nodes=1 --disk-size=10 --preemptible
もう一度見てみる
$ kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system event-exporter-v0.2.3-85644fcdf-xckq5 2/2 Running 0 22m
kube-system fluentd-gcp-scaler-8b674f786-ppzt6 1/1 Running 0 22m
kube-system fluentd-gcp-v3.2.0-2qqvw 2/2 Running 0 4m
kube-system fluentd-gcp-v3.2.0-t2rrn 2/2 Running 0 19m
kube-system heapster-v1.6.0-beta.1-64986d8cdf-hw562 3/3 Running 0 22m
kube-system kube-dns-76dbb796c5-dnqx7 0/4 Pending 0 4m
kube-system kube-dns-76dbb796c5-v5zcq 4/4 Running 0 22m
kube-system kube-dns-autoscaler-67c97c87fb-mr2z8 1/1 Running 0 22m
kube-system kube-proxy-gke-aura-blue-5bef3904-gf47 1/1 Running 0 3m
kube-system kube-proxy-gke-aura-yellow-e8e6060d-45kz 1/1 Running 0 19m
kube-system l7-default-backend-7ff48cffd7-nfst9 1/1 Running 1 22m
kube-system metrics-server-v0.2.1-fd596d746-jwq5m 0/2 ContainerCreating 0 22m
kube-system prometheus-to-sd-98pff 1/1 Running 0 4m
kube-system prometheus-to-sd-qr95w 1/1 Running 0 19m
よしちゃんと上がったぽい kube-dns-76dbb796c5-dnqx7
はゾンビかな?今はあまり気にしないでおこう
この続きはまた別の記事で掲載します