• service 详解


    8.3.3 HeadLiness类型的Service

    在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望自己来控制负载均衡策略,针对这种情况,kubernetes提供了HeadLiness Service,这类Service不会分配Cluster IP,如果想要访问service,只能通过service的域名进行查询。
    创建service-headliness.yaml

    apiVersion: v1
    kind: Servicemetadata:
      name: service-headliness
      namespace: devspec:
      selector:
        app: nginx-pod
      clusterIP: None # 将clusterIP设置为None,即可创建headliness Service
      type: ClusterIP
      ports:
      - port: 80    
        targetPort: 80
    # 创建service
    [root@k8s-master01 ~]# kubectl create -f service-headliness.yaml
    service/service-headliness created
    # 获取service, 发现CLUSTER-IP未分配
    [root@k8s-master01 ~]# kubectl get svc service-headliness -n dev -o wide
    NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE   SELECTOR
    service-headliness   ClusterIP   None         <none>        80/TCP    11s   app=nginx-pod
    # 查看service详情
    [root@k8s-master01 ~]# kubectl describe svc service-headliness  -n dev
    Name:              service-headliness
    Namespace:         dev
    Labels:            <none>
    Annotations:       <none>
    Selector:          app=nginx-pod
    Type:              ClusterIP
    IP:                None
    Port:              <unset>  80/TCP
    TargetPort:        80/TCP
    Endpoints:         10.244.1.39:80,10.244.1.40:80,10.244.2.33:80
    Session Affinity:  None
    Events:            <none>
    # 查看域名的解析情况
    [root@k8s-master01 ~]# kubectl exec -it pc-deployment-66cb59b984-8p84h -n dev /bin/sh
    / # cat /etc/resolv.conf
    nameserver 10.96.0.10
    search dev.svc.cluster.local svc.cluster.local cluster.local
    
    [root@k8s-master01 ~]# dig @10.96.0.10 service-headliness.dev.svc.cluster.local
    service-headliness.dev.svc.cluster.local. 30 IN A 10.244.1.40
    service-headliness.dev.svc.cluster.local. 30 IN A 10.244.1.39
    service-headliness.dev.svc.cluster.local. 30 IN A 10.244.2.33
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    8.3.4 NodePort类型的Service

    在之前的样例中,创建的Service的ip地址只有集群内部才可以访问,如果希望将Service暴露给集群外部使用,那么就要使用到另外一种类型的Service,称为NodePort类型。NodePort的工作原理其实就是将service的端口映射到Node的一个端口上,然后就可以通过NodeIp:NodePort来访问service了。
    在这里插入图片描述

    创建service-nodeport.yaml

    apiVersion: v1
    kind: Servicemetadata:
      name: service-nodepo
    • 1
    • 2
  • 相关阅读:
    2022/7/30
    蓝队视角下的防御体系怎样进行突破
    智慧煤矿/智慧矿区视频汇聚存储与安全风险智能分析平台建设思路
    Chaos Mesh网络延迟原理探索
    「深入探究Web页面生命周期:DOMContentLoaded、load、beforeunload和unload事件」
    Java -- this关键字
    将HTML网页转换为Markdown格式的工具及方法
    Linux 下 Java 安装字体方法
    关于卡片盒笔记法的研究
    您的计算机已被.devos勒索病毒感染?恢复您的数据的方法在这里!
  • 原文地址:https://blog.csdn.net/weixin_72898433/article/details/128194798