楽しんで学習するITエンジニアの備忘録ブログ

~日常生活の中にも楽しみを見出したい~

【第5弾】Kubernetes学習【L7レイヤロードバランサーのIngressを理解せよ】

Udemy「米シリコンバレーDevOps監修!超Kubernetes完全入門(2020)」

 

の学習にようやくありつけた。

 

本日は、レイヤ7レベルでロードバランシングできる「Ingress」についての学習。

LoadBalancerタイプの場合、レイヤ4のロードバランサーであるため、

TCP/IPレベルでしか動作することができない。

レイヤ7レベルで動かしたいと思ったその時に役に立つ機能が、

Ingress」様のようです。

 

■1.Ingressの作成

Ingressをマニュフェストから作成

 kubectl apply -f ingress.yaml 

 

ingress.yamlの概要は下記のとおりです。

詳細は、Udemy「米シリコンバレーDevOps監修!超Kubernetes完全入門(2020)」

を受講すると、物凄く詳しく知ることができると思います。おすすめです。

なお、ingressを作成した後は「kubectl get ingress」で確認する。

 

metadata:
  name: <pod name> →PodAとする。
  //省略
spec:
  //省略
  - path: /book →関連付けるパス
    backend:
      serviceName: <NodePort Service> →PodA_NodePortとする。

        servicePort: <port Number of NodePort Service> →8080とする。

 

※podの作成

 kubectl run --image <image name> --port <port Number> --restart Never <name>

※podの詳細

 kubectl describe pod <pod name>

※NodePort Serviceの作成

 kubectl expose pod PodA --type NodePort --port <port Number> --name PodA_NodePort

Ingressの削除

 kubectl delete --all ingress 

 設定誤りを含んだingressを作成してしまった時に、ingressを削除できる!

 ただし、個別に削除する方法は自分は分かりません。

 

■2.Ingressを作成した後の動作確認

    Pod、NodePort Service、Ingressを作成した後の動作確認手順は下記。

 下記の(1)から(3)を実行及び成功を確認することで、

 クラスター内外からのアクセスを問題なく実現できることを意味する。

 (1) クラスター内の他のPod(PodB)から、PodAにアクセス

 (2) クラスター内の他のPod(PodB)から、PodA_NodePort(Service)にアクセス

 (3) クラスター外からingressを経由して、PodA_NodePort(Service)にアクセス

 

■次回

 

 REPLICAS(冗長化と自動修正)の概要を掴みたい。

 

以上です。