# 网络概念及策略控制

# 基本网络模型

# 约法三单

  1. pod之间可以直接通信,无需显式使用NAT接收和地址转换
  2. node与pod之间可以直接通信,无需要明显地址转换
  3. pod可以看到自己的ip跟别人看到它所用的ip是一样的,中间不经过转换

# 分类

  1. underlay:与Host网络同层
  2. ovrelay:只要与Host网络不冲突,ip可以自由分配

# 14 Kubenets Service

metadata:
  name: my-service
spec:
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
1
2
3
4
5
6
7

# 集群内访问

my-service:80 -> 192.168.11.236:9376

my-service.my-namespace:80 -> 192.168.11.236:9376

172.18.255.16:80 -> 192.168.11.236:9376

环境变量

TASK_BUS_SERVICE_HOST=172.18.254.152
TASK_BUS_SERVICE_PORT=80
TASK_WORKER_SERVICE_HOST=172.18.255.164
TASK_WORKER_SERVICE_PORT=80
1
2
3
4

Headless ServiceclusterIP: None不再提供虚拟IP来负载均衡

my-service:9376 -> 192.168.11.236:9376,192.168.11.237:9376

my-service.my-namespace:9376 -> 192.168.11.236:9376,192.168.11.237:9376

# 集群外访问

NodePort:在node上面暴露节点的一个端口,转发到虚拟的IP地址上面

LoadBalancer:

# APIServer

统一管理所有对象,所有组件注册到它上面监听对象的变化

# Cloud Controller Managere

负责去配置LoadBalance的一个负载均衡器给外部访问

# CoreDns

观测pod的变化,配置dns解析,实现通过service的名字直接访问service的虚拟IP或者Headless类型service的ip列表解析

# Kube-proxy

监听service与pod变化,实际配置集群pod或是虚拟地址的一个访问

上次更新: : 2 months ago