Kubernetes 新手在这里。只是想让我的基本理解正确。Minikube 以本地开发而闻名,是否可以通过外部连接(不仅仅是集群外部(访问我在 minikube 中部署的 pod?
我在 ec2 实例中运行我的 minikube,所以我使用命令minikube start --vm-driver=none
启动了我的 minikube,这意味着使用 Docker 运行 minikube,没有配置虚拟机。我的最终目标是允许外部连接到达集群内的 pod,并通过 pod 执行 POST 请求(例如使用 Postman(。
如果是,我还使用 yaml 文件中的 NodePort 使用
kubectl apply -f
将我的服务资源应用到我的 minikube 中。另外,我还希望正确理解port
、nodePort
和targetPort
。port
是 分配给该特定服务的端口号,nodePort
节点上的端口号(在我的情况下是我的 EC2 实例私有 IP(,targetPort
端口号等同于我containerPort
在我的部署的 YAML 中分配。如果我的这句话是错误的,请纠正我。
谢谢。
是的,你可以这样做
正如您开始的迷你库贝:
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
的值也与端口相同。