1. 首先创建一个没有selector的service

注意⚠️:

  1. 创建一个没有selector的不需要通过标签匹配集群内不Pod的service
  2. 没有selector的service不会创建同名的endpoint资源
  1. apiVersion: v1
  2. kind: service
  3. metedata:
  4. labels:
  5. app: redis-external
  6. name: redis-external
  7. spec:
  8. ports:
  9. - name: redis-external
  10. port: 6379
  11. protocal: TCP
  12. targetPort: 6379
  13. sessionAffinity: None
  14. type: ClusterIP

2. 创建同名的Endpoints

没有selector的service是不会创建同名的Endpoints的,所以我们要手动创建同名Endpoints并编辑配置外部服务的IP和端口

apiVersion: v1
kind: Endpoints
metadata:
  labels:
    app: redis-external
  name: redis-external    # 要与service名称相同
subnets:
- addressses:
  - ip: 192.168.100.10    # 外部服务的IP地址
  ports:
  - name: redis-external  # 需要与service的port名称一致
    port: 6379            # 外部服务的端口
    protocol: TCP         # 需要与service的协议一致

注意⚠️:如果外部服务变更的话编辑这个Endpoints,将IP变更就好。