kubernetes - 外部流量是否可以访问我在 Minikube 中的部署?
问题描述
Kubernetes 新手在这里。只是想让我的基本理解正确。Minikube 以本地开发而闻名,是否可以通过外部连接(不仅仅是集群外部)访问我在 minikube 中部署的 pod?
我在 ec2 实例中运行我的 minikube,所以我使用 command 启动了我的 minikube minikube start --vm-driver=none
,这意味着使用 Docker 运行 minikube,没有配置 VM。我的最终目标是允许外部连接到达集群内的 pod 并通过 pod 执行 POST 请求(例如使用 Postman)。
如果是,我还使用 yaml 文件中的 NodePort 将我的服务资源应用
kubectl apply -f
到我的 minikube 中。此外,我也希望正确理解port
、nodePort
和targetPort
。port
是分配给该特定服务nodePort
的端口号,是节点上的端口号(在我的情况下是我的 ec2 实例私有 IP), 是与我在部署的 yaml 中分配targetPort
的端口号等效的端口号。containerPort
如果我在此声明中错了,请纠正我。
谢谢。
解决方案
是的,你可以这么做
当您使用以下命令启动 minikube 时:
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
如果未另行指定,则默认情况下与 port 的值相同。
推荐阅读
- android - 颤振 - 如何为文本的一部分着色(即在句子中间)
- python - 如何制作一个python程序来解密没有密钥的凯撒密码?(频率分析)
- android - 使用 MediaCodec 和 GLSurfaceView 浏览视频
- c - 使用 C 编程语言从 Arduino 串口检索数据时出错
- php - 在codeigniter中注销后有什么方法可以禁用浏览器后退按钮
- sql-server - 在 SQL 中生成连续月份
- oracle - 如果我要求所有 PL/SQL 包都没有 EXIT 语句,会有什么影响?
- vba - 具有选定形状的 vba 宏 powerpoint
- node.js - cb 不是函数 - 使用 winston 处理未处理的 Promise Rejection 时
- c++ - 是“double x = 0.0d;”中的“d”吗 g++ 扩展?