Docker for mac で kubernetes を使用しています。
docker-for-desktop に helm で stable/nginx-ingress をインストールしたところ、ingress-controller の EXTERNAL-IP には localhost が設定されました。
$ helm install stable/nginx-ingress $ kubectl get all NAME READY STATUS RESTARTS AGE pod/local-ingress-nginx-ingress-controller-94bfd574c-lvxpt 1/1 Running 0 20h pod/local-ingress-nginx-ingress-default-backend-7b46ff59ff-gq4lt 1/1 Running 0 20h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d service/local-ingress-nginx-ingress-controller LoadBalancer 10.97.171.154 localhost 80:31708/TCP,443:30602/TCP 20h service/local-ingress-nginx-ingress-default-backend ClusterIP 10.107.206.113 <none> 80/TCP 20h NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deployment.apps/local-ingress-nginx-ingress-controller 1 1 1 1 20h deployment.apps/local-ingress-nginx-ingress-default-backend 1 1 1 1 20h NAME DESIRED CURRENT READY AGE replicaset.apps/local-ingress-nginx-ingress-controller-94bfd574c 1 1 1 20h replicaset.apps/local-ingress-nginx-ingress-default-backend-7b46ff59ff 1 1 1 20h
次に、実際に Ingress リソースを作成しましたが、作成した Ingress にはいつまでたってもアドレスが付与されません。
$ cat ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-app-name-ingress annotations: kubernetes.io/ingress.class: nginx spec: rules: - http: paths: - backend: serviceName: my-app-name-svc servicePort: 8080 $ kubectl apply -f ingress.yaml $ kubectl get ingress NAME HOSTS ADDRESS PORTS AGE my-app-name-ingress * 80 19h
http://localhost へアクセスすると、Service へアクセスしているのと同様にページが表示されるため、動作はしているように思えます。
気になっていることとしては、以下の二点です。
①localhost 上で作成した Ingress にIPアドレスが振られないのは正しいことなのでしょうか?
②(正しい場合)複数の Ingress を作成すると、どのように動作するのでしょうか?
追記(②について)
検証したところ、作られた順に評価されているような動作が見られました。
あなたの回答
tips
プレビュー