本篇文章为大家展示了外网如何访问Service,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
除了 Cluster 内部可以访问 Service,很多情况我们也希望应用的 Service 能够暴露给 Cluster 外部。Kubernetes 提供了多种类型的 Service,默认是 ClusterIP。
ClusterIP
Service 通过 Cluster 内部的 IP 对外提供服务,只有 Cluster 内的节点和 Pod 可访问,这是默认的 Service 类型,前面实验中的 Service 都是 ClusterIP。
NodePort
Service 通过 Cluster 节点的静态端口对外提供服务。Cluster 外部可以通过 <NodeIP>:<NodePort>
访问 Service。
LoadBalancer
Service 利用 cloud provider 特有的 load balancer 对外提供服务,cloud provider 负责将 load balancer 的流量导向 Service。目前支持的 cloud provider 有 GCP、AWS、Azur 等。
下面我们来实践 NodePort,Service httpd-svc
的配置文件修改如下:
添加 type: NodePort
,重新创建 httpd-svc
。
下面测试 NodePort 是否正常工作。
规则的含义是:访问当前节点 32312
端口的请求会应用规则 KUBE-SVC-RL3JAE4GN7VOGDGP
,内容为:
现在配置文件中就有三个 Port 了:
nodePort
是节点上监听的端口。
port
是 ClusterIP 上监听的端口。
targetPort
是 Pod 监听的端口。
最终,Node 和 ClusterIP 在各自端口上接收到的请求都会通过 iptables 转发到 Pod 的 targetPort
。
应用新的 nodePort
并验证:
nodePort: 30000
已经生效了。
我们讨论访问应用的机制 Service,学习了如何创建 Service;Service 的三种类型 ClusterIP、NodePort 和 LoadBalancer,以及它们各自的适用场景。
上述内容就是外网如何访问Service,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注天达云行业资讯频道。