加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

kubernetes – minikube – 如何使用curl通过pod ip访问pod

发布时间:2020-12-13 23:54:48 所属栏目:Linux 来源:网络整理
导读:我使用minikube创建本地kubernetes集群. 我通过webapp-rc.yaml文件创建ReplicationController. apiVersion: v1kind: ReplicationControllermetadata: name: webappspec: replicas: 2 template: metadata: name: webapp labels: app: webapp spec: containers
我使用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
>然后,我可以使用curl< podIP>:< podPort>,因为我的情况是curl 172.17.0.18:8080

解决方法

首先,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的虚拟机和查询.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读