k8s利用endpoints和service访问外部服务


一、原理解析

  在k8s集群中我们通过创建service去访问对应pod内的服务,而在创建service的时候会同时创建一个与service同名的endpoints对象,endpoints与pod实际建立映射

service是通过访问同名的endpoints来访问pod的。所以我们也可以通过这种方法去访问外部服务,以避免在代码中暴露外部服务的实际访问地址。

 

二、创建Endpoints

[root@localhost ~]# cat >> mysql-endpoints.yaml <<EOF
apiVersion: v1
kind: Endpoints
metadata:
  name: mysql-master-svc
  namespace: default
subsets:
- addresses:
  - ip: 127.0.0.1
  ports:
  - port: 3306
    protocol: TCP
[root@localhost ~]# kubectl apply -f mysql-endpoints.yaml

 注:addresses处的ip和port请根据实际的数据库地址和端口进行修改

三、创建service

[root@localhost ~]# cat >> mysql-service.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
  labels:
    app: mysql-master-svc
  name: mysql-master-svc
  namespace: default
spec:
  ports:
  - port: 3306
    protocol: TCP
    targetPort: 3306
  sessionAffinity: None
  type: ClusterIP
[root@localhost ~]# kubectl apply -f mysql-service.yaml

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM