kubernetes LoadBalancer服务

时间:2018-10-20 12:01:34

标签: amazon-web-services nginx amazon-ec2 kubernetes

尝试教自己如何使用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的结果获取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

1 个答案:

答案 0 :(得分:2)

从nginx dockerhub页面上,我看到该容器正在使用端口80。

http://treyhunner.com/2018/03/tuple-unpacking-improves-python-code-readability/

应该是这样的:

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