kubernetes – minikube – 如何使用curl通过pod ip访问pod
我使用minikube创建本地kubernetes集群.
我通过webapp-rc.yaml文件创建ReplicationController. apiVersion: v1 kind: ReplicationController metadata: name: webapp spec: replicas: 2 template: metadata: name: webapp labels: app: webapp spec: containers: - name: webapp image: tomcat ports: - containerPort: 8080 并且,我将pods的ip打印到stdout: kubectl get pods -l app = webapp -o yaml | grep podIP podIP: 172.17.0.18 podIP: 172.17.0.1 而且,我想使用curl访问pod 卷曲172.17.0.18:8080 但是,stdout给了我:curl:(52)来自服务器的空回复 我知道我可以通过服务在pod中的docker容器中访问我的应用程序. 我在一本书中找到了这段代码.但本书没有给出执行此代码的上下文. 使用minikube,如何使用主机上的curl通过pod ip访问pod? 更新1 我找到了一种使用kubectl代理的方法: ? ~ kubectl proxy Starting to serve on 127.0.0.1:8001 然后我可以像curl一样通过curl访问pod: curl http:// localhost:8001 / api / v1 / namespaces / default / pods / webapp-jkdwz / proxy / webapp-jkdwz可以通过命令kubectl get pods -l app = webapp找到 更新2 > minikube ssh – 登录minikube VM 解决方法
首先,tomcat图像暴露端口8080不是80,所以正确的YAML将是:
apiVersion: v1 kind: ReplicationController metadata: name: webapp spec: replicas: 2 template: metadata: name: webapp labels: app: webapp spec: containers: - name: webapp image: tomcat ports: - containerPort: 8080 minikube在虚拟机内执行,因此curl 172.17.0.18:8080只能在该虚拟机内部运行. 您始终可以创建服务以公开您的应用: kubectl expose rc webapp --type=NodePort 并使用以下命令获取URL: minikube service webapp --url 如果需要查询特定的pod,请使用port forwarding: kubectl port-forward <POD NAME> 8080 或者只是从那里进入minikube的虚拟机和查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |