zoukankan      html  css  js  c++  java
  • Kubernetes 记一次网络请求分析

    查看pod,server

    root @ master ➜  ~  kubectl get po,svc -n irm-server -o wide 
    NAME                                      READY     STATUS             RESTARTS   AGE       IP              NODE
    po/test-agw-864b7554d6-wmxnm              0/1       ImagePullBackOff   0          21d       10.244.5.108    node12
    po/test-ecd-server-56b77d9fbb-zfctt       1/1       Running            1          162d      10.244.5.39     node12
    po/test-flow-server-b477756f-2s5bc        1/1       Running            0          21d       10.244.1.172    node1
    po/test-huishi-api-5f474cbcc6-wpb7j       0/1       ImagePullBackOff   0          21h       10.244.12.159   node11
    po/test-huishi-api-86dcfdb7c5-jtcpt       1/1       Running            0          22h       10.244.12.85    node11
    po/test-huishi-message-5d4b456b88-n8xl5   1/1       Running            1          44d       10.244.5.35     node12
    po/test-huishi-schedule-bc5f5d4d5-z22gq   1/1       Running            1          21d       10.244.1.159    node1
    po/test-huishi-server-6f875487d7-9rzpd    1/1       Running            0          1d        10.244.7.112    node6
    po/test-irm-bd9444948-rwtgn               1/1       Running            0          20d       10.244.2.195    node2
    po/test-irm-task-89f65f5bd-zht2x          1/1       Running            1          77d       10.244.5.34     node12
    po/test-message-service-bbf469fd8-bf847   0/1       ImagePullBackOff   0          20d       10.244.1.176    node1
    po/test-order-server-5fcc5575bd-67c4r     1/1       Running            0          21d       10.244.1.158    node1
    po/test-payment-6df4459864-5d8xl          1/1       Running            0          21d       10.244.5.221    node12
    po/test-ufida-server-7cb4886f5b-5t4x2     0/1       ImagePullBackOff   0          106d      10.244.4.246    node4
    po/test-urule-54f4b8f84f-l5xbm            1/1       Running            1          21d       10.244.1.160    node1
    
    NAME                           TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR
    svc/test-agw                   ClusterIP   10.109.158.202   <none>        8080/TCP         1y        app=test-agw
    svc/test-ecd-server            ClusterIP   10.102.200.21    <none>        8080/TCP         1y        app=test-ecd-server
    svc/test-flow-server           ClusterIP   10.98.89.221     <none>        8080/TCP         175d      app=test-flow-server
    svc/test-huishi-api            NodePort    10.108.234.58    <none>        8080:30007/TCP   62d       app=test-huishi-api
    svc/test-huishi-message        ClusterIP   10.97.120.29     <none>        8080/TCP         46d       app=test-huishi-message
    svc/test-huishi-schedule       ClusterIP   10.99.250.121    <none>        8080/TCP         51d       app=test-huishi-schedule
    svc/test-huishi-schedule9999   NodePort    10.98.35.162     <none>        9999:30099/TCP   51d       app=test-huishi-schedule
    svc/test-huishi-server         ClusterIP   10.96.74.168     <none>        8080/TCP         14d       app=test-huishi-server
    svc/test-irm                   ClusterIP   10.106.170.108   <none>        80/TCP           20d       app=test-irm
    svc/test-irm-task              ClusterIP   10.109.108.154   <none>        80/TCP           1y        app=test-irm-task
    svc/test-message-service       ClusterIP   10.108.202.97    <none>        8080/TCP         100d      app=test-message-service
    svc/test-order-node            NodePort    10.110.147.74    <none>        8080:30881/TCP   1y        app=test-order-server
    svc/test-order-server          ClusterIP   10.101.12.207    <none>        8080/TCP         1y        app=test-order-server
    svc/test-payment               ClusterIP   10.97.245.133    <none>        8080/TCP         1y        app=test-payment
    svc/test-ssoweb                ClusterIP   10.110.162.251   <none>        8080/TCP         1y        app=test-ssoweb
    svc/test-urule                 ClusterIP   10.102.23.41     <none>        8080/TCP         1y        app=test-urule
    
    

    查看nodes

    root @ master ➜  ~  kubectl get nodes -n irm-server -o wide
    NAME      STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
    master    Ready     master    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node1     Ready     <none>    70d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.2
    node11    Ready     <none>    286d      v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node12    Ready     <none>    174d      v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node2     Ready     <none>    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node4     Ready     <none>    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node5     Ready     <none>    104d      v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node6     Ready     <none>    23d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node7     Ready     <none>    23d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node8     Ready     <none>    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.2
    node9     Ready     <none>    23d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.2
    

    特么看不出具体的节点ip

    这里我也不关心

    查看Endpoint

    root @ master ➜  ~  kubectl get ep -n irm-server
    NAME                       ENDPOINTS            AGE
    test-agw                                        1y
    test-ecd-server            10.244.5.39:20884    1y
    test-flow-server           10.244.1.172:8080    175d
    test-huishi-api            10.244.12.85:8088    63d
    test-huishi-message        10.244.5.35:8080     46d
    test-huishi-schedule       10.244.1.159:8080    51d
    test-huishi-schedule9999   10.244.1.159:9999    51d
    test-huishi-server         10.244.1.225:8080    14d
    test-irm                   10.244.2.195:80      21d
    test-irm-task              10.244.5.34:80       1y
    test-message-service                            100d
    test-order-node            10.244.1.158:20881   1y
    test-order-server          10.244.1.158:20881   1y
    test-payment               10.244.5.221:20882   1y
    test-ssoweb                <none>               1y
    test-urule                 10.244.1.160:8787    1y
    

    请求huishi-api,抓包分析

    请求http://18.16.200.130:30007/api/user/login

    tcpdump -i any -w aaa.cap
    

    这里要抓取所有的网卡

    查看抓捕的记录:

    其中18.16.202.169是我本机ip地址

    18.16.200.130k8s集群的master节点ip地址

    10.244.12.85可以从上面的配置看出是huishi-apiNodePort

    查看master的网卡信息

    root @ master ➜  ~  ifconfig
    cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
            inet 10.244.0.1  netmask 255.255.255.0  broadcast 0.0.0.0
            inet6 fe80::204b:36ff:fe65:f36  prefixlen 64  scopeid 0x20<link>
            ether 0a:58:0a:f4:00:01  txqueuelen 1000  (Ethernet)
            RX packets 11043743  bytes 2245109724 (2.0 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 11598708  bytes 1866487140 (1.7 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
            ether 02:42:d9:c7:64:79  txqueuelen 0  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 18.16.200.130  netmask 255.255.255.0  broadcast 18.16.200.255
            inet6 fe80::623c:3b90:5a52:57b9  prefixlen 64  scopeid 0x20<link>
            ether 52:54:00:50:6c:6a  txqueuelen 1000  (Ethernet)
            RX packets 258611996  bytes 77421475020 (72.1 GiB)
            RX errors 0  dropped 33  overruns 0  frame 0
            TX packets 228059421  bytes 326005447771 (303.6 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
            inet 10.244.0.0  netmask 255.255.255.255  broadcast 0.0.0.0
            inet6 fe80::aca0:86ff:fe1b:64e0  prefixlen 64  scopeid 0x20<link>
            ether ae:a0:86:1b:64:e0  txqueuelen 0  (Ethernet)
            RX packets 10422535  bytes 966970104 (922.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 14453971  bytes 1874942581 (1.7 GiB)
            TX errors 0  dropped 8 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1  (Local Loopback)
            RX packets 129207398  bytes 75774837801 (70.5 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 129207398  bytes 75774837801 (70.5 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    

    可以看出使用的是flannel.1网卡,ip是10.244.0.0

    查看huishi-server的描述

    root @ master ➜  ~  kubectl describe svc test-huishi-server -n irm-server
    Name:              test-huishi-server
    Namespace:         irm-server
    Labels:            app=test-huishi-server
    Annotations:       kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"test-huishi-server"},"name":"test-huishi-server","namespace":"irm-ser...
    Selector:          app=test-huishi-server
    Type:              ClusterIP
    IP:                10.96.74.168
    Port:              http  8080/TCP
    TargetPort:        8080/TCP
    Endpoints:         10.244.1.225:8080
    Session Affinity:  None
    Events:            <none>
    

    访问Service

    内部访问

    如果是内部网络访问的话,比较方便

    • 通过svc中配置的clusterIp访问

      huishi-server:
      root @ master ➜  ~  curl 10.96.74.168:8080/test/get
      {"data":null,"success":true,"resCode":"000","msg":"成功"}#  
      
      huishi-api
      root @ master ➜  ~  curl 10.108.234.58:8080/api/test/get
      {"data":null,"success":true,"resCode":"000","msg":"成功"}#   
      
    • 通过ep中的Endpoints访问

      huishi-server:
      root @ master ➜  ~  curl 10.244.1.225:8080/test/get
      {"data":null,"success":true,"resCode":"000","msg":"成功"}#  
      
      huishi-api:
      root @ master ➜  ~  curl 10.244.12.85:8088/api/test/get
      {"data":null,"success":true,"resCode":"000","msg":"成功"}#     
      

    外部访问

    NodePort(集群外任意一个节点的IP加上端口访问该服务)

    如果类型是NodePort,直接访问master的ip,svc中映射的端口

    huishi-api:
    root @ master ➜  ~  curl 127.0.0.1:30007/api/test/get
    {"data":null,"success":true,"resCode":"000","msg":"成功"}#                                                                                                                                                                  
    root @ master ➜  ~  curl 18.16.200.130:30007/api/test/get
    {"data":null,"success":true,"resCode":"000","msg":"成功"}#  
    

    集群外就可以使用kubernetes任意一个节点的IP加上端口访问该服务

    root @ master ➜  ~  curl 18.16.200.130:30007/api/test/get
    {"data":null,"success":true,"resCode":"000","msg":"成功"}#                                                                                                                                                                  
    root @ master ➜  ~  curl 18.16.200.141:30007/api/test/get
    {"data":null,"success":true,"resCode":"000","msg":"成功"}#   
    

    查看master节点的网络

    root @ master ➜  ~  netstat -anop |grep 30007
    tcp6       0      0 :::30007                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    root @ master ➜  ~  netstat -anop |grep 2788
    tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp        0      0 18.16.200.130:49232     18.16.200.130:6443      ESTABLISHED 2788/kube-proxy      keepalive (4.15/0/0)
    tcp6       0      0 :::10256                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30001                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30002                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30099                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30003                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30004                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::31988                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30005                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30998                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30006                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30999                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30007                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30008                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::32088                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30009                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30010                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::32666                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30011                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30012                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30908                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::31998                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       1      0 :::31999                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30881                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::32098                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30020                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::32070                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    tcp6       0      0 :::30088                :::*                    LISTEN      2788/kube-proxy      off (0.00/0/0)
    

    Ingress

    除了NodePort暴露服务ip,也可以使用ingress暴露

    root @ master ➜  ~  kubectl get po,svc --all-namespaces -o wide |grep ingress
    ingress-nginx        po/default-http-backend-77b86c5478-9f9jv          1/1       Running            0          21d       10.244.1.157    node1
    ingress-nginx        po/nginx-ingress-controller-5bb76649d8-5cg4g      1/1       Running            0          21d       18.16.200.131   node1
    
    ingress-nginx        svc/default-http-backend            ClusterIP   10.107.214.146   <none>        80/TCP                          350d      app=default-http-backend
    
    

    查看ep

    root @ master ➜  ~  kubectl get ep -n ingress-nginx
    NAME                   ENDPOINTS           AGE
    default-http-backend   10.244.1.157:8080   350d
    

    查看ingress具体域名对应服务配置:

    root @ master ➜  ~  kubectl get ingress -n irm-server         
    NAME                   HOSTS                         ADDRESS   PORTS     AGE
    agw-ingress            tagw.shitou.local                       80        1y
    test-flow-ingress      tflowserver.shitou.local                80        175d
    test-huishi-api        thuishi-api.shitou.local                80        355d
    test-huishi-server     thuishi-server.shitou.local             80        14d
    test-irm-ingress       tirm.shitou.local                       80        21d
    test-irmtask-ingress   tirmtask.shitou.local                   80        1y
    test-urule-ingress     turule.shitou.local                     80        1y
    

    从上面可以看出ingress安装在18.16.200.131的节点上

    那么上述hosts就会访问到18.16.200.131,并通过ingress组件访问到各自的svc

    查看:

    $ ping thuishi-server.shitou.local
    Pinging thuishi-server.shitou.local [18.16.200.131] with 32 bytes of data:
    Reply from 18.16.200.131: bytes=32 time<1ms TTL=63
     
    $ ping tirm.shitou.local
    Pinging tirm.shitou.local [18.16.200.131] with 32 bytes of data:
    Reply from 18.16.200.131: bytes=32 time=10ms TTL=63
    

    抓包分析:

    这里的tesb.shitou.local就是ip地址18.16.200.131

    10.244.1.225是huishi-server的pod地址

    10.244.1.118.16.200.131其他网卡地址

    查看18.16.200.131的网卡信息:

    [root@node1 ~]# ifconfig
    cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
            inet 10.244.1.1  netmask 255.255.255.0  broadcast 0.0.0.0
            inet6 fe80::70ae:ccff:fe27:c166  prefixlen 64  scopeid 0x20<link>
            ether 0a:58:0a:f4:01:01  txqueuelen 1000  (Ethernet)
            RX packets 268014941  bytes 115322010128 (107.4 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 264897557  bytes 222922218246 (207.6 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
            ether 02:42:d0:aa:90:92  txqueuelen 0  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 18.16.200.131  netmask 255.255.255.0  broadcast 18.16.200.255
            inet6 fe80::9b8b:60b5:a1d3:590e  prefixlen 64  scopeid 0x20<link>
            inet6 fe80::9290:78fe:4051:52d0  prefixlen 64  scopeid 0x20<link>
            ether 52:54:00:41:df:fa  txqueuelen 1000  (Ethernet)
            RX packets 320582588  bytes 249052790297 (231.9 GiB)
            RX errors 0  dropped 15  overruns 0  frame 0
            TX packets 298828981  bytes 130431593188 (121.4 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
            inet 10.244.1.0  netmask 255.255.255.255  broadcast 0.0.0.0
            inet6 fe80::c066:f4ff:fe9e:3dc9  prefixlen 64  scopeid 0x20<link>
            ether c2:66:f4:9e:3d:c9  txqueuelen 0  (Ethernet)
            RX packets 38098631  bytes 13492636682 (12.5 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 30463742  bytes 13901092750 (12.9 GiB)
            TX errors 0  dropped 15 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1  (Local Loopback)
            RX packets 6353298  bytes 565363964 (539.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 6353298  bytes 565363964 (539.1 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    查看具体的node的ip

    root @ master ➜  /  kubectl get node -n irm-server -o wide
    NAME      STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
    master    Ready     master    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node1     Ready     <none>    72d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.2
    node11    Ready     <none>    288d      v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node12    Ready     <none>    176d      v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node2     Ready     <none>    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node4     Ready     <none>    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node5     Ready     <none>    107d      v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node6     Ready     <none>    25d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node7     Ready     <none>    25d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://17.3.2
    node8     Ready     <none>    1y        v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.2
    node9     Ready     <none>    25d       v1.9.0    <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.2
    

    查看node1的ip

    root @ master ➜  /  kubectl describe node node1
    Name:               node1
    Roles:              <none>
    Labels:             beta.kubernetes.io/arch=amd64
                        beta.kubernetes.io/os=linux
                        kubernetes.io/hostname=node1
    Annotations:        flannel.alpha.coreos.com/backend-data={"VtepMAC":"c2:66:f4:9e:3d:c9"}
                        flannel.alpha.coreos.com/backend-type=vxlan
                        flannel.alpha.coreos.com/kube-subnet-manager=true
                        flannel.alpha.coreos.com/public-ip=18.16.200.131
                        node.alpha.kubernetes.io/ttl=0
                        volumes.kubernetes.io/controller-managed-attach-detach=true
    Taints:             <none>
    CreationTimestamp:  Tue, 08 Oct 2019 20:16:34 +0800
    Conditions:
      Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
      ----             ------  -----------------                 ------------------                ------                       -------
      OutOfDisk        False   Fri, 20 Dec 2019 15:42:27 +0800   Tue, 08 Oct 2019 20:16:34 +0800   KubeletHasSufficientDisk     kubelet has sufficient disk space available
      MemoryPressure   False   Fri, 20 Dec 2019 15:42:27 +0800   Wed, 27 Nov 2019 14:10:16 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory available
      DiskPressure     False   Fri, 20 Dec 2019 15:42:27 +0800   Wed, 27 Nov 2019 14:10:16 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressure
      Ready            True    Fri, 20 Dec 2019 15:42:27 +0800   Wed, 27 Nov 2019 14:10:26 +0800   KubeletReady                 kubelet is posting ready status
    Addresses:
      InternalIP:  18.16.200.131
      Hostname:    node1
    Capacity:
     cpu:     8
     memory:  32394276Ki
     pods:    110
    Allocatable:
     cpu:     6500m
     memory:  29772836Ki
     pods:    110
    System Info:
     Machine ID:                 b6a6cf5e392f9fc1f6073ee61021f733
     System UUID:                683E599A-45DF-358F-03FE-0FAD8CDFA0C2
     Boot ID:                    4571df28-481c-4def-8213-b89dd481e0e2
     Kernel Version:             3.10.0-693.el7.x86_64
     OS Image:                   CentOS Linux 7 (Core)
     Operating System:           linux
     Architecture:               amd64
     Container Runtime Version:  docker://18.6.2
     Kubelet Version:            v1.9.0
     Kube-Proxy Version:         v1.9.0
    PodCIDR:                     10.244.1.0/24
    ExternalID:                  node1
    Non-terminated Pods:         (23 in total)
      Namespace                  Name                                         CPU Requests  CPU Limits  Memory Requests  Memory Limits
      ---------                  ----                                         ------------  ----------  ---------------  -------------
      common-server              test-capital-schedule-6468f8774f-2s6dd       100m (1%)     1 (15%)     1536Mi (5%)      1536Mi (5%)
      common-server              test-p2p-bms-7db78b7c46-9vvnt                0 (0%)        0 (0%)      0 (0%)           0 (0%)
      ingress-nginx              default-http-backend-77b86c5478-9f9jv        10m (0%)      10m (0%)    20Mi (0%)        20Mi (0%)
      ingress-nginx              nginx-ingress-controller-5bb76649d8-5cg4g    0 (0%)        0 (0%)      0 (0%)           0 (0%)
      institution-server         test-institution-6569774458-t8sk9            0 (0%)        0 (0%)      0 (0%)           0 (0%)
      irm-server                 test-flow-server-b477756f-2s5bc              0 (0%)        0 (0%)      0 (0%)           0 (0%)
      irm-server                 test-huishi-schedule-bc5f5d4d5-z22gq         0 (0%)        0 (0%)      1536Mi (5%)      1536Mi (5%)
      irm-server                 test-huishi-server-6c68d8c769-5lf9z          0 (0%)        0 (0%)      2Gi (7%)         2Gi (7%)
      irm-server                 test-message-service-bbf469fd8-bf847         0 (0%)        0 (0%)      0 (0%)           0 (0%)
      irm-server                 test-order-server-5fcc5575bd-67c4r           0 (0%)        0 (0%)      0 (0%)           0 (0%)
      irm-server                 test-urule-54f4b8f84f-l5xbm                  0 (0%)        0 (0%)      0 (0%)           0 (0%)
      kube-system                debug-agent-h88sf                            0 (0%)        0 (0%)      0 (0%)           0 (0%)
      kube-system                heapster-6d4b8f864c-t6ffq                    0 (0%)        0 (0%)      0 (0%)           0 (0%)
      kube-system                kube-flannel-ds-wssv7                        0 (0%)        0 (0%)      0 (0%)           0 (0%)
      kube-system                kube-proxy-hzgln                             0 (0%)        0 (0%)      0 (0%)           0 (0%)
      kube-system                monitoring-influxdb-5db68cd87f-crxb6         0 (0%)        0 (0%)      0 (0%)           0 (0%)
      ops-server                 ali-log-77465ffcd-jhqnc                      0 (0%)        0 (0%)      0 (0%)           0 (0%)
      ops-server                 daohang-7b47c999d5-bmmc7                     0 (0%)        0 (0%)      0 (0%)           0 (0%)
      ops-server                 jishiyu-web-6796c68f97-vbpqh                 0 (0%)        0 (0%)      0 (0%)           0 (0%)
      shitou-market              test-shitou-market-79668fcdf5-zrvvt          0 (0%)        0 (0%)      0 (0%)           0 (0%)
      transaction-server         test-business-transaction-9c6cf9bd6-zhtrt    0 (0%)        0 (0%)      0 (0%)           0 (0%)
      transaction-server         test-callback-transaction-5d58f89b5-468lt    0 (0%)        0 (0%)      0 (0%)           0 (0%)
      transaction-server         test-trade-basic-7d7b6bb6c9-q647g            0 (0%)        0 (0%)      0 (0%)           0 (0%)
    Allocated resources:
      (Total limits may be over 100 percent, i.e., overcommitted.)
      CPU Requests  CPU Limits   Memory Requests  Memory Limits
      ------------  ----------   ---------------  -------------
      110m (1%)     1010m (15%)  5140Mi (17%)     5140Mi (17%)
    Events:         <none>
    

    可以看出InternalIP的值为18.16.200.131

    总结

    NodePort:

    同时还可以给service指定一个nodePort值,范围是30000-32767,集群外就可以使用kubernetes任意一个节点的IP加上30000端口访问该服务了。kube-proxy会自动将流量以round-robin的方式转发给该service的每一个pod。

    Ingress:

    通过域名来访问指定的服务

    参考:

    应用连接到 Service

    从外部访问Kubernetes中的Pod

  • 相关阅读:
    android的窗口创建过程
    android的Binder
    Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
    android的事件分发测试结果
    Don't Store Data in the Application Object
    关于算法
    自定义控件其实很简单3/4
    自定义控件其实很简单2/3
    建设一个能承受500万PV/每天的网站
    strust2里面package的元素排列顺序
  • 原文地址:https://www.cnblogs.com/hongdada/p/12059949.html
Copyright © 2011-2022 走看看