You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Kubespray集群,如何为Kubernetes Service显式定义Endpoint?

解决方法:手动绑定Service与自定义Endpoint

好问题!其实你看到的apiserver的配置逻辑就是关键——当Service没有指定selector时,Kubernetes不会自动生成和维护Endpoint,这时候你就可以手动创建自定义的Endpoint资源,把外部可访问的节点IP和服务端口关联起来,完美适配你想让Rook/Ceph Dashboard从外部访问的需求。

具体步骤:

1. 修改Rook/Ceph Dashboard的Service,移除selector字段

首先找到你当前的Rook/Ceph Dashboard Service(一般在rook-ceph命名空间下),把它的selector部分删掉。这样K8s就会停止自动生成Endpoint,转而允许你手动配置。

示例修改后的Service YAML(假设原Service名为rook-ceph-dashboard):

apiVersion: v1
kind: Service
metadata:
  name: rook-ceph-dashboard
  namespace: rook-ceph
  # 保留原有的annotations、labels等
spec:
  type: ClusterIP  # 保持ClusterIP类型,和apiserver一致
  ports:
    - name: https
      port: 8443  # Service暴露的端口
      targetPort: 8443  # Dashboard实际监听的端口
  # 移除原来的selector字段,比如 selector: app=rook-ceph-dashboard

执行更新:

kubectl apply -f your-modified-service.yaml

2. 手动创建对应的Endpoint资源

接下来创建一个和Service同名、同命名空间的Endpoint资源,指定你想要的外部可访问IP(比如主节点的主机IP,和apiserver的Endpoint逻辑一致)以及目标端口。

示例Endpoint YAML:

apiVersion: v1
kind: Endpoints
metadata:
  name: rook-ceph-dashboard
  namespace: rook-ceph
subsets:
  - addresses:
      - ip: 192.168.103.254  # 替换成你的主节点IP,或者能访问Dashboard的节点IP
    ports:
      - name: https
        port: 8443  # 和Service的targetPort保持一致

执行创建:

kubectl apply -f your-endpoint.yaml

3. 验证配置是否生效

执行以下命令检查Service和Endpoint是否关联成功:

kubectl describe service rook-ceph-dashboard -n rook-ceph

你应该能看到Endpoints字段显示你刚才指定的节点IP,就像你贴出的kubernetes Service的输出一样。

关键注意事项:

  • 同名同namespace:Endpoint必须和对应的Service完全同名,并且在同一个命名空间下,K8s才会把它们关联起来。
  • 端口匹配:Endpoint的端口名称、端口号要和Service的targetPort对应上。
  • 网络可达性:确保你指定的节点IP在外部网络是可达的,并且节点的防火墙允许访问该端口(比如8443)。
  • 多节点负载:如果有多个节点可以访问Dashboard,你可以在Endpoint的addresses列表里添加多个IP,实现简单的负载均衡。

这样配置完成后,你就可以通过节点IP:Service端口(比如192.168.103.254:8443)从集群外部访问Rook/Ceph Dashboard了,逻辑和你看到的apiserver的外部访问方式完全一致。

内容的提问来源于stack exchange,提问作者Jürgen Zornig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:08:02