Skip to content
This repository has been archived by the owner on May 27, 2024. It is now read-only.

step13_13.4,13.5に関しまして #8

Open
hidetarou2013 opened this issue Jul 26, 2022 · 4 comments
Open

step13_13.4,13.5に関しまして #8

hidetarou2013 opened this issue Jul 26, 2022 · 4 comments

Comments

@hidetarou2013
Copy link

hidetarou2013 commented Jul 26, 2022

テキスト通りに構築はできたのですが、疎通確認でうまくいっておりません。原因わかりますでしょうか。
お忙しいところ恐れ入ります。

実施環境

Windows 10 ProfessionalEdition
32GB Memory
VirtualBox + Vagrant

実施状況

vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$ kubectl get node -o wide
NAME     STATUS   ROLES    AGE   VERSION    INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
master   Ready    master   30d   v1.14.10   172.16.20.11   <none>        Ubuntu 18.04.6 LTS   4.15.0-187-generic   docker://18.6.1
node1    Ready    <none>   30d   v1.14.10   172.16.20.12   <none>        Ubuntu 18.04.6 LTS   4.15.0-187-generic   docker://18.6.1
node2    Ready    <none>   30d   v1.14.10   172.16.20.13   <none>        Ubuntu 18.04.6 LTS   4.15.0-187-generic   docker://18.6.1
vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$ kubectl get ing -o wide
NAME            HOSTS                           ADDRESS   PORTS     AGE
hello-ingress   abc.sample.com,xyz.sample.com             80, 443   25m
vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$ kubectl get service -o wide
NAME             TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE   SELECTOR
helloworld-svc   NodePort    10.32.0.80    <none>        8080:31445/TCP   26m   app=hello-world
java-svc         ClusterIP   10.32.0.29    <none>        9080/TCP         26m   app=liberty
kubernetes       ClusterIP   10.32.0.1     <none>        443/TCP          30d   <none>
nginx-svc        ClusterIP   10.32.0.240   <none>        9080/TCP         26m   app=nginx
vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$ kubectl get deploy -o wide
NAME                    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS              IMAGES                                           SELECTOR
helloworld-deployment   1/1     1            1           26m   hello-world-container   strm/helloworld-http                             app=hello-world
java-deployment         1/1     1            1           26m   open-liberty            openliberty/open-liberty:javaee8-ubi-min-amd64   app=liberty
nginx-deployment        3/3     3            3           26m   nginx                   nginx                                            app=nginx
vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$ kubectl get rs -o wide
NAME                             DESIRED   CURRENT   READY   AGE   CONTAINERS              IMAGES                                           SELECTOR
helloworld-deployment-88fd567c   1         1         1       26m   hello-world-container   strm/helloworld-http                             app=hello-world,pod-template-hash=88fd567c
java-deployment-58c597d687       1         1         1       26m   open-liberty            openliberty/open-liberty:javaee8-ubi-min-amd64   app=liberty,pod-template-hash=58c597d687
nginx-deployment-56db997f77      3         3         3       26m   nginx                   nginx                                            app=nginx,pod-template-hash=56db997f77
vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$ kubectl get pod -o wide
NAME                                   READY   STATUS    RESTARTS   AGE   IP            NODE    NOMINATED NODE   READINESS GATES
helloworld-deployment-88fd567c-c7b8n   1/1     Running   0          26m   10.244.1.21   node1   <none>           <none>
java-deployment-58c597d687-8gczp       1/1     Running   0          26m   10.244.1.23   node1   <none>           <none>
nginx-deployment-56db997f77-88x7p      1/1     Running   0          26m   10.244.1.22   node1   <none>           <none>
nginx-deployment-56db997f77-944zz      1/1     Running   0          26m   10.244.2.13   node2   <none>           <none>
nginx-deployment-56db997f77-rpd4l      1/1     Running   0          26m   10.244.2.14   node2   <none>           <none>
vagrant@master:~/work/gitbucket/hide1227/codes_for_lessons/step13/url-mapping$

Windows10 側で Chromeブラウザでの疎通確認は以下の状況です。

http://abc.sample.com/
 ⇒ 疎通せず。
http://abc.sample.com:31445/
 ⇒ 疎通します。
https://abc.sample.com/
 ⇒ 疎通せず。

http://abc.sample.com:31445/apl2/
 ⇒ 疎通せず。
http://xyz.sample.com:31445/
 ⇒ 疎通するが、helloworld-deployment が出てきてしまう。
http://xyz.sample.com/
 ⇒ 疎通せず。

@takara9
Copy link
Owner

takara9 commented Jul 26, 2022

Vagrantの環境では、80ポートで受けてNodePortに転送するロードバランサーが入っていないのが原因です。

@hidetarou2013
Copy link
Author

ご指摘ありがとうございます。まだIngresのことがよくわかっていませんが、IngresがLBの役割を兼ねているというわけではないのですね。手立てとしては、新たにLBのリソースを追加するしかないと解釈しましたが認識に齟齬はないでしょうか。①Ingresの設定等の追加対応で行けるのか、②ServiceのLoadBlancerタイプを追加して挟み込んでいけるのか考察していたのですが、行き詰ってしまい、だとすると代替案③として、masterノードでdocker使えるならnginxのコンテナ立ててLBにしちゃえばいいのかなと思いました。方向性ずれていますでしょうか。

@hidetarou2013
Copy link
Author

k8s_service_type_NodePort_1

@takara9
Copy link
Owner

takara9 commented Jul 27, 2022

パブリッククラウドの環境では、Ingressコントローラー(ポッド)とサービスがデプロイされており、サービスのTypeがLoadBalancerとなっています。そのため、Ingress のAPIを使って、ロードバランサーとイングレスコントローラーが連動して、動作します。
しかし、Vagrant や MinikubeなどのアップストリームのKubernetesでは、ロードバランサーが存在しません。それは、K8sプロジェクトの範囲外となっているからです。また、ロードバランサーを置いたとしても、繋がっていないので、手動設定が必要になります。

この絵では、node1とnode2のフロント、すなわち、ユーザートラフィック入ってくる場所、Windows10 192.168.1.yy(かな?)にLBを置いて、LBの振分先サーバーにnode1:NodePort番号とnode2:NodePort番号を、手作業で設定することになります。ポート番号の変換では、Nodeport の30000台ポート番号は、ロードバランサーで 80や443に置き換えることにします。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants