k8s中statefulet配置外部或跨名称空间的endpoint
时间:2025-08-04 15:14 来源:未知 作者:liangzh 点击:次
1、创建service时不指定selector标签选择器,但需要指定service的port端口、端口的name、端口协议等,这样创建出来的service因为没有指定标签选择器就不会自动创建endpoint;
apiVersion: v1
kind: Service
name: dev-zookeeper-headless
namespace: dev2-core
spec:
clusterIP: None
ports:
- name: zk
port: 2181
protocol: TCP
targetPort: 2181
2、手动创建一个与service同名的endpoint,endpoint中定义外部服务的IP和端口,endpoint的名称一定要与service的名称一样,端口协议也要一样,端口的name也要与service的端口的name一样,不然endpoint不能与service进行关联。
完成以上两步,k8s会自动将service和同名的endpoint进行关联,这样,k8s集群内的应用服务直接访问这个service就可以相当于访问外部的服务了。
apiVersion: v1
kind: Endpoints
subsets:
- addresses:
- hostname: dev-zookeeper-0
ip: 172.27.193.215
- hostname: dev-zookeeper-2
ip: 172.27.197.115
- hostname: dev-zookeeper-1
ip: 172.27.197.161
ports:
- name: zk
port: 2181
protocol: TCP
(责任编辑:liangzh) |