获取在特定端口上运行的kubernetes服务

时间:2017-03-31 11:26:24

标签: service kubernetes minikube

如何在端口80上设置k8s服务:

尝试:

λ kubectl run hello-nginx --image=nginx --port=80
deployment "hello-nginx" created

λ kubectl expose deployment hello-nginx --type=LoadBalancer
service "hello-nginx" exposed

λ kubectl get services
NAME          CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
hello-nginx   10.0.0.142   <pending>     80:30674/TCP   12m
kubernetes    10.0.0.1     <none>        443/TCP        1h

λ minikube service hello-nginx --url
http://192.168.178.105:30674

是否可以在http://192.168.178.105:80公开此服务?

环境:Windowns 10,具有Hyper-V的Docker

1 个答案:

答案 0 :(得分:0)

您正在使用LoadBalancer策略,这是在使用云环境时建议的。

您应该检查this doc以直接以这种方式公开节点中的端口:

kubectl expose deployment hello-nginx --type=NodePort

之后,您可以检查分配的端口以公开您的服务,您应该可以访问它。

可以配置kubernetes使用此策略的端口范围,您可以使用&#34; - service-node-port-range portRange&#34;来查看here。属性附加伤害。默认情况下,它将使用范围为30000-32767的随机端口 您可以选择从配置范围分配的端口,但如果您可以配置该范围以使用特权端口,我现在还不确定。

如果您不能并且需要使用端口80公开您的应用,最简单的解决方案是使用nginx代理从端口80传递到您的服务节点端口