Skip to content

ロードバランサを立てる

goal

コンテナを外部に公開するためにロードバランサを使用して公開してみましょう。

GKEはGCPの各種サービスの連携がサポートされています。
例えばロードバランサはカジュアルにマネージドロードバランサのCloud Load Balancerが使用できます。

ロードバランサの起動

実際にロードバランサを作成してリクエストを受け付けてみましょう。
先程作成した"handson"というnginxコンテナへトラフィックを流してみましょう。

kubectl expose コマンドでロードバランサを作成することができます。
以下の通りロードバランサ経由でコンテナにトラフィックを流してみましょう。

$ kubectl expose deploy handson --port=80 --target-port=80 --type=LoadBalancer
service/handson exposed

少し待つと、 service/handson の "EXTERNAL-IP" が付与されます。

$ kubectl get all
NAME                           READY     STATUS    RESTARTS   AGE
pod/handson-86f796b8b7-m68sr   1/1       Running   0          4m
NAME                 TYPE           CLUSTER-IP   EXTERNAL-IP    PORT(S)        AGE
service/handson      LoadBalancer   10.3.243.4   34.85.67.170   80:32621/TCP   4m
service/kubernetes   ClusterIP      10.3.240.1   <none>         443/TCP        2h
NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/handson   1         1         1            1           4m
NAME                                 DESIRED   CURRENT   READY     AGE
replicaset.apps/handson-86f796b8b7   1         1         1         4m

表示されたIPへアクセスして、nginxに接続できていることを確認しましょう

GUIで動作確認

GCPコンソールからKubernetes Objects の詳細を閲覧することができます。
今回動かした "handson" という名前をつけたObjectsがどのように動いているのかGCPコンソール上で見てみましょう。

コンテナの状態の確認
( StackDriver を有効化していないとCPU/Memoryなどのメトリクスは取得できません) gke workload

ロードバランサの確認
gke service

ログの閲覧 gke slect logging

gke logging