Kar*_*Kid 30 kubernetes minikube
在minikube中,如何使用nodeport公开服务?
例如,我使用以下命令启动kubernetes集群,并创建并公开如下所示的端口:
$ minikube start
$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
$ kubectl expose deployment hello-minikube --type=NodePort
$ curl $(minikube service hello-minikube --url)
CLIENT VALUES:
client_address=192.168.99.1
command=GET
real path=/ ....
Run Code Online (Sandbox Code Playgroud)
现在如何从主机访问公开的服务?我想minikube节点也需要配置为暴露这个端口.
aar*_*dle 68
我不确定你在问什么,因为看起来你已经知道了这个minikube service <SERVICE_NAME> --url命令会给你一个你可以访问服务的网址.要打开公开的服务,minikube service <SERVICE_NAME>可以使用以下命令:
$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
deployment "hello-minikube" created
$ kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube 10.0.0.102 <nodes> 8080/TCP 7s
kubernetes 10.0.0.1 <none> 443/TCP 13m
$ minikube service hello-minikube
Opening kubernetes service default/hello-minikube in default browser...
Run Code Online (Sandbox Code Playgroud)
此命令将在默认浏览器中打开指定的服务.这是minikube服务文档:https://github.com/kubernetes/minikube/blob/master/docs/minikube_service.md
还有一个--url选项可以打印服务的URL,这是在浏览器中打开的:
$ minikube service hello-minikube --url
http://192.168.99.100:31167
Run Code Online (Sandbox Code Playgroud)
iam*_*nat 15
minikube运行在类似的东西上192.168.99.100.因此,您应该能够在NodePort您公开服务时访问它.例如,比如你的NodePort是30080,那么你的服务将是可访问的192.168.99.100:30080.
要获取minikube ip,请运行该命令minikube ip.
2017年9月14日更新:
这是一个与minikube一起使用的小例子v0.16.0.
1)运行以下命令创建一个在8080上运行的nginx并NodePort svc转发给它:
$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
deployment "hello-minikube" created
$ kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed
Run Code Online (Sandbox Code Playgroud)
2)找到svc使用的nodeport:
$ kubectl get svc hello-minikube
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube 10.0.0.76 <nodes> 8080:30341/TCP 4m
Run Code Online (Sandbox Code Playgroud)
3)找到minikube ip:
$ minikube ip
192.168.99.100
Run Code Online (Sandbox Code Playgroud)
4)用卷曲说话:
$ curl 192.168.99.100:30341
CLIENT VALUES:
client_address=172.17.0.1
command=GET
real path=/
...
Run Code Online (Sandbox Code Playgroud)
Aru*_*ddy 14
由于 minikube 是通过nodeIP:nodePort而非 on公开访问localhost:nodePort,您可以通过使用kubectl的端口转发功能使其工作。例如,如果您正在运行 mongodb 服务:
kubectl port-forward svc/mongo 27017:27017
Run Code Online (Sandbox Code Playgroud)
这将在localhost:27017, FWIW上公开服务。此外,您可能想弄清楚如何在后台运行它。
我在 2022 年遇到了类似的问题。以下是我运行的命令:
kubectl create deployment deploymentName --image=dockerHubUsername/imageTag:imageVersionkubectl expose deployment deploymentName --type=LoadBalancer --port=8080minikube tunnelkubectl get services deploymentName这提供了访问应用程序所需的外部 IP 地址。我通过以下方式访问该应用程序127.0.0.1:8080| 归档时间: |
|
| 查看次数: |
46611 次 |
| 最近记录: |