Oracle Container Engine for KubernetesでLoadBlancerタイプのServiceを使う
このエントリーはOracle Cloud アドベントカレンダーその2の21日目です。
今回は、OKE(Oracle Container Engine for Kubernetes)で作ったKubernetesクラスターでLoadBalancerタイプのServiceを使う手順を紹介します。
0. 前提条件
1. 手順
ほとんどのマネージドKubernetesサービスは、自身のクラウド環境で提供されているロードバランサーのサービスと連携してServiceオブジェクトを作成する機能を提供しており、OKEも同様です。
1.1. まずはデフォルト設定で
まずは、my-nginx.yamlというファイル名で以下のような内容のファイルを作成します。
apiVersion: v1 kind: Service metadata: name: my-nginx-svc labels: app: nginx spec: type: LoadBalancer ports: - port: 80 selector: app: nginx --- apiVersion: apps/v1 kind: Deployment metadata: name: my-nginx labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
これはなんの変哲もない、nginxのコンテナを公開するだけのmanifestファイルです。
これをOKEクラスターに適用してみます。
kubectl apply -f my-nginx.yaml
10-20秒程度おいてから以下のコマンドを実行し、Serviceオブジェクトの内容を確認してみます。
k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15m my-nginx-svc LoadBalancer 10.96.122.251 129.213.78.183 80:32250/TCP 30s
my-nginx-svcというServiceが129.213.78.183というIPアドレスで公開されていることがわかります(IPアドレスは環境や実行の度に変わります)。
ブラウザでこのアドレスhttp://129.213.78.183/
アクセスすると、OKEクラスターで動いているnginxからの応答を得ることができます。
Oracle Cloud Infrastructureのコンソールでロードバランサーの方を確認してみると、ランダムに生成されたと思しき名前でロードバランサーが作られていることがわかります。
IPアドレスは先程のアドレス一致します。また、シェイプは[100]Mbpsになっていると思います。
Oracle Cloud Infrastructureでは400[Mbps]と8000[Mbps]も提供しています。これらを使いたい場合には、Serviceオブジェクトの記述にannotationを追加します。
- 400[Mbps]
apiVersion: v1 kind: Service metadata: name: my-nginx-svc labels: app: nginx annotations: <--ココ service.beta.kubernetes.io/oci-load-balancer-shape: 400Mbps <--ココ ...(以下略)...
- 8000[Mbps]
apiVersion: v1 kind: Service metadata: name: my-nginx-svc labels: app: nginx annotations: <--ココ service.beta.kubernetes.io/oci-load-balancer-shape: 8000Mbps <--ココ ...(以下略)...
例えば400[Mbpx]でやってみます。ファイルを変更後、以下のコマンドを実行します。
kubectl delete -f my-nginx.yaml
kubectl create -f my-nginx.yaml
今度は400[Mbps]のロードバランサーができました!(ロードバランサーの作り直しになるので、IPアドレスも変わっています)
本エントリーでご紹介する内容は以上です。
シェイプを変更する以外にもSSLを終端するように設定したりすることも可能です。詳しくは公式のドキュメントを参照してください。