zoukankan      html  css  js  c++  java
  • 深入理解Service

    8.1 Service存在的意义

    • 防止Pod失联(服务发现)

    • 定义一组Pod的访问策略(负载均衡)

    8.2 Pod与Service的关系

    • 通过label-selector相关联

    • 通过Service实现Pod的负载均衡( TCP/UDP 4层)

    • 8.2 Service三种类型

      • ClusterIP:集群内部使用,默认分配一个稳定的IP地址,即VIP,只能在集群内部访问(同Namespace内的Pod)。

      • NodePort:对外暴露应用。在每个节点上启用一个端口来暴露服务,可以在集群外部访问。也会分配一个稳定内部集群IP地址。访问地址:<NodeIP>:<NodePort>

      • LoadBalancer:对外暴露应用,适用公有云、与NodePort类似,在每个节点上启用一个端口来暴露服务。除此之外,Kubernetes会请求底层云平台上的负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加进去。

       8.3 Service代理模式

    Iptables:

    • 灵活,功能强大

    • 规则遍历匹配和更新,呈线性时延

    IPVS:

    • 工作在内核态,有更好的性能

    • 调度算法丰富:rr,wrr,lc,wlc,ip hash...

    启用ipvs:

    lsmod|grep ip_vs
    kubectl edit configmap kube-proxy -n kube-system
    kubectl delete pod xxx -n kube-system
    ipvsadm -ln
    

    Service DNS名称

    DNS服务监视Kubernetes API,为每一个Service创建DNS记录用于域名解析。

    ClusterIP A记录格式:<service-name>.<namespace-name>.svc.cluster.local

    示例:my-svc.my-namespace.svc.cluster.local

    小结

    1. 采用NodePort对外暴露应用,前面加一个LB实现统一访问入口

    2. 优先使用IPVS代理模式

    3. 集群内应用采用DNS名称访问

     

  • 相关阅读:
    moc处理cpp文件
    程序员!你还能年轻几岁?
    多媒体会议系统中的延迟
    把C++类成员函数集成到lua
    Q_PROPERTY使用
    python与c的集成
    注册C函数与类成员函数到lua
    摄像头(WebCam)在Linux操作系统中的驱动方法
    网络营销实战必读之书推荐:《网络营销实战密码》
    这样写的博客才有更多的人愿意看
  • 原文地址:https://www.cnblogs.com/zhaobin-diray/p/13436577.html
Copyright © 2011-2022 走看看