zoukankan      html  css  js  c++  java
  • Headless Service 和Service

    定于spec:clusterIP: None

    还记得Service的Cluster IP是做什么的吗?对,一个Service可能对应多个EndPoint(Pod),client访问的是Cluster IP,通过iptables规则转到Real Server,从而达到负载均衡的效果(实现原理请见这里)。如下:

    有头service

    kubectl get service
    NAME                      CLUSTER-IP       EXTERNAL-IP       PORT(S)           AGE
    nginx-service             10.107.124.218   192.168.128.158   80/TCP,443/TCP    1d

    kubectl describe  service nginx-service    
    Name:                   nginx-service
    Namespace:              default
    Labels:                 
    Selector:               component=nginx
    Type:                   ClusterIP
    IP:                     10.107.124.218
    External IPs:           192.168.128.158
    Port:                   nginx-http      80/TCP
    Endpoints:              10.244.2.9:80
    Port:                   nginx-https     443/TCP
    Endpoints:              10.244.2.9:443

    nslookup nginx-service.default.svc.cluster.local  10.96.0.10  #这个ip为k8s dns的ip
    Server:         10.96.0.10
    Address:        10.96.0.10#53
    
    Name:   nginx-service.default.svc.cluster.local
    Address: 10.107.124.218

    虽然service有2个endpoint,但是dns查询时只会返回service的地址。具体client访问的是哪个Real Server,是由iptables来决定的。

    无头service

    kubectl get service
    NAME                      CLUSTER-IP       EXTERNAL-IP       PORT(S)    AGE
    nginx                     None                         80/TCP     1h

    kubectl describe  service nginx
    Name:                   nginx
    Namespace:              default
    Labels:                 app=nginx
    Selector:               app=nginx
    Type:                   ClusterIP
    IP:                     None
    Port:                   web     80/TCP                 
    Endpoints:              10.244.2.17:80,10.244.2.18:80 #通过web获取到pod的ip地址

    nslookup nginx.default.svc.cluster.local 10.96.0.10
    Server:         10.96.0.10
    Address:        10.96.0.10#53
    
    Name:   nginx.default.svc.cluster.local
    Address: 10.244.2.17
    Name:   nginx.default.svc.cluster.local
    Address: 10.244.2.18

    dns查询会如实的返回2个真实的endpoint

  • 相关阅读:
    bbs小项目整理(八)(总结、源码分享)
    struts2验证框架
    Struts2文件上传例子
    struts2的参数的封装形式
    struts2的获取Servlet API的几种方式的学习笔记
    struts2的相关配置信息
    java向mysql插入时间,时间日期格式化
    关于将项目导入eclipse出现小红叉的解决笔记
    bbs小项目整理(七)(消息分页展现)
    HTML引用CSS
  • 原文地址:https://www.cnblogs.com/kevincaptain/p/10600733.html
Copyright © 2011-2022 走看看