Kubernetes服务访问理解

不同类型的IP

Node IP:Node节点的IP地址

Pod IP:Pod的IP地址,Docker Engine根据docker0网桥的IP地址进行分配的,通常是一个虚拟的二层网络

Cluster IP:Service的IpP地址,属于Kubernetes集群内部的地址,无法在集群外部直接使用

不同类型的Port

nodePort:提供给集群外部访问service的入口

port:提供给集群内部访问service的入口

targetPort:容器应用访问的端口

实例

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: framework
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: framework
  template:
    metadata:
      labels:
        app: framework
    spec:
      containers:
      - name: framework
        image: 192.168.2.45:8082/start:v3
        ports:
          - containerPort: 8080
      imagePullSecrets:
        - name: myregistrykey

NodePort类型的Service

apiVersion: v1
kind: Service
metadata:
  name: framework-web-service
  labels:
    name: framework-web-service
  namespace: default
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    protocol: TCP
    nodePort: 32144
  selector:
    app: framework

访问URL:http://192.168.2.41:32144

分析:

访问的URL格式为:NodeIp + NodePort

查看当前集群SERVICE的详情,可以看到如SERVICE配置中定义的一样,对外提供访问的SERVICE,对于集群外部开放的端口是32144,集群内部是8080。

当我们通过 NodeIp + NodePort 访问SERVICE时,会得到该SERVICE的Cluster IP:10.92.12.23,PORT:8080。

CluserIp + Port 组成了 全局唯一的虚拟IP地址,负责对其下管理的Pod进行负载均衡。

这样做的原因:Pod的EndPoint会随着Pod的销毁和重新创建发生改变,而Service一旦创建,Cluster IP会保持全局唯一

由此串起来的链路是:NodeIP + NodePort ——> ClusterIP + Port ——> PodIP + Port

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值