問題
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 を追加
※localhost
や 127.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
→ タイムアウト
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。