質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2373閲覧

Docker Desktop for Windows + Istio の環境で、localhostの80番ポートにバインドしたい

soak

総合スコア21

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/04/06 11:57

問題

Docker Desktop for Windows の Kubernetes を使用して、ローカルに Istio の環境を作成したいと思っています。
公式サイトを参考に、以下の手順で Istio と、サンプルアプリのインストールを行いました。
ポート指定でアクセスする事は出来たのですが、ポート指定なし(80 番ポート)にバインドできません。
ubuntu のサーバーでは同様の手順でポート指定なしのアクセスが出来たのですが、何かお気づきの方ご教授頂けますと幸いです。

環境

  • Windows 10
  • Surface Book(初代)
  • Docker for Desktop
  • istio-1.5.1

再現手順

istio にはパスを通してあります

0. kubernetes をリセット

環境リセットのため、Docker Desktop for Windows の Kubernetes をリセット

1. istio を k8s にインストール

istioctl manifest apply -y

2. サンプルアプリをデプロイ

kubectl apply -f .\samples\bookinfo\platform\kube\bookinfo.yaml

3. ネットワークをデプロイ

kubectl apply -f .\samples\bookinfo\networking\bookinfo-gateway.yaml

4. NodePort への変更

ロードバランサーは無いので、 istio の manifest から以下を抜き出して修正

  • nodeport.yaml

nodeport.yaml

1apiVersion: v1 2kind: Service 3metadata: 4 annotations: null 5 labels: 6 app: istio-ingressgateway 7 istio: ingressgateway 8 release: istio 9 name: istio-ingressgateway 10 namespace: istio-system 11spec: 12 ports: 13 - name: status-port 14 port: 15020 15 targetPort: 15020 16 - name: http2 17 port: 80 18 targetPort: 80 19 - name: https 20 port: 443 21 - name: kiali 22 port: 15029 23 targetPort: 15029 24 - name: prometheus 25 port: 15030 26 targetPort: 15030 27 - name: grafana 28 port: 15031 29 targetPort: 15031 30 - name: tracing 31 port: 15032 32 targetPort: 15032 33 - name: tls 34 port: 15443 35 targetPort: 15443 36 - name: tcp 37 port: 31400 38 selector: 39 app: istio-ingressgateway 40 istio: ingressgateway 41 # type: LoadBalancer 42 type: NodePort 43 externalIPs: 44 - 192.168.0.107

externalIPs にホストマシンの IP を追加

localhost127.0.0.1 にして、環境依存が無いようにしたいのですが、これらを設定するとエラーが出る…

kubectl apply -f nodeport.yaml

5. サービスを確認

kubectl get svc istio-ingressgateway -n istio-system

↓結果

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway NodePort 10.101.194.83 192.168.0.107 15020:30412/TCP,80:31663/TCP,443:30102/TCP,15029:30012/TCP,15030:31754/TCP,15031:31862/TCP,15032:31659/TCP,15443:31169/TCP,31400:31016/TCP 24m

80 番ポートは 31663 にバインドされている事を確認 (80:31663)

6. 接続確認

curl http://127.0.0.1:31663/productpage

→ OK

curl http://127.0.0.1/productpage

→ タイムアウト

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

サーバーと同じ手順でローカルを構築していたのですが、ローカルでは 「4. NodePort への変更」 が不要でした…
LoadBalancerのままで、しばらくするとEXTERNAL-IPにlocalhostがバインドされました。

投稿2020/04/07 00:48

soak

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問