kubernetes&&基礎學習3

Service

Service的概念

kubernetes Service定義了這樣一種抽象:一個Pod的邏輯分組,一種可以訪問它們的策略,通常稱爲微服務。
這一組Pod能夠被Service訪問到,通常是通過Label Selector
通過Label標籤,監控一組Pod
在這裏插入圖片描述
Service能夠提供負載均衡的能力,但是在使用上有以下的限制:

  • 只提供4層負載均衡能力,而沒有7層功能,但有時我們可能需要更多的匹配規則來轉發請求,這點上4層負載均衡是不支持的

Service的類型

Service在k8s中有以下四種類型:

  • ClusterIp : 默認類型,自動分配一個僅Cluster內部可以訪問的虛擬IP
  • NodePort : 在ClusterIP 的基礎上爲每臺機器上綁定一個端口,這樣就可以通過NodeIP:NodePort來訪問該服務
  • LoadBalancer :在NodePort的基礎上,藉助cloud provider創建一個外部負載均衡器,並將請求轉發到NodeIP:NodePort
  • ExternalName : 把集羣外部的服務引入到集羣內部來,在集羣內部直接使用,沒有任何類型代理被創建,這隻有kubernetes 1.7或更高版本的kube-dns才支持

在這裏插入圖片描述

VIP和Service代理

在這裏插入圖片描述

代理模式的分類

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

# 查看所有svc信息
kubectl  get  svc

ClusterIP

在這裏插入圖片描述
在這裏插入圖片描述

實現過程

創建Deployment
在這裏插入圖片描述
爲Deployment綁定svc
在這裏插入圖片描述

# 查詢全部svc信息
kubectl  get  svc
# 查詢ipvs信息
ipvsadm  -Ln
# 通過指定文件的方式刪除對應的svc
kubectl  delete  -f  svc.yaml

Headless Service

在這裏插入圖片描述

NodePort

在這裏插入圖片描述
在這裏插入圖片描述

LoadBalancer

在這裏插入圖片描述

需要花錢

ExternalName

在這裏插入圖片描述
引入外部服務集羣至服務內部,令內部服務可以使用外部負載集羣。如引入mysql集羣。

7層代理

在這裏插入圖片描述
在這裏插入圖片描述

部署Ingress-Nginx

# 下載Ingress的yaml文件
wget  https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
# 使用yaml文件創建Ingress-nginx的Pod
kubectl  apply  -f  mandatory.yaml
# 下載svc的yaml文件
wget  https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
# 運行
kubectl  apply  -f  service-nodeport.yaml

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

# 查看當前ingress規則
kubectl  get  ingress

Ingress HTTPS 代理訪問

在這裏插入圖片描述
在這裏插入圖片描述

Nginx 進行 BasicAuth

在這裏插入圖片描述

Nginx進行重寫

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章