如何在端口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
答案 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传递到您的服务节点端口