前面提到Service是一个访问容器,主要了解Service如何为Pod做反向代理和负载均衡
Service和实际的Pod通过label来绑定,不受变化IP的影响
Service和Pod的网络映射关系通过iptables进行配置
Service拥有一个ClusterIP,由K8S的iptables规则管理
K8S Cluster的每一个节点都配置了相同的iptables规则,所有Cluster内都能通过Service的ClusterIP访问它
除了ClusterIP和iptables规则,还可以通过DNS来访问Service
kubeadm默认安装kube-dns组件
外网访问Service的方式
- ClusterIP 只有Cluster内的节点和Pod可访问
- NodePort 通过Cluster的静态端口提供服务,通过 NodeIp:NodePort 访问,实际是通过增加iptables规则,支持负载均衡到每一个Pod
- nodePort如果不指定是使用随机选择的,也可以手动指定,随机选择的范围在30000~
- nodePort是节点上监听的端口
- port是ClusterIp上监听的应用的端口
- targetPort是Pod监听的端口
- nodePort和port监听到的请求都会转到tartgetPort上
LoadBalancer 使用cloud provider特有的 load balancer对外提供服务
Featured Tags
工具类
XML
JAVA
Java
Mybatis
反射
代理模式
日志
工厂方法模式
装饰器模式
结果集映射
Web
RESTful
WebAPI规范
SQL
Redis
Jira
SynapseRT
有限状态机 State Machine
statemachine
SpringBoot
IDEA
Tomcat
Vue
Docker
Springboot
Apache Ignite
项目发布与调试
白帽子讲web安全
黑名单
通用化
企业中台实践
MacOS
docker
minio
springboot
分布式存储
Postgres
数据备份
数据恢复
K8S
抖音小程序
开发实践
SpringCloud
Skywalking
Nacos
Kubernetes
Secret
ConfigMap
Git
GitOps
云原生
RocketMQ
ActiveMQ-Artemis
ClickHouse
Kamailio
sipp
Homer
heplify
heplify-server
HEP