Nginx部署
K8s 集群内外访问服务的方式
节点
Kubernetes 集群中的服务器(指单台)
集群
Kubernetes 管理的一组服务器的集合
边界路由器
为局域网和Internet路由数据包的路由器,执行防火墙保护局域网络
集群网络
遵循Kubernetes网络模型实现集群内的通信的具体实现,比如Flannel和Calico
服务
Kubernetes的服务是使用标签选择器标识的一组Pod Servicce(Deployment)。除非另有说明,否则服务的虚拟IP仅可以子集群内部访问
# 获取集群的服务
kubectl get service
# 集群内的访问
curl http://上面获取的集群服务对应的IP
# 集群外访问
http://集群的节点任意一个IP地址:端口号
K8S 内部访问方式 》》 ClusterIP
ClusterIP 服务是K8S的默认服务,它给你一个集群内的服务,集群内的其它应用都可以访问该服务。
集群外边无法访问它(集群内的访问)。在某些场景下我们可以使用K8S的Proxy模式来访问服务 比如 调试服务时
K8S 三种外部访问方式
第一种 NodePort
NodePort 服务是引导外部流量到你的服务的最原始方式。NodePort,在所有节点(虚拟机)上开发一个特定端口,任何发送到该端口的流量都被转发到对应服务
# NodePort 服务特征如下:
1. 每个端口只能是一种服务
2. 端口范围只能是30000-32767 (可调)
3. 不在YAML配置文件中指定则会分配一个默认的端口
# 不用在生成环境中使用这种方式暴露服务,大多数时我们应该让k8s 来选择端口
第二种LoadBalancer
LoadBalancer 服务是暴露服务到 Internet 的标准方式,所有通过你指定的端口的流量都会被转发到对应的服务。
它没有过滤条件,没有路由等。这意味着你几乎可以发送任何种类的流量到该服务。如 HTTP、TCP、UDP、WebSocket 、GRPC等
kind>>Service>>externaltrafficpolicy
externaltrafficpolicy的有关问题说明
第三种 Ingreess
资料