亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes實踐之四十三: Service詳解

發布時間:2020-08-08 00:57:52 來源:ITPUB博客 閱讀:172 作者:百聯達 欄目:云計算
一:簡介

通過Service,可以為一組具有相同功能的容器應用提供一個統一的入口地址,并將請求負載分發到后端各個應用容器上,實現Pod的負載均衡

二:Service定義模版重要屬性說明

1.spec.type Service的類型,指定Service的訪問方式,默認值為ClusterIP.
a.ClusterIP: 虛擬的服務IP地址,該地址用于Kubernetes集群內部的Pod訪問,在Node 上kube-proxy通過設置的Iptables規則進行轉發。
b.NodePort: 使用宿主機的端口,使能夠訪問各Node的客戶端通過Node的IP地址和端口號就能訪問服務。
c.LoadBalancer: 使用外接負載均衡器完成到服務的負載分發

2.spec.sessionAffinity: 是否支持Session,可選值為ClientIP,默認值為空,ClientIP表示將同一個客戶端的訪問請求都轉發到同一個后端Pod。

三:Service的基本用法

1.通常用法,服務作為Pod的負載均衡器。目前的負載分發策略有:
a. RoundRobin: 輪詢模式,即輪詢將請求轉發到后端各個Pod上。
b.SessionAffinity: 基于客戶端IP地址進行回話保持的模式。

2.多端口Service,有時候一個容器應用也可能提供多個端口的服務,那么在Service定義中也可以相應地設置為將多個端口對應到多個應用服務。

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4.   name: webapp
  5. spec:
  6.  ports:
  7.  - port: 8080
  8.    targetPort: 8080
  9.    name: web
  10.  - port: 8005
  11.    targetPort: 8005
  12.    name: management
3.外部服務Service
在某些環境中,應用系統需要將一個外部數據庫作為后端服務進行連接,或將另一個集群或Namespace中的服務作為服務的后端,這時可以通過創建一個無Label Selector的Service來實現(此時需要創建一個和該Service同名的Endpoint)。

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4.   name: mysql-test
  5. spec:
  6.   ports:
  7.     - port: 3306

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Endpoints
  3. metadata:
  4.   name: mysql-test
  5.   namespace: default
  6. subsets:
  7.   - addresses:
  8.     - ip: 120.25.154.90
  9.     ports:
  10.       - port: 3306
4.Headless Service, 在某些應用場景中,開放人員希望自己控制負載均衡的策略,不使用Service提供的默認負載均衡的功能,或者應用程序希望知道屬于同組的其他實例。 此種服務不為Service設置ClusterIP,僅通過Label Selector 找后端的Pod列表返回給調用的客戶端。

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4.   name: nginx
  5.   labels:
  6.     app: nginx
  7. spec:
  8.  ports:
  9.  - port: 80
  10.  clusterIP: None
  11.  selector:
  12.   app: nginx

四:集群外部訪問Pod或Service的方法

1.將容器應用的端口號映射到物理機

a. 通過設置容器級別的hostPort,將容器應用的端口映射到物理機上

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: webapp
  5.   labels:
  6.    app: webapp
  7. spec:
  8.  containers:
  9.  - name: webapp
  10.    image: tomcat
  11.    ports:
  12.    - containerPort: 8080
  13.      hostPort: 8081
b.通過設置Pod級別的hostNetwork=true,該Pod中所以容器的端口號都被直接映射到物理機上。

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: webapp
  5.   labels:
  6.    app: webapp
  7. spec:
  8.  hostNetwork: true
  9.  containers:
  10.  - name: webapp
  11.    image: tomcat
  12.    ports:
  13.    - containerPort: 8080
2.將Service的端口號映射到物理機

a.通過配置nodePort映射到物理機,同時設置Service的類型為NodePort

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4.   name: nginx
  5.   labels:
  6.     app: nginx
  7. spec:
  8.  type: NodePort
  9.  ports:
  10.  - port: 80
  11.  targetPort: 8080
  12.  nodePort: 8081
  13.  selector:
  14.   app: nginx
b.通過設置LoadBalancer映射到云服務商提供的LoadBalancer地址。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苏尼特右旗| 民丰县| 三门峡市| 巫溪县| 台东市| 仙居县| 德兴市| 南江县| 定西市| 浏阳市| 呼伦贝尔市| 鄂尔多斯市| 旺苍县| 万安县| 麻阳| 罗山县| 阿克苏市| 上高县| 钟山县| 达拉特旗| 北海市| 乐亭县| 界首市| 东方市| 赤城县| 澳门| 五常市| 水城县| 澄江县| 灌阳县| 桂阳县| 大庆市| 周至县| 佛冈县| 蒙山县| 仪征市| 灵石县| 吉隆县| 韶关市| 景东| 涟水县|