10.ingres使用案例
10.1 Kubernetes service 几种类型
# kubectl explain service.spec.type
ClusterIP:默认的类型,用于k8s 内部之间的服务访问,即通过内部的service ip 实现服务间的访问,service IP 仅可以在内部访问,不能从外部访问。
NodePort:在cluster IP 的基础之上,通过在每个node 节点监听一个可以指定宿主机端口(nodePort)来暴露服务,从而允许外部client 访问k8s 集群中的服务,nodePort 把外部client的请求转发至service 进行处理.
LoadBalancer:主要在公有云如阿里云、AWS 上使用,LoadBalancer 构建在nodePort 基础之上,通过公有云服务商提供的负载均衡器将k8s 集群中的服务暴露给集群外部的client 访问。
ExternalName:用于将k8s 集群外部的服务映射至k8s 集群内部访问,从而让集群内部的pod能够通过固定的service name 访问集群外部的服务,有时候也用于将不同namespace 之间的pod 通过ExternalName 进行访问。
Service 如果是cluster 类型那么从clusterIP 到pod 是默认是TCP 协议,TCP 支持MySQL、Redis 等特定服务,另外还有UDP 和SCTP 协议。
Kubernetes 暴露服务的几种方式:
NodePort
cluster