K8S服務發現與負載均衡原理


一、Pod訪問方式

ClusterIP Service(內部)

NodePort Service(由內而外)

LoadBalance Service(外部)

Ingress(外部)

 

1、ClusterIP

 

 

2、NodePort 

 

 

3、LoadBalance

 

 

4、Ingress

 

 

二、服務發現

Pod內服務調用:localhost:容器內應用端口

Pod間服務調用:服務名.namespace名:服務端口   (namespace名相當於域名)

外部服務調用: 負載均衡器IP:負載均衡器內映射端口或Ingress URL

 1、pod間調用

創建service

vi service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  selector:
    app: web_server
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80  

使service生效

 kubectl apply -f service.yaml

查看service

 

運行busybox

kubectl run busybox --rm -it --image=busybox  /bin/sh

訪問nginx-svc

通過IP地址訪問

 

 查看index.html

 

 

通過服務名訪問

wget nginx-svc.default:8080

 

 這就是一個K8s集群里Pod之間的訪問。

 

2、外部訪問Nginx(外部服務調用)

1)、修改yaml配置

vi service.yaml

 

 端口為30000

 

2)、測試

http://192.168.127.136:30000/ 或者http://192.168.127.137:30000/

 

 因為在虛擬機使用,使用的是192內網地址。如果是雲服務器,則將外網地址替換192地址。

 

三、訪問策略

支持的網絡協議(Calico、Canal等,flannel不支持策略控制)

podSelector

ingress/egress

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM