1

如何在 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公开此服务?

环境:Windows 10,带有 Hyper-V 的 Docker

4

1 回答 1

0

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

您应该检查文档以通过这种方式直接公开节点中的端口:

kubectl expose deployment hello-nginx --type=NodePort

之后,您可以检查分配用于公开您的服务的端口,并且您应该能够访问它。

可以通过“--service-node-port-range portRange”属性配置 Kubernetes 使用此策略的端口范围,如您在此处看到的那样。默认情况下,它将使用 30000-32767 范围内的随机端口您可以从配置的范围中选择分配的端口,但我现在不确定您是否可以将该范围配置为使用特权端口。

如果您不能并且需要使用端口 80 公开您的应用程序,最简单的解决方案是使用 nginx 从端口 80 代理传递到 your-service-nodeport

于 2017-03-31T13:09:27.617 回答