原理看这篇:Endpoint手动创建模式。https://blog.csdn.net/qq_43542296/article/details/124719178?fromshare=blogdetail&sharetype=blogdetail&sharerId=124719178&sharerefer=PC&sharesource=qq_43542296&sharefrom=from_link
步骤:
- 创建service、工作负载先随意指定一个、服务名为:aia-accesscontrol-target-svc
- 修改服务的yml文件:
- 删除spec.ports[0].targetPort属性(
)、spec.selector.app属性# spec.ports[0].port:Service对象自身暴露的端口 # spec.ports[0].targetPort:Service把请求转发到后端Pod的targetPort端口上 # 由于这里要访问本地服务,应该是本地服务的端口,我们将来在endpoints中定义,这里没有用,删除即可; # 后面生成endpoint后,会自动补上 - 修改(或者建服务时定义合理就不用改了)spec.ports[0].name: http-7777属性值为和其它服务便于区分的值如:http-aia-accesscontrol-target-svc-7777
- 删除metadata.labels.app属性
- 修改后效果:
- 删除spec.ports[0].targetPort属性(
- 打开kubectl控制面板进入/home/endpoints目录下,建立aia-accesscontrol-target-svc.yml文件,内容如下:
apiVersion: v1 kind: Endpoints metadata: name: aia-accesscontrol-target-svc namespace: local subsets: - addresses: - ip: 192.168.6.151 #本地IP ports: - port: 7777 #本地port name: http-aia-accesscontrol-target-svc-7777 #这个值和上面的端口名即spec.ports[0].name的值保持一致 protocol: TCP - 应用第3步的文件:kubectl apply -f aia-accesscontrol-target-svc.yml
- kubectl get endpoints命令验证一下是否存在刚刚建立的对应端点