日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過使用已有負載均衡的服務暴露應用

通過阿里云負載均衡暴露的服務(Service),在集群外可通過負載均衡域名或<IP:服務端口>的方式訪問服務,在集群內可通過<服務名:服務端口>的方式訪問服務。本文以Nginx應用為例,介紹如何通過使用已有負載均衡的服務來公開應用。

前提條件

使用說明

對于指定已有負載均衡,ACK集群的cloud-controller-manager組件版本不同,對應的監聽策略也有所不同:

  • cloud-controller-manager組件為v1.9.3.59-ge3bc999-aliyun及以上版本:在指定已有負載均衡時,cloud-controller-manager默認不再為該實例處理監聽。您可以通過添加Annotation(注解)service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"來啟用監聽配置,或者手動配置該負載均衡的監聽規則。

  • cloud-controller-manager組件為v1.9.3.59-ge3bc999-aliyun以下版本:在指定已有負載均衡實例時,cloud-controller-manager會自動生成并管理該實例的后端服務器組,并確保監聽器指向這些由K8s管理的后端資源,即使這些監聽器可能之前是由您手動配置的。

展開查看cloud-controller-manager版本的方法:

使用控制臺

在集群的組件管理頁面查看cloud-controller-manager組件版本。

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇運維管理 > 組件管理

  3. 組件管理頁面的核心組件頁簽下,查看Cloud Controller Manager組件的版本信息。

使用kubectl命令行(僅適用于ACK專有版集群

kubectl get pod -n kube-system -o yaml|grep image:|grep cloud-con|uniq

注意事項

在使用已有負載均衡公開應用之前,建議您先了解相關注意事項。詳細信息,請參見:

步驟一:部署示例應用

本文以Nginx無狀態應用為例,指導您如何在ACK中通過負載均衡類型的Service暴露應用。

控制臺操作指導

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇工作負載 > 無狀態

  3. 無狀態頁面,單擊使用鏡像創建,配置應用的基本信息、容器配置、高級配置等。

    1. 應用基本信息頁簽中,配置應用名稱,本示例為my-nginx,其他參數保持默認值,然后單擊下一步

    2. 容器配置頁簽中,設置容器鏡像名稱、端口,其他參數保持默認值,然后單擊下一步

      配置項

      取值

      鏡像名稱

      單擊選擇鏡像,在選擇鏡像及版本對話框單擊制品中心頁簽,然后搜索nginx,選擇名稱為openanolis/nginx的鏡像倉庫,單擊選擇鏡像版本,設置鏡像的版本,完成后單擊確定

      端口

      • 名稱:nginx。

      • 容器端口:80。

    3. 高級配置頁簽中,保持默認,單擊創建,完成Nginx應用的創建。

kubectl操作指導

  1. 使用以下示例應用的YAML內容,創建名為my-nginx.yaml文件。

    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: my-nginx    # 示例應用的名稱。
      labels:
        app: nginx
    spec:
      replicas: 2       # 設置副本數量。
      selector:
        matchLabels:
          app: nginx     # 對應服務中Selector的值需要與其一致,才可以通過服務公開此應用。
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80                                # 需要在服務中暴露該端口。
  2. 執行以下命令,部署示例應用my-nginx。

    kubectl apply -f my-nginx.yaml
  3. 執行以下命令,確認示例應用狀態正常。

    kubectl get deployment my-nginx

    預期輸出:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    my-nginx   2/2     2            2           50s

步驟二:通過使用已有負載均衡的服務公開應用

您可以通過控制臺kubectl兩種方式來創建LoadBalancer類型的服務,并通過其公開應用。

控制臺操作指導

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇網絡 > 服務

  3. 服務頁面,單擊創建,在創建服務對話框中設置服務相關的參數。

    配置項

    描述

    示例

    服務名稱

    輸入Service(服務)的名稱。

    my-nginx-svc

    服務類型

    選擇Service類型,Service網絡支持以下模式,分別對接不同來源和類型的客戶端的訪問,包括:

    虛擬集群IP(ClusterIP)

    虛擬集群IP(ClusterIP)主要服務于集群內部通信,僅當服務類型設置為虛擬的ClusterIP時,才支持服務實例之間的發現。通過使用無頭服務Headless Service,您可以與其他服務發現機制互動,而不必依賴Kubernetes默認提供的基于ClusterIP的服務發現和負載均衡。

    負載均衡(LoadBalancer)

    負載均衡提供了一種方法,通過集成阿里云負載均衡器CLB(Classic Load Balancer)及網絡型負載均衡NLB(Network Load Balancer),可以將集群內部應用對外暴露。相比于NodePort方式,能夠顯著提升應用的可用性和性能。支持配置如下類型:

    節點端口(NodePort)

    節點端口(NodePort)提供了一種便捷的方式,使得外部用戶可以通過節點的IP地址和指定的端口來訪問集群中的服務。通過訪問 <NodeIP>:<NodePort>,用戶能夠連接到NodePort服務,但是實現負載均衡的配置則需要您自己手動完成。

    1. 選擇負載均衡的服務類型。

    2. 單擊使用已有CLB,然后在下拉列表選擇已創建的CLB實例。

      本示例中的CLB實例為新創建,需要為其創建監聽,因此選中強制覆蓋已有監聽

    外部流量策略

    您的服務類型為節點端口負載均衡時,才能設置外部流量策略。關于外部流量策略的詳細介紹,請參見Service快速入門

    • Local:流量只發給本節點的Pod。

    • Cluster:流量可以轉發到集群中其他節點上的Pod。

    Local

    服務關聯

    選擇服務要綁定的后端應用。若不進行關聯部署,則不會創建相關的Endpoints對象。關于服務關聯的詳細介紹,請參見services-without-selectors

    名稱:app

    值:my-nginx

    端口映射

    添加服務端口(對應Service YAML文件中的port)和容器端口(對應Service YAML文件中的targetPort),容器端口需要與后端的Pod中暴露的容器端口一致。

    80

    注解

    為該服務添加一個注解(Annotation),配置負載均衡的參數。更多參數,請參見通過Annotation配置傳統型負載均衡CLB通過Annotation配置網絡型負載均衡NLB

    重要

    請勿復用集群的API Server的負載均衡實例,否則將導致集群訪問異常

    本示例中,將該服務的收費方式設置為按帶寬收費,帶寬峰值設置為2 Mbit/s,從而控制服務的流量。如下所示:

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type:paybybandwidth

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth:2

    標簽

    為該服務添加一個標簽,標識該服務。

    服務刪除保護

    為關鍵業務和敏感數據的Service開啟刪除保護,以避免誤刪帶來的維護成本。啟用后,僅在手動關閉刪除保護后,資源才能被刪除。

    說明

    該功能需先安裝容器安全策略的policy-template-controllergatekeeper組件,您可以單擊立即安裝完成組件的部署。

    關閉

    單擊確定

  4. 服務頁面,單擊目標服務名稱,進入服務詳情頁面,在基本信息區域,單擊該服務的外部端點,例如39.106.XX.XX:80,訪問示例應用。

Kubectl操作指導

  1. 創建Service。

    使用以下示例服務的YAML內容,創建名為my-nginx-svc.yaml的文件。

    • 修改service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id,請將${YOUR_LB_ID}替換為您通過負載均衡管理控制臺創建的負載均衡實例ID。

    • 在使用已有的負載均衡實例時,默認情況下不會為該負載均衡創建監聽或覆蓋已有監聽。如有需要覆蓋監聽,可以設置service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners"true"。本示例中,負載均衡實例為新創建,需要為其創建監聽,因此設為true。更多注解請參見通過Annotation配置傳統型負載均衡CLB通過Annotation配置網絡型負載均衡NLB

    • selector修改為my-nginx.yaml示例應用文件中matchLabels的值(即:app: nginx),從而將該服務關聯至后端應用。

    apiVersion: v1
    kind: Service # 定義資源對象為Service。
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${YOUR_LB_ID}
        service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
      labels:
        app: nginx
      name: my-nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: LoadBalancer

    字段

    說明

    kind

    定義資源對象為Service。

    metadata

    定義Service的名稱、Label和命名空間等基本信息。

    metadata.annotations

    支持豐富的負載均衡相關的注解(Annotations)。例如,在上面的YAML示例中,service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type指定Service的訪問方式為intranet(私網訪問)。更多注解,請參見通過Annotation配置傳統型負載均衡CLB

    spec.selector

    定義Service的選擇器。Service會根據Selector和Pod Label的匹配關系,確定Service所要關聯暴露的后端Pod。

    spec.ports.port

    定義Service暴露給ClusterIP的端口,集群內部客戶端訪問Service的入口,即clusterIP:port

    spec.ports.targetPort

    定義后端Pod的端口。從port進來的流量,經由kube-proxy流入到后端Pod的targetPort上,最后進入容器。

    spec.type

    定義Service的被訪問方式。

    • LoadBalancer:使用阿里云負載均衡公開服務。當Service沒有指定已有負載均衡時,默認創建的負載均衡實例類型為公網。您可以通過設置注解intranet,來創建私網訪問的Service以及相應的私網負載均衡。更多信息,請參見通過Annotation配置傳統型負載均衡CLB通過Annotation配置網絡型負載均衡NLB

    • ClusterIP:在集群內部公開服務,可用于集群內部訪問。

    • NodePort:使用節點的端口映射到后端Service,集群外可以通過節點IP:NodePort訪問。

    • ExternalName:將服務映射到DNS。

  2. 執行以下命令,創建名為my-nginx-svc的服務,并通過其公開應用。

    kubectl apply -f my-nginx-svc.yaml
  3. 執行以下命令,確認LoadBalancer類型的服務已成功創建。

    kubectl get svc my-nginx-svc

    預期輸出:

    NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
    my-nginx-svc   LoadBalancer   172.21.5.82   39.106.XX.XX     80:30471/TCP   5m
  4. 執行以下命令,訪問示例應用。

    curl <YOUR-External-IP> # 請將<YOUR-External-IP>替換為上面獲取到的EXTERNAL-IP地址。

    預期輸出:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a >nginx.org</a>.<br/>
    Commercial support is available at
    <a >nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

傳統型負載均衡CLB

新建CLB資源

新建CLB(Classic Load Balancer)時,您可以根據新建CLB資源描述進行創建。更多信息,請參見創建和管理CLB實例

名稱

描述

名稱

自定義CLB的名稱。

訪問方式

根據需要可選擇公網訪問私網訪問

計費方式

根據需要可選按規格計費(PayBySoec)按量計費(PayByCLCU)更多信息,請參見CLB計費概述

IP版本

根據需要可選擇IPv4IPv6

調度算法

支持輪詢(RR)或加權輪詢(WRR)兩種策略。RR(默認取值):按照訪問順序依次將外部請求依序分發到后端服務器;WRR:權重值越高的后端服務器,被輪詢到的次數(概率)也越高。

訪問控制

提供監聽級別的訪問控制。詳細信息,請參見訪問控制

健康檢查

支持TCP和HTTP協議。開啟健康檢查后,您可以通過健康檢查來判斷后端服務器的業務可用性。健康檢查原理,請參見CLB健康檢查工作原理

其他

您還可以通過Annotation配置傳統型負載均衡。詳細信息,請參見通過Annotation配置傳統型負載均衡CLB

使用已有資源

您可以從下拉菜單中選擇已有的CLB(Classic Load Balancer)實例進行復用。可以選擇是否勾選強制覆蓋已有監聽,更多信息請參見,使用已有的負載均衡,并強制覆蓋已有監聽

重要

復用CLB實例存在一些限制,以及相關的注意事項,詳細信息請參見哪些負載均衡可以被復用?

配置相關資源

名稱

描述

調度算法

支持輪詢(RR)或加權輪詢(WRR)兩種策略。RR(默認取值):按照訪問順序依次將外部請求依序分發到后端服務器;WRR:權重值越高的后端服務器,被輪詢到的次數(概率)也越高。

訪問控制

提供監聽級別的訪問控制。詳細信息,請參見訪問控制

健康檢查

支持TCP和HTTP協議。開啟健康檢查后,您可以通過健康檢查來判斷后端服務器的業務可用性。健康檢查原理,請參見負載均衡健康檢查工作原理

其他

您還可以通過Annotation配置傳統型負載均衡。詳細信息,請參見通過Annotation配置傳統型負載均衡CLB

網絡型負載均衡NLB

新建NLB資源

新建網絡型負載均衡NLB(Network Load Balancer ),您可以根據新建NLB資源描述進行創建。更多信息,請參見創建和管理NLB實例

名稱

描述

名稱

自定義NLB的名稱。僅新建NLB需要配置。

訪問方式

根據需要可選擇公網訪問私網訪問

計費方式

按量計費。更多信息,請參見NLB產品計費

IP版本

根據需要可選擇IPv4雙棧

調度算法

選擇一種調度算法。

  • 輪詢:按照訪問順序依次將外部請求分發到后端服務器。

  • 加權輪詢(默認):權重值越高的后端服務器,被輪詢到的次數(概率)也越高。

  • 源IP哈希:基于源IP的一致性哈希,相同的源地址會調度到相同的后端服務器。

  • 四元組哈希:基于四元組(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流會調度到相同的后端服務器。

  • QUIC ID哈希:基于QUIC ID的一致性哈希,支持將同一個QUIC ID的請求哈希到同一臺后端服務器上。

  • 加權最小連接數:除了根據每臺后端服務器設定的權重值來進行輪詢,同時還考慮后端服務器的實際負載(即連接數)。當權重值相同時,當前連接數越小的后端服務器被輪詢到的次數(概率)也越高。

健康檢查

開啟或關閉健康檢查。

  • TCP(默認):通過發送SYN握手報文來檢測服務器端口是否存活。

    • 健康響應超時時間:輸入接收來自運行狀況檢查的響應需要等待的時間。如果后端服務器在指定的時間內沒有正確響應,則判定為健康檢查失敗。

    • 健康間隔時間:輸入用于健康檢查的時間間隔。

    • 健康閾值:健康檢查連續成功多少次后,將后端服務器的健康檢查狀態由失敗判定為成功的次數。

    • 不健康閾值:健康檢查連續失敗多少次后,將后端服務器的健康檢查狀態由成功判定為失敗的次數。

  • HTTP:通過發送HEAD或GET請求模擬瀏覽器的訪問行為來檢查服務器應用是否健康。

    • 域名:輸入健康檢查的域名。

      • 使用后端服務器內網IP(默認):使用后端服務器的內網IP地址作為健康檢查的域名。

      • 指定特定域名:輸入一個域名。

    • 路徑:輸入健康檢查頁面的URL。

    • 健康狀態返回碼:可以選擇http_2xx(默認)、http_3xxhttp_4xxhttp_5xx

其他

您還可以通過Annotation配置網絡型負載均衡。詳細信息請參見通過Annotation配置網絡型負載均衡NLB

專有網絡

集群默認專有網絡地域和VPC ID。

虛擬交換機

您可以選擇集群默認專有網絡下,已支持的可用區對應的虛擬交換機,還可以單擊創建虛擬交換機選擇新建。

使用已有資源

您可以從下拉菜單中選擇已有的NLB(Network Load Balancer)實例進行復用。還可以根據需要是否勾選強制覆蓋已有監聽,詳細信息請參見使用已有的負載均衡

重要

復用NLB實例存在一些限制,以及相關的注意事項,詳細信息請參見哪些負載均衡可以被復用?

配置相關資源

名稱

描述

調度算法

選擇一種調度算法。

  • 輪詢:按照訪問順序依次將外部請求分發到后端服務器。

  • 加權輪詢(默認):權重值越高的后端服務器,被輪詢到的次數(概率)也越高。

  • 源IP哈希:基于源IP的一致性哈希,相同的源地址會調度到相同的后端服務器。

  • 四元組哈希:基于四元組(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流會調度到相同的后端服務器。

  • QUIC ID哈希:基于QUIC ID的一致性哈希,支持將同一個QUIC ID的請求哈希到同一臺后端服務器上。

  • 加權最小連接數:除了根據每臺后端服務器設定的權重值來進行輪詢,同時還考慮后端服務器的實際負載(即連接數)。當權重值相同時,當前連接數越小的后端服務器被輪詢到的次數(概率)也越高。

健康檢查

開啟或關閉健康檢查。

  • TCP(默認):通過發送SYN握手報文來檢測服務器端口是否存活。

    • 健康響應超時時間:輸入接收來自運行狀況檢查的響應需要等待的時間。如果后端服務器在指定的時間內沒有正確響應,則判定為健康檢查失敗。

    • 健康間隔時間:輸入用于健康檢查的時間間隔。

    • 健康閾值:健康檢查連續成功多少次后,將后端服務器的健康檢查狀態由失敗判定為成功的次數。

    • 不健康閾值:健康檢查連續失敗多少次后,將后端服務器的健康檢查狀態由成功判定為失敗的次數。

  • HTTP:通過發送HEAD或GET請求模擬瀏覽器的訪問行為來檢查服務器應用是否健康。

    • 域名:輸入健康檢查的域名。

      • 使用后端服務器內網IP(默認):使用后端服務器的內網IP地址作為健康檢查的域名。

      • 指定特定域名:輸入一個域名。

    • 路徑:輸入健康檢查頁面的URL。

    • 健康狀態返回碼:可以選擇http_2xx(默認)、http_3xxhttp_4xxhttp_5xx

其他

您還可以通過Annotation配置網絡型負載均衡。詳細信息請參見通過Annotation配置網絡型負載均衡NLB

專有網絡

集群默認專有網絡地域和VPC ID。

虛擬交換機

您可以選擇集群默認專有網絡下,已支持的可用區對應的虛擬交換機,還可以單擊創建虛擬交換機選擇新建。

后續操作

如果您有查看、更新、刪除Service的需求,例如需要修改Service所關聯的公網負載均衡,可通過如下操作實現。

控制臺操作指導

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇網絡 > 服務

  3. 服務頁面,單擊目標服務操作列的更新刪除,對Service進行查看、更新、刪除操作。

kubectl操作指導

更新Service

  • 方式1:執行以下命令,更新Service。

    kubectl edit service my-nginx-svc
  • 方式2:手動刪除舊的Service,修改YAML文件后,重新創建Service。

    kubectl apply -f my-nginx-svc.yaml

查看Service

執行以下命令,查看Service。

kubectl get service my-nginx-svc

預期輸出:

NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
my-nginx-svc   LoadBalancer   172.21.XX.XX   192.168.XX.XX     80:31599/TCP   5m

刪除Service

執行以下命令,刪除Service。

kubectl delete service my-nginx-svc