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

通過使用自動創建CLB的服務公開Kubernetes應用

CLB支持在ACK集群中使用,通過LoadBalancer類型Service暴露應用。當您沒有可用的CLB實例時,Cloud Controller Manager(CCM)組件可以為LoadBalancer類型服務自動創建CLB,并對其進行管理。本文以Nginx應用為例,介紹如何通過使用自動創建CLB的服務來公開應用。

注意事項

  • CCM只為Type=LoadBalancer類型的服務配置CLB。對于非LoadBalancer類型的服務,則不會為其配置負載均衡。

    重要

    Type=LoadBalancer的服務變更為其他類型時,CCM會刪除為該CLB添加的配置,從而造成無法通過該CLB訪問服務。

  • CCM使用聲明式API,會在一定條件下自動根據服務的配置刷新CLB配置。當service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 設置為true時,您自行在CLB控制臺上修改的配置均存在被覆蓋的風險。

    重要

    請勿在CLB控制臺上手動修改Kubernetes創建并維護的CLB的任何配置,否則有配置丟失的風險,造成服務不可訪問。

  • 已創建的LoadBalancer類型Service不支持重新指定CLB。如果您需要更換CLB,請重新創建Service。

CLB配額限制

  • CCM會為Type=LoadBalancer類型的Service創建CLB。默認情況下一個用戶可以保有60個CLB實例。

  • CCM會根據Service中定義的端口創建CLB監聽。默認情況下一個CLB實例可以添加50個監聽。

  • CCM會根據Service的配置將ECS掛載到CLB后端服務器組中。

    • 默認情況下一個ECS實例可掛載的后端服務器組的數量為50個。

    • 默認情況下一個CLB實例可以掛載200個后端服務器。

    說明

    如需更大配額,您可以前往配額管理頁面,并根據控制臺提示申請配額。

    關于更多CLB使用限制,請參見使用限制

步驟一:部署示例應用

以下應用部署通過kubectl命令行方式進行。如果您需要通過控制臺部署應用,請參見創建無狀態工作負載Deployment

  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: 3       #設置副本數量。
      selector:
        matchLabels:
          app: nginx     #對應服務中Selector的值需要與其一致,才可以通過服務公開此應用。
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: registry.aliyuncs.com/acs/netdia:latest     #替換為您實際的鏡像地址,格式為:<image_name:tags>。
            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   3/3     3            3           50s

步驟二:通過使用自動創建CLB的服務公開應用

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

控制臺方式

  1. 登錄容器服務管理控制臺

  2. 在控制臺左側導航欄,單擊集群

  3. 集群列表頁面,單擊目標集群名稱或者目標集群右側操作列下的詳情

  4. 在集群管理頁左側導航欄,選擇網絡 > 服務

  5. 服務頁面,單擊右上角的創建

  6. 創建服務對話框中,設置服務的相關參數。

    參數

    描述

    服務名稱

    輸入服務的名稱。

    服務類型

    選擇服務類型,即服務訪問的方式。依次選擇:負載均衡 -> 新建SLB -> 公網訪問。可以選擇按規格計費或者按量付費,本文示例選擇按量付費。

    外部流量策略

    設置外部流量策略。

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

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

    說明

    服務類型為節點端口或負載均衡時,才能設置外部流量策略。

    服務關聯

    選擇關聯該服務要綁定的后端應用。

    端口映射

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

    注解

    為該服務添加一個注解(Annotation),配置負載均衡的參數。

    標簽

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

  7. 單擊創建

    服務頁面,可以看到新創建的服務。

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

Kubectl方式

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

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

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nignx
      name: my-nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: LoadBalancer

  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地址。