外部流量能否访问我在Minikube内部的部署?

时间:2019-09-11 08:30:24

标签: kubernetes minikube

Kubernetes新手在这里。只是想让我的基本理解正确。 Minikube以本地开发而闻名,外部连接(不仅是集群外部)是否可以访问我在minikube中部署的Pod?

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

  

如果是,我还使用kubectl apply -f通过yaml文件中的NodePort将服务资源应用于minikube。另外,我也希望正确理解portnodePorttargetPortport是   分配给该特定服务的端口号,nodePort是   节点上的端口号(在我的情况下是我的ec2实例专用IP),   targetPort是与我拥有的containerPort等效的端口号   在部署的yaml中分配。如果我在此陈述中有误,请纠正我。

谢谢。

1 个答案:

答案 0 :(得分:1)

是的,你可以做到

当您通过以下命令启动了迷你库时:

minikube start --vm-driver=none

nodePort是集群外部的客户端将“看到”的端口。 nodePort通过kube-proxy在集群中的每个节点上打开。您可以使用nodePort从外部访问该应用程序。像https://loadbalancerIP:NodePort

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

apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  ports:
  - port: 8080
    targetPort: 8070
    nodePort: 31222
    protocol: TCP 
  selector:
    component: test-service-app

从k8s集群内部可以通过http://test-service.default.svc.cluster.local:8080(集群内部的服务到服务通信)访问此服务,并且到达那里的任何请求都将转发到targetPort 8070上正在运行的Pod。

如果没有另外指定,

tagetPort的默认值也与端口相同。