我尝试在群集A上创建指向群集B的IP地址的服务。我没有群集B的域名,因此无法使用ExternalName。我尝试执行此操作的方法是在群集A上创建不带选择器的服务,然后手动为该服务创建将指向群集B的EndpointSlice资源。根据Kubernetes文档,我需要“通过在EndpointSlice上设置www.example.com标签将EndpointSlice链接到服务kubernetes.io/service-name”,但即使这样做了,我的服务显然没有端点。
代码
endpointslice.yaml
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: hack-svc-1
labels:
kubernetes.io/service-name: hack-svc
kubernetes.io/managed-by: manual
addressType: IPv4
ports:
- port: 80
endpoints:
- addresses:
- "cluster B's IPv4 address here"
conditions:
ready: true
service.yaml
apiVersion: v1
kind: Service
metadata:
name: hack-svc
spec:
ports:
- port: 80
kubectl describe service hack-svc
之后:
Name: hack-svc
Namespace: default
Labels: <none>
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: <IPv4 address here>
IPs: <IPv4 address here>
Port: http 80/TCP
TargetPort: 80/TCP
Endpoints: <none> <-- No endpoints??
Session Affinity: None
Events: <none>
如何将EndpointSlice与我的服务关联?
1条答案
按热度按时间2vuwiymt1#
EndpointSlice API是Endpoints API的可伸缩和可扩展的替代方案。EndpointSlice从服务的pod中收集IP地址、端口、就绪性和拓扑等信息。请遵循此tutorial并验证在为群集配置EndpointSlice时是否存在任何不匹配,这在我的案例中很有帮助。