amazon-web-services - Kubernetes LoadBalancer 服务
问题描述
试图自学如何使用 Kubernetes,但遇到了一些问题。
我能够建立一个集群,部署 nginx 映像,然后使用 NodePort 类型的服务访问 nginx(一旦我将端口添加到节点的安全组入站规则中)。
我的下一步是尝试使用 LoadBalancer 类型的服务来尝试访问 nginx。
我建立了一个新集群并部署了 nginx 映像。
kubectl \
create deployment my-nginx-deployment \
--image=nginx
然后我为 LoadBalancer 设置服务
kubectl expose deployment my-nginx-deployment --type=LoadBalancer --port=80 --target-port=8080 --name=nginxpubic
完成设置后,我尝试使用 LoadBalancer Ingress(我从描述 LoadBalancer 服务中找到)访问 nginx。我收到了“此页面无法正常工作”错误。
不太确定我哪里出错了。
kubectl get svc 的结果
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 100.64.0.1 <none> 443/TCP 7h
nginxpubic LoadBalancer 100.71.37.139 a5396ba70d45d11e88f290658e70719d-1485253166.us-west-2.elb.amazonaws.com 80:31402/TCP 7h
解决方案
从 nginx dockerhub 页面,我看到容器正在使用端口 80。
https://hub.docker.com/_/nginx/
它应该是这样的:
kubectl expose deployment my-nginx-deployment --type=LoadBalancer --port=80 --target-port=80 --name=nginxpubic
此外,请确保服务类型负载均衡器在您的环境中可用。
minikube 安装的已知问题
Features that require a Cloud Provider will not work in Minikube. These include:
LoadBalancers
Features that require multiple nodes. These include:
Advanced scheduling policies