Endpoints是指一个服务的端点,当你的服务需要访问外部资源时,而你又不想把外部地址配置到代码里,这时,你可以在k8s里建立一个kind为Endpoints的服务,它可以帮助你的程序解析这个外部地址。
service是通过访问同名的endpoints来访问pod的。所以我们也可以通过这种方法去访问外部服务,以避免在代码中暴露外部服务的实际访问地址,同样也可以用ingress来实现域名访问。

例如在集群内通过访问集群内服务outk8sservice.linkiito:18100来请求物理服务器193.169.203.64上的18100端口,样例如下:

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
---
apiVersion: v1
kind: Endpoints
metadata:
name: outk8sservice
namespace: linkiiot
subsets:
- addresses:
- ip: 193.169.203.64
ports:
- port: 18100
protocol: TCP

---
apiVersion: v1
kind: Service
metadata:
labels:
app: outk8sservice
name: outk8sservice
namespace: linkiiot
spec:
ports:
- port: 18100
protocol: TCP
targetPort: 18100
sessionAffinity: None
type: ClusterIP