Kubernetes 外部通信是否可以访问我在Minikube内部的部署?

Kubernetes 外部通信是否可以访问我在Minikube内部的部署?,kubernetes,minikube,Kubernetes,Minikube,库伯内特是这里的新手。只是想让我的基本理解正确。Minikube以本地开发而闻名,是否可以通过外部连接(而不仅仅是集群外部)访问我在Minikube部署的POD 我正在ec2实例中运行我的minikube,因此我使用命令minikube start--vm driver=none启动了我的minikube,这意味着使用Docker运行minikube,没有配置vm。我的最终目标是允许外部连接到达集群内的pod,并通过pod执行POST请求(例如使用Postman) 如果是,我还使用kubectl

库伯内特是这里的新手。只是想让我的基本理解正确。Minikube以本地开发而闻名,是否可以通过外部连接(而不仅仅是集群外部)访问我在Minikube部署的POD

我正在ec2实例中运行我的minikube,因此我使用命令
minikube start--vm driver=none
启动了我的minikube,这意味着使用Docker运行minikube,没有配置vm。我的最终目标是允许外部连接到达集群内的pod,并通过pod执行POST请求(例如使用Postman)

如果是,我还使用
kubectl apply应用了我的服务资源
-使用yaml文件中的NodePort将f
导入我的minikube。此外,我还希望正确理解
端口
节点端口
目标端口
<代码>端口为 分配给该特定服务的端口号,
nodePort
是 节点上的端口号(在我的示例中是我的ec2实例专用IP),
targetPort
是与我所看到的
containerPort
相等的端口号 在我部署的yaml中分配。如果我这句话错了,请纠正我

谢谢

是的,你能做到

正如您开始使用minikube时所使用的:

minikube start --vm-driver=none
nodePort
是集群外的客户端将“看到”的端口。nodePort通过kube代理在集群中的每个节点上打开。您可以使用nodePort从外部世界访问应用程序。像
https://loadbalancerIP:NodePort

端口
是您的服务在集群内侦听的端口。让我们举一个例子:

apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  ports:
  - port: 8080
    targetPort: 8070
    nodePort: 31222
    protocol: TCP 
  selector:
    component: test-service-app
从k8s集群内部可以通过(集群内部的服务对服务通信)访问此服务,到达该集群的任何请求都会转发到targetPort 8070上的运行pod


tagetPort
如果没有另外指定,默认情况下也与port相同。

感谢您的回复。我刚刚启动了一个带有基本UTIL(如ping、telnet、curl等)的“utils”pod。我可以从“utils”pod ping到部署的pod IP(不是服务内部IP),但我无法使用部署yaml中声明的端口号telnet到pod IP。我仍然怀疑我能否访问集群内部的部署,因为
EXTERNAL-IP
列仍然显示为
。为了补充我之前的评论,我无法使用集群IP或节点端口类型从“utils”pod远程登录到我的服务
cluster-IP
。这就是我旋转“utils”吊舱的方式
kubectl run--rm utils-it--generator=run pod/v1--image arunvelsrirram/utils bash
我最好创建yaml文件并申请服务和部署。@这可能是您可以遵循的最好的文档。尝试使用curl代替telnet。问题已经解决,并证明minikube可以通过正确配置节点端口和负载平衡器接受外部(来自互联网)的流量。我搞砸了我的targetPort,这就是为什么我无法从我的部署中得到正确的响应。另一个提示:要使用正确的curlpost请求在内部进行卷曲,您可以使用postman通过按
code
按钮创建具有正确格式的卷曲。多亏了我的问题。