首页 > 解决方案 > 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

标签: amazon-web-servicesnginxamazon-ec2kubernetes

解决方案


从 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

推荐阅读