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