• kubernete的service


    ◆Service的工作模式:userspace, iptables, ipvs

    •userspace: 1.1以前;已被淘汰。

    •iptables: 1.10以前

    • 灵活,功能强大

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

    • 可扩展性

    •ipvs: 1.11以后,若没有配置ipvs,则降级为iptables;

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

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

    ◆Service的类型:即服务的对外暴露方式。

    ExternalName:当Service类型是ExternalName时,Service所关联的不是本地Pod应用,而是集群外部的服务。从而实现集群内部的Pod应用调用集群外部的服务,可以把集群外部的服务当作内部服务一样去调用它。当Service类型是ExternalName时,spec.externalName字段才生效。

     •ClusterIP:默认,自动分配一个仅cluster内部可以访问的虚拟IP,用于集群内部通信。

    NodePort:分配一个内部集群IP地址,并在每个节点上启用一个端口来暴露服务,可以在集群外部访问。 访问地址:node端口范围30000-32067。

    流:Client→NodeIP:NodePort→ClusterIP:ServicePort→PodIP:containerPort。

    LoadBalancer:分配一个内部集群IP地址,并在每个节点上启用一个端口来暴露服务。 Kubernetes会请求底层云平台上的负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加进去。

    ◆service例(类型:ClusterIP/redis-svc.yaml)

     1 apiVersion: v1
     2 kind: Service
     3 metadata:
     4   name: redis
     5   namespace: default
     6 spec:
     7   selector:
     8      app: redis
     9      role: logstor
    10   clusterIP: 10.96.97.97
    11   type: ClusterIP
    12   ports:
    13   - port: 6379
    14     targetPort: 6379 
    View Code

    ●确认

    创建:kubectl apply -f redis-svc.yaml

    查看服务:kubectl get svc

    kubectl describe svc redis

     查看端口:ss -tnl

    ◆service例(类型:NodePort/nginx-svc.yaml)

     1 apiVersion: v1
     2 kind: Service
     3 metadata:
     4   name: nginx
     5   namespace: default
     6 spec:
     7   selector:
     8      app: nginx
     9      clusterIP: 10.96.97.97
    10   type: NodePort
    11   ports:
    12   - port: 80
    13     targetPort: 80
    14     nodePort: 30080
    View Code

    •测试方法:#while true; do curl http://node:30080/; sleep 1; done

     无头(headless)service

     1 apiVersion: v1
     2 kind: Service
     3 metadata:
     4   name: nginx
     5   namespace: default
     6 spec:
     7   selector:
     8     app: nginx
     9     clusterIP: None    #无头service仅支持类型为clusterIP。
    10     ports:
    11     - port: 80
    12       targetPort: 80
    View Code

    ◆资源记录:

    格式:SVC_NAME.NS_NAME.DOMAIN.LTD.

    svc.cluster.local.

  • 相关阅读:
    Windows 平台下的Mysql集群主从复制
    IOS 的loadView 及使用loadView中初始化View注意的问题。(死循环并不可怕)
    【2013625】K2+SAP集成应用解决方案在线研讨会
    to_char 和 to_date 经验分享
    Java向Access插入数据
    spring Bean的生命周期管理
    [置顶] 30分钟,让你成为一个更好的程序员
    Spring框架中Bean的生命周期
    Box2D的相关知识
    第八周项目二
  • 原文地址:https://www.cnblogs.com/mountain2011/p/12266418.html
Copyright © 2020-2023  润新知