zoukankan      html  css  js  c++  java
  • 7、kubernetes资源清单之Service资源190714

    一、Service简介

    • Service为Pod提供固定服务端点
    • Service的本质是一条iptables或者ipvs的转发规则
    • userspace:1.1-
    • iptables:1.1+
    • ipvs:1.11+

    二、Service类型

    • ExternalName
    • ClusterIP:使用集群网络提供服务
    • NodePort:直接使用节点网络提供服务
    • LoadBalancer:例如k8s构建在阿里云上,可以直接使用阿里云提供的SLB服务

    三、使用清单创建service

    • ClusterIP类型:通过svc的IP访问
    # cat redis-svc.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      name: redis-svc
      namespace: default
    spec:
      selector:  #支持等值选择器
        app: redis
        role: logstor
      clusterIP: 10.99.99.99  #客户不指定,会自动分配
      type: ClusterIP
      ports:
      - port: 6379  #Service端端口
        targetPort: 6379  #Pod端端口
    
    • NodePort类型:通过访问node的IP访问
    # cat myapp-svc.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: myapp-svc
      namespace: default
    spec:
      selector:  #支持等值选择器
        app: myapp
        release: canary
      clusterIP: 10.99.99.100
      type: NodePort
      ports:
      - port: 80  #Service端端口
        targetPort: 80  #Pod端端口
        nodePort: 10080  #节点端端口,端口范围:30000-32767
    

    四、资源记录

    • SVC_NAME.NS_NAME.DOMAIN.LTD. :资源记录格式
    • svc.cluster.local. :默认域名后缀
    • redis-svc.default.svc.cluster.local. :以上redis-svc的资源记录endpoint

    五、回话粘性

    # kubectl patch svc myapp-svc -p '{"spec":{"sessionAffinity":"ClientIP"}}'  #来自同一个IP的客户端调度到同一个pod,默认none
    

    六、无头Service(Headless)

    • 正常的service:service_name --> cluster_ip
    • 无头的service:service_name --> pod_ip
    # cat myapp-svc-headless.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: myapp-svc-headless
      namespace: default
    spec:
      selector:
        app: myapp
        release: canary
      clusterIP: "None"
      ports:
      - port: 80
        targetPort: 80
    # dig -t A myapp-svc-headless.default.svc.cluster.local. @10.244.0.2  #10.244.0.2为coreDNS的地址,可以解析到myAPP的pod的所以ip
    

    七、开启kubernetes支持ipvs

    # vim /etc/sysconfig/kubelet
    KUBE_PROXY_MODE=ipvs
    
    开机装载ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4模块
    
  • 相关阅读:
    angularjs select
    DataInputStream和DataOutputStream
    Linux gcc编译器
    Linux 网络配置
    Linux 实用工具vi
    Linux 文件系统
    Linux Linux系统管理命令
    Linux Linux常用命令二
    Linux Linux常用命令一
    数据结构 排序(归并排序)
  • 原文地址:https://www.cnblogs.com/L-dongf/p/11185843.html
Copyright © 2011-2022 走看看