kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-user LoadBalancer 172.16.15.253 172.27.0.17 443:30123/TCP 40h
kubelb-internet LoadBalancer 172.16.14.118 139.155.60.228 443:31106/TCP 46h
这两个service是用于访问集群api的的,类型loadbalancer,EXTERENAL-IP一个是内网地址,一个是外网地址。
kubectl get svc kube-user -o yaml
labels:
component: apiserver
provider: kubernetes
name: kube-user
namespace: default
resourceVersion: "50472"
selfLink: /api/v1/namespaces/default/services/kube-user
uid: d51c4d9a-6ce7-49de-a8ef-9832ac23fe8d
spec:
clusterIP: 172.16.15.253
externalTrafficPolicy: Cluster
ports:
- name: https
nodePort: 30123
port: 443
protocol: TCP
targetPort: 60002
sessionAffinity: None
type: LoadBalancer
可以看到没有绑定workload,外网访问kubelb-internet 也一样。这样做到作用把外部服务加入集群,这时候我们再来看endpoint,和kube-user同名
kubectl get endpoints kube-user
NAME ENDPOINTS AGE
kube-user 169.254.128.10:60002 40h
kubectl get endpoints kubelb-internet
NAME ENDPOINTS AGE
kubelb-internet 169.254.128.10:60002 46h
169.254.128.10 是什么地址,集群内不能ping通。猜测是iptables或者ipvs用作负载均衡的地址
ipvsadm 查看到了地址,通过169.254.128.10负载均衡到三个master节点
这是其中一个master节点到ipvsadm
ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 139.155.60.228:https rr
-> 169.254.128.10:60002 Masq 1 0 0
TCP 172-27-16-13:https rr
-> 169.254.128.10:60002 Masq 1 4 0
TCP 172-27-16-13:https rr
-> 169.254.128.10:60002 Masq 1 0 0
TCP 172-27-16-13:https rr
-> 169.254.128.10:60002 Masq 1 0 0
-> 172.16.0.133:domain Masq 1 0 0
TCP 172.27.0.17:https rr
-> 169.254.128.10:60002 Masq 1 0 0
TCP 172-27-16-13:30123 rr
-> 169.254.128.10:60002 Masq 1 57 0
TCP 172-27-16-13:31106 rr
-> 169.254.128.10:60002 Masq 1 122 0
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。