0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Container Engine for Kubernetes (OKE)でLoadBalancerサービスの設定方法を確認する

Last updated at Posted at 2021-09-17

はじめに

KubernetesのLoadBalancerサービスは、クラウドプロバイダーのロードバランサーサービスを利用するのが一般的です。
Kubernetesのマニュアルにはクラウドプロバイダーごとの注意事項などが書かれているのですが、Oracle Cloud Infrastructure(OCI)の項目がありません。

OCIのマニュアルには書かれています。

そこで、今回はOCIのKubernetesサービス(OKE)でLoadBalancerサービスを確認します。

Podの作成

まずはLoadBalancerのエンドポイントになるPodを作成します。
OCIのマニュアルにはマニフェストのサンプルがありますが、LoadBalancerがちゃんと作られることを確認するだけですので、コマンドで簡単に作りたいと思います。

$ kubectl run nginx --image=nginx
pod/nginx created
$ kubectl get pod -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP           NODE          NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          28m   10.244.1.5   10.0.10.181   <none>           <none>

LoadBalancerの作成

これもコマンドで簡単に作りたいと思います。

$ kubectl expose pod nginx --port=80 --target-port=80 --name=nginx-lb --type=LoadBalancer
service/nginx-lb exposed
$ kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP        32h
nginx-lb     LoadBalancer   10.96.230.198   <pending>     80:30537/TCP   13s

作った直後はEXTERNAL-IPがpendingになっています。1, 2分経つとEXTERNAL-IPが割り振られています。

$ kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
kubernetes   ClusterIP      10.96.0.1       <none>           443/TCP        32h
nginx-lb     LoadBalancer   10.96.230.198   129.146.209.97   80:30537/TCP   54s

LoadBalancerのエンドポイントにPodのIPアドレス10.244.1.5が設定されていることを確認します。

$ kubectl describe svc nginx-lb
Name:                     nginx-lb
Namespace:                default
Labels:                   run=nginx
Annotations:              <none>
Selector:                 run=nginx
Type:                     LoadBalancer
IP:                       10.96.230.198
LoadBalancer Ingress:     129.146.209.97
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30537/TCP
Endpoints:                10.244.1.5:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  EnsuringLoadBalancer  73s   service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   29s   service-controller  Ensured load balancer

OCIのコンソールでも確認します。
LB.PNG

ロードバランサがデプロイされていますね。

疎通確認

LoadBalancerのIPアドレスにアクセスして疎通を確認します。

$ curl 129.146.209.97 |grep nginx!
<title>Welcome to nginx!</title>
<h1>Welcome to nginx!</h1>

削除

削除の動作も確認します。

$ kubectl delete svc nginx-lb
service "nginx-lb" deleted

OCIのコンソールで確認します。

LB-del.PNG

削除済みのアイテムが残らなかったので信ぴょう性が怪しい画像ですが、 kubectl deleteコマンドでOCIのロードバランサリソースも削除されました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?