Kubernetes Service Hatoba:ニフクラロードバランサー(L4)を接続する
クラスターにニフクラロードバランサー(L4)を接続する方法を説明します。
ステップ1:Deploymentの作成
アプリケーション用Deploymentのyaml作成
下記のような
deployment.yamlを作成します。下記の例は「Hello Kubernetes!」を返却するだけのシンプルなアプリケーションです。apiVersion: apps/v1 kind: Deployment metadata: name: hello spec: selector: matchLabels: run: hello replicas: 3 template: metadata: labels: run: hello spec: containers: - name: hello image: gcr.io/google-samples/node-hello:1.0 ports: - containerPort: 8080Deploymentのyamlの適用
作成した
deployment.yamlをクラスターに適用します。$ kubectl apply -f deployment.yaml確認
下記で適用したアプリケーションのPodの動作を確認します。
$ kubectl get pod
ステップ2:Serviceの作成
type: LoadBalancer Serviceのyaml作成
アプリケーションに対してロードバランサーを作成するために、下記のような
load-balancer.yamlを作成します。apiVersion: v1 kind: Service metadata: name: hellolb labels: run: hello spec: type: LoadBalancer ports: - port: 80 protocol: TCP targetPort: 8080 name: http nodePort: 30374 selector: run: helloServiceのyamlの適用
作成した
load-balancer.ymlを適用します。適用すると、設定内容に従ってロードバランサー(L4)が作成されます。ロードバランサー(L4)の作成に伴う料金はクラスターとは別に発生するのでご注意ください。$ kubectl apply -f load-balancer.yaml確認
下記で作成したロードバランサーの情報が確認できます。EXTERNAL-IPに表示されるIP(例ではx.x.x.x)がロードバランサーのIPです。
$ kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hellolb LoadBalancer 10.102.213.44 x.x.x.x 80:30374/TCP 5m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 1h
ステップ3:Serviceにアクセス
ステップ2で作成したロードバランサーのIPに接続すると、作成したアプリケーションからレスポンスが返却されます。
$ curl http://x.x.x.x Hello Kubernetes!


