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

創建ALB Ingress

使用ALB Ingress時,您需要在集群中創建多種資源以配置由ALB Ingress到后端Pod的完整轉發路徑。您可以參考本文快速部署示例后端應用,并創建ALB Ingress以對外提供服務。

閱讀前提示

閱讀本文前,推薦您閱讀ALB Ingress概述以了解ALB Ingress的基本概念。

使用限制

  • 如果您使用的是Flannel網絡插件,則ALB Ingress后端Service服務僅支持NodePort和LoadBalancer類型。

  • AlbConfig、Namespace、Ingress和Service這些資源的名稱不能以aliyun開頭。

  • 低版本Nginx Ingress Controller無法識別Ingress資源中的spec:ingressClassName字段。如果集群中同時存在Nginx Ingress和ALB Ingress,會存在Ingress資源被低版本Nginx Ingress Controller調諧的風險。因此,請及時升級Nginx Ingress Controller版本,或通過Annotation注解項指定ALB Ingress對應的ingressClass。具體操作,請參見升級Nginx Ingress Controller組件ALB Ingress服務高級用法。

場景示例

本教程以四個部署了Nginx的Pod為例,演示如何通過配置ALB Ingress,實現相同域名不同URL路徑的流量轉發。

前端請求

流量轉發至

demo.domain.ingress.top/coffee

coffee服務

demo.domain.ingress.top/tea

tea服務

前提條件

步驟一:安裝ALB Ingress Controller組件

使用ALB Ingress前,請安裝ALB Ingress Controller組件。

創建集群時安裝

創建ACK托管集群ACK專有集群時,在Ingress參數配置區域,選擇安裝ALB Ingress

您可以為ALB云原生網關實例來源選擇新建,使用已有暫不創建選項。這三種選項的對比如下:

重要

如果選擇新建使用已有,則會在安裝ALB Ingress Controller組件后自動創建AlbConfig以及與之匹配的IngressClass資源,在AlbConfig中會自動配置端口為80,協議為HTTP的listener。

對比項

新建

使用已有

暫不創建

適用場景

在集群中第一次使用ALB Ingress,集群中不存在AlbConfig的場景。

希望使用已有ALB實例的場景。

希望在安裝組件后配置AlbConfig的場景。

工作原理

新建AlbConfig后,會使用其中的配置自動創建一個ALB實例。

會自動創建一個AlbConfig,其中的id字段會填入被選擇的ALB實例的ID。

只安裝ALB Ingress Controller,而不創建AlbConfig。

后續操作

網絡類型中選擇ALB實例的網絡類型,然后在虛擬交換機中選擇ALB實例關聯的虛擬交換機。

重要

為保障業務高可用,推薦您選擇2個或以上不同可用區的交換機。

ALB云原生網關實例中選擇希望使用的ALB實例。如果您需要使用AlbConfig關聯該ALB實例,請參見復用已有ALB實例

重要

不支持使用基礎版ALB實例。

使用已有AlbConfig,或后續完成AlbConfig的配置。

在已有集群中安裝

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

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

  3. 組件管理頁面,單擊網絡頁簽,在網絡組件區域,在ALB Ingress Controller組件卡片的右下角單擊安裝。

  4. 安裝組件 ALB Ingress Controller對話框,為選擇ALB 云原生網關實例來源選擇新建使用已有暫不創建選項。這三種選項的對比如下:

    重要

    如果選擇新建使用已有,則會在安裝ALB Ingress Controller組件后自動創建AlbConfig以及與之匹配的IngressClass資源,在AlbConfig中會自動配置端口為80,協議為HTTP的listener。

    對比項

    新建

    使用已有

    暫不創建

    適用場景

    在集群中第一次使用ALB Ingress,集群中不存在AlbConfig的場景。

    希望使用已有ALB實例的場景。

    希望在安裝組件后配置AlbConfig的場景。

    工作原理

    新建AlbConfig后,會使用其中的配置自動創建一個ALB實例。

    會自動創建一個AlbConfig,其中的id字段會填入被選擇的ALB實例的ID。

    只安裝ALB Ingress Controller,而不創建AlbConfig。

    后續操作

    網絡類型中選擇ALB實例的網絡類型,然后在虛擬交換機中選擇ALB實例關聯的虛擬交換機。

    重要

    為保障業務高可用,推薦您選擇2個或以上不同可用區的交換機。

    ALB云原生網關實例中選擇希望使用的ALB實例。如果您需要使用AlbConfig關聯該ALB實例,請參見復用已有ALB實例

    重要

    不支持使用基礎版ALB實例。

    使用已有AlbConfig,或后續完成AlbConfig的配置。

  5. 單擊確定。

說明

若需要在ACK專有集群中通過ALB Ingress訪問服務,在部署服務前需要為ALB Ingress Controller授權。具體操作,請參見為ACK專有集群授予ALB Ingress Controller訪問權限。

步驟二:部署后端服務

控制臺

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

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

  3. 單擊右上角使用YAML創建資源

    1. 示例模板:選擇自定義。

    2. 模板:輸入YAML配置文件代碼。該配置文件用于部署兩個名稱分別為coffeetea的Deployment,以及兩個名稱分別為coffee-svctea-svc的Service。

      YAML配置文件參考

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: coffee
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: coffee
        template:
          metadata:
            labels:
              app: coffee
          spec:
            containers:
            - name: coffee
              image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
              ports:
              - containerPort: 80
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: coffee-svc
      spec:
        ports:
        - port: 80
          targetPort: 80
          protocol: TCP
        selector:
          app: coffee
        type: NodePort
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: tea
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: tea
        template:
          metadata:
            labels:
              app: tea
          spec:
            containers:
            - name: tea
              image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
              ports:
              - containerPort: 80
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: tea-svc
      spec:
        ports:
        - port: 80
          targetPort: 80
          protocol: TCP
        selector:
          app: tea
        type: NodePort
  4. 配置完成后單擊創建,頁面將提示創建成功。

  5. 檢查Deployment和Service創建成功:

    1. 在左側導航欄,選擇工作負載 > 無狀態??刹榭吹矫Q為coffee和tea的Deployment已部署。

    2. 在左側導航欄,選擇網絡 > 服務。可查看到名稱為coffee-svc和tea-svc的Service已部署。

kubectl

  1. 創建并拷貝以下內容到cafe-service.yaml文件中,用于部署兩個名稱分別為coffeetea的Deployment,以及兩個名稱分別為coffee-svctea-svc的Service。

    YAML配置文件參考

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: coffee
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: coffee
      template:
        metadata:
          labels:
            app: coffee
        spec:
          containers:
          - name: coffee
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: coffee-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: coffee
      type: NodePort
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tea
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: tea
      template:
        metadata:
          labels:
            app: tea
        spec:
          containers:
          - name: tea
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: tea-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: tea
      type: NodePort
  2. 執行以下命令,部署兩個Deployment和兩個Service。

    kubectl apply -f cafe-service.yaml

    預期輸出:

    deployment "coffee" created
    service "coffee-svc" created
    deployment "tea" created
    service "tea-svc" created
  3. 執行以下命令,查看應用和服務的狀態。

    1. 執行以下命令,查看應用的狀態。

      kubectl get deployment

      預期輸出:

      NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
      coffee                           1/2     2            1           2m26s
      tea                              1/1     1            1           2m26s
    2. 執行以下命令,查看服務的狀態。

      kubectl get svc

      預期輸出:

      NAME                          TYPE           CLUSTER-IP       EXTERNAL-IP           PORT(S)                 AGE
      coffee-svc                    NodePort       172.16.XX.XX     <none>                80:32056/TCP            9m38s
      tea-svc                       NodePort       172.16.XX.XX     <none>                80:31696/TCP            9m38s

步驟三:創建AlbConfig

說明

如果在步驟一:安裝ALB Ingress Controller組件中,您為ALB云原生網關實例來源選擇了新建使用已有選項,controller會自動創建一個名為“alb”的AlbConfig和名為“alb”的IngressClass資源,您可忽略此步驟。

控制臺

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

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇工作負載 > 自定義資源

  3. 單擊右上角使用YAML創建資源。

    1. 示例模板:選擇自定義。

    2. 模板:輸入YAML配置文件代碼。

      YAML配置文件參考

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      metadata:
        name: alb
      spec:
        config:
          name: alb-test
          addressType: Internet
          zoneMappings:
          - vSwitchId: vsw-uf6ccg2a9g71hx8go****
          - vSwitchId: vsw-uf6nun9tql5t8nh15****
        listeners:
          - port: 80
            protocol: HTTP

      可調整參數說明如下:

      參數

      是否必填

      說明

      metadata.name

      AlbConfig的名稱。

      說明

      AlbConfig的名稱在集群中必須是唯一的。因此,在創建AlbConfig時,您需要確保AlbConfig名稱的唯一性,以避免命名沖突。

      spec.config.name

      ALB實例的名稱。

      spec.config.addressType

      ALB實例的網絡類型。取值如下:

      • Internet(默認值):公網類型。面向公網提供應用型負載均衡服務,公網可訪問。

        說明

        應用型負載均衡通過綁定彈性公網IP進行公網服務,使用公網類型ALB實例將收取彈性公網IP的實例費與帶寬、流量費用,詳情參見按量付費。

      • Intranet:私網類型。面向VPC內部提供應用型負載均衡服務,公網不可訪問。

      spec.config.zoneMappings

      設置ALB交換機ID。創建交換機具體操作請參見創建和管理交換機。

      說明
      • 指定的交換機必須在ALB當前所支持的可用區內,且與集群處于同一VPC。關于ALB支持的地域與可用區,請參見ALB支持的地域與可用區

      • 應用型負載均衡支持多可用區部署,若當前地域支持2個及以上可用區,為保障業務高可用,請至少選擇2個或以上不同可用區的交換機。

      spec.listeners

      配置ALB的監聽端口和協議。本文配置示例為端口80的HTTP監聽。

      監聽定義了流量進入負載均衡的方式和規則,此處建議保留該配置,否則您需要另行創建監聽才可使用ALB Ingress。

  4. 配置完成后單擊創建,頁面將提示創建成功。

  5. 檢查ALB實例創建成功:

    1. 登錄應用型負載均衡ALB控制臺。

    2. 在頂部菜單欄,選擇實例所屬的地域。

    3. 實例頁面,在實例列表可查看到名稱為alb-test的ALB實例,表示實例創建成功。

kubectl

  1. 拷貝以下內容到alb-test.yaml文件中,用于創建AlbConfig。

    YAML配置文件參考

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        name: alb-test
        addressType: Internet
        zoneMappings:
        - vSwitchId: vsw-uf6ccg2a9g71hx8go****
        - vSwitchId: vsw-uf6nun9tql5t8nh15****
      listeners:
        - port: 80
          protocol: HTTP

    可調整參數說明如下:

    參數

    是否必填

    說明

    metadata.name

    AlbConfig的名稱。

    說明

    AlbConfig的名稱在集群中必須是唯一的。因此,在創建AlbConfig時,您需要確保AlbConfig名稱的唯一性,以避免命名沖突。

    spec.config.name

    ALB實例的名稱。

    spec.config.addressType

    ALB實例的網絡類型。取值如下:

    • Internet(默認值):公網類型。面向公網提供應用型負載均衡服務,公網可訪問。

      說明

      應用型負載均衡通過綁定彈性公網IP進行公網服務,使用公網類型ALB實例將收取彈性公網IP的實例費與帶寬、流量費用,詳情參見按量付費。

    • Intranet:私網類型。面向VPC內部提供應用型負載均衡服務,公網不可訪問。

    spec.config.zoneMappings

    設置ALB交換機ID。創建交換機具體操作請參見創建和管理交換機

    說明
    • 指定的交換機必須在ALB當前所支持的可用區內,且與集群處于同一VPC。關于ALB支持的地域與可用區,請參見ALB支持的地域與可用區。

    • 應用型負載均衡支持多可用區部署,若當前地域支持2個及以上可用區,為保障業務高可用,請至少選擇2個或以上不同可用區的交換機。

    spec.listeners

    配置ALB的監聽端口和協議。本文配置示例為端口80的HTTP監聽。

    監聽定義了流量進入負載均衡的方式和規則,此處建議保留該配置,否則您需要另行創建監聽才可使用ALB Ingress。

  2. 執行以下命令,創建AlbConfig。

    kubectl apply -f alb-test.yaml

    預期輸出:

    albconfig.alibabacloud.com/alb-demo created

步驟四:創建IngressClass

IngressClass建議與AlbConfig一一對應。

說明

如果在步驟一:安裝ALB Ingress Controller組件中,您為ALB云原生網關實例來源選擇了新建使用已有選項,controller會自動創建一個名為“alb”的AlbConfig和名為“alb”的IngressClass資源,您可忽略此步驟。

kubectl

  1. 創建并拷貝以下內容到alb.yaml文件中,用于創建IngressClass。

    YAML配置文件參考

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb

    可調整參數說明如下:

    參數

    是否必填

    說明

    metadata.name

    IngressClass的名稱。

    說明

    IngressClass的名稱在集群中必須是唯一的。因此,在創建IngressClass時,您需要確保IngressClass名稱的唯一性,以避免命名沖突。

    spec.parameters.name

    關聯的AlbConfig的名稱。

  2. 執行以下命令,創建IngressClass。

      kubectl apply -f alb.yaml

    預期輸出:

    ingressclass.networking.k8s.io/alb created

控制臺

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

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇工作負載 > 自定義資源。

  3. 單擊右上角使用YAML創建資源。

    1. 示例模板:選擇自定義。

    2. 模板:輸入YAML配置文件代碼。

      YAML配置文件參考

      apiVersion: networking.k8s.io/v1
      kind: IngressClass
      metadata:
        name: alb
      spec:
        controller: ingress.k8s.alibabacloud/alb
        parameters:
          apiGroup: alibabacloud.com
          kind: AlbConfig
          name: alb

      可調整參數說明如下:

      參數

      是否必填

      說明

      metadata.name

      IngressClass的名稱。

      說明

      IngressClass的名稱在集群中必須是唯一的。因此,在創建IngressClass時,您需要確保IngressClass名稱的唯一性,以避免命名沖突。

      spec.parameters.name

      關聯的AlbConfig的名稱。

  4. 配置完成后單擊創建,頁面將提示創建成功。

  5. 檢查IngressClass創建成功:

    1. 在左側導航欄,選擇工作負載 > 自定義資源。

    2. 選擇資源對象瀏覽器頁簽。

    3. API組搜索欄中,輸入IngressClass進行搜索,可查看到對應的IngressClass已創建。

步驟五:創建Ingress

控制臺

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

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

  3. 路由頁面,單擊創建 Ingress,在創建 Ingress對話框配置路由。

    配置項

    說明

    示例值

    網關類型

    可按需選擇ALB Ingress、MSE IngressNginx Ingress三種網關類型。

    關于三種網關的差異,請參見Nginx Ingress、ALB Ingress和MSE Ingress對比。

    ALB Ingress

    名稱

    自定義路由名稱。

    cafe-ingress

    Ingress Class

    自定義Ingress的類。

    alb

    規則

    單擊+ 添加規則可新增多個路由規則。

    • 域名:自定義域名。

    • 路徑映射:配置如下配置項。

      • 路徑:指定服務訪問的URL路徑。本例中不做配置,保留根路徑/。

      • 匹配規則:支持前綴匹配(Prefix)、完整匹配(Exact)默認(ImplementationSpecific)。

      • 服務名稱:選擇目標服務,即K8s內的Service。

      • 端口:選擇服務需要暴露的端口。

    • Ingress支持同一個域名下配置多條路徑。單擊+ 添加路徑新增路徑。

    • 域名:demo.domain.ingress.top

    • 路徑映射

      • 路徑:/tea

      • 匹配規則:默認(ImplementationSpecific)

      • 服務名稱:tea-svc

      • 端口:80

    • 路徑映射

      • 路徑:/coffee

      • 匹配規則:默認(ImplementationSpecific)

      • 服務名稱:coffee-svc

      • 端口:80

    TLS配置

    開啟TLS配置開關,配置安全的路由服務。

    • 域名:自定義域名。

    • 保密字典:根據需要選擇對應的保密字典。

      如果您需要創建Secret,請執行如下操作。

      1. 保密字典右側,單擊創建

      2. 創建 Secret對話框,自定義保密字典的名稱、Cert、Key,然后單擊確定。

      3. 保密字典的下拉框,選擇已創建的Secret。

    單擊+ 新增TLS配置,可配置多條TLS。

    更多詳情,請參見配置HTTPS證書以實現加密通信。

    關閉TLS配置,此示例中不需要配置TLS。

    更多配置

    • 灰度發布:開啟灰度發布開關?;叶纫巹t可按照請求頭、Cookie 、權重三個維度進行設置。

      說明

      請求頭、Cookie 、權重可以只設置一種,若同時設置生效規則按請求頭、Cookie、權重順序匹配。

      • 按請求頭:基于Request Header的流量切分,設置后會添加注解nginx.ingress.kubernetes.io/canary-by-header、nginx.ingress.kubernetes.io/canary-by-header-valuenginx.ingress.kubernetes.io/canary-by-header-pattern。

      • 按Cookie:基于Cookie的流量切分,設置后會添加注解nginx.ingress.kubernetes.io/canary-by-cookie。

      • 按權重:設置請求到指定服務的百分比(值為0~100的整數),設置后會添加注解nginx.ingress.kubernetes.io/canary-weight。

    • 協議:指定后端服務的協議,設置后會添加注解nginx.ingress.kubernetes.io/backend-protocol

      支持HTTP、HTTPS、gRPC、gRPCS四種服務協議。

    • 重寫路徑:將客戶端請求中的路徑重寫后發送到后端服務,設置后會添加注解 nginx.ingress.kubernetes.io/rewrite-target。

    關閉灰度發布,協議和重寫路徑保持默認。此示例中不需要配置灰度發布、協議、重新路徑。

    自定義轉發規則

    開啟自定義轉發規則,可精細化管理入站流量。

    說明

    轉發規則的條件條目上限為10個。

    • 轉發條件下拉框中選擇:

      • 域名

        匹配請求域名,如果設置了多個域名,則域名之間是或的關系。設置后會添加注釋alb.ingress.kubernetes.io/conditions.host-example。

      • 路徑

        匹配請求路徑,如果設置了多個路徑,則路徑之間是或的關系。設置后會添加注釋alb.ingress.kubernetes.io/conditions.path-example

      • HTTP標頭

        以鍵值對形式匹配請求的頭部信息。例如,鍵是headername值是headervalue1。如果設置了多個Header值,則Header之間是或的關系。設置后會添加注釋alb.ingress.kubernetes.io/conditions.http-header-example。

    • 轉發動作下拉框中選擇:

      • 轉發至

        轉發到后端多服務器組。在服務名稱中,請選擇目標服務。在端口中,選擇目標端口號。然后自定義配置權重值。

        說明
        • 如果是Flannel網絡插件集群則不支持ClusterIP類型服務。

        • 選擇轉發至,就不需要配置規則中的路徑映射。

      • 返回固定響應

        設置通過ALB給客戶端返回固定響應內容,可以設置響應狀態碼,正文內容和正文類型。按需求配置響應狀態碼,響應正文類型(可選)、響應正文(可選)。

        響應正文類型

        • text/plain:表示無格式的內容類型。

        • text/css:表示XML格式的內容。

        • text/html:表示HTML格式的內容。

        • application/javascript:表示JavaScript格式的內容。

        • application/json:表示JSON格式內容類型。

    自定義轉發規則支持多種轉發條件及轉發動作,您可以配置域名、路徑、HTTP標頭轉發條件,轉發至、返回固定響應的轉發動作。了解更多配置,請參見自定義ALB Ingress的轉發規則。

    關閉自定義轉發規則。此示例中不需要配置自定義轉發規則。

    注解

    您可自定義注解名稱和值,也可根據名稱選擇或搜索要配置的注解。Ingress的注解請參見Annotations

    單擊+添加注解,可對Ingress無上限地添加注解。

    無需配置,此示例不需要配置注解。

    標簽

    標簽的作用是為Ingress添加對應的標簽,標示該Ingress的特點。

    單擊+添加標簽,可對Ingress無上限地添加標簽。

    無需配置,此示例不需要配置標簽。

  4. 配置完成,在創建Ingress頁面的左下角,單擊確定。

  5. 檢查Ingress創建成功:

    1. 在左側導航欄,選擇網絡 > 路由??刹榭吹矫Q為cafe-ingress的Ingress已部署。

    2. 在cafe-ingress的端點列,可查看到端點信息。

kubectl

  1. 創建并拷貝以下內容到cafe-ingress.yaml文件中,用于創建Ingress。

    YAML配置文件參考

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: cafe-ingress 
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          # 配置Context Path
          - path: /tea
            pathType: ImplementationSpecific
            backend:
              service:
                name: tea-svc
                port:
                  number: 80
          # 配置Context Path
          - path: /coffee
            pathType: ImplementationSpecific
            backend:
              service:
                name: coffee-svc
                port: 
                  number: 80

    可調整參數說明如下:

    參數

    是否必填

    說明

    metadata.name

    Ingress的名稱。

    說明

    Ingress的名稱在集群中必須是唯一的。因此,在創建Ingress時,您需要確保Ingress名稱的唯一性,以避免命名沖突。

    spec.ingressClassName

    關聯的IngressClass的名稱。

    spec.rules.host

    HTTP頭部host字段域名信息,需要配置為您的自有域名。

    當您在瀏覽器中訪問您的自有域名時,例如“http://demo.domain.ingress.top”,瀏覽器會在發送HTTP請求時自動添加一個“Host: demo.domain.ingress.top”的頭部字段。這樣,服務器就可以根據該頭部字段來識別請求的目標主機名。在Kubernetes中,Ingress規則中的host字段會與來自請求的Host頭部字段進行匹配。當匹配成功時,Ingress規則就會將請求路由到相應的后端服務進行處理。

    說明
    • 此處如果配置了自有域名,需要確保該自有域名完成備案,否則可能訪問時無法解析。具體操作,請參見ICP備案流程。

    • 此處如果未配置,那么該Ingress規則將匹配所有到達Ingress Controller的請求。

    spec.rules.http.paths.path

    轉發路徑URL。

    spec.rules.http.paths.pathType

    URL匹配規則。詳情可參考基于URL路徑轉發請求

    spec.rules.http.paths.backend.service.name

    填寫您此前創建的Service名稱。

    spec.rules.http.paths.backend.service.port.number

    填寫您此前創建的Service的服務端口號。

    這個端口號的設置非常重要,因為它決定了在路由到后端服務時使用的端口。確保端口號正確設置,以確保請求可以正確路由到后端服務并被處理。

  2. 執行以下命令,配置coffeetea服務對外暴露的域名和path路徑。

    kubectl apply -f cafe-ingress.yaml

    預期輸出:

    ingress.networking.k8s.io/cafe-ingress created
  3. (可選)執行以下命令獲取ALB實例DNS地址。

    kubectl get ingress

    預期輸出:

    NAME           CLASS    HOSTS                         ADDRESS                                               PORTS   AGE
    cafe-ingress   alb      demo.domain.ingress.top       alb-m551oo2zn63yov****.cn-hangzhou.alb.aliyuncs.com   80      50s

(可選)步驟六:配置域名解析

如果您在創建Ingress時配置了spec.rules.host字段為您的自有域名,您需要將您的域名添加CNAME記錄解析到ALB DNS名稱。后續通過你的自有域名訪問服務。

  1. 登錄容器服務ACK控制臺

  2. 單擊集群名稱,進入集群管理頁面。

  3. 在左側導航欄,選擇網絡 > 路由。

  4. 在cafe-ingress的端點列,復制其對應的DNS名稱。

  5. 完成以下步驟來添加CNAME解析記錄。

    1. 登錄域名解析控制臺

    2. 域名解析頁面單擊添加域名。

    3. 添加域名對話框中輸入您的主機域名,然后單擊確認

      重要

      您的主機域名需已完成TXT記錄驗證。

    4. 在目標域名的操作列單擊解析設置。

    5. 解析設置頁面單擊添加記錄。

    6. 添加記錄面板配置以下信息完成CNAME解析配置,然后單擊確認。

      配置

      說明

      記錄類型

      在下拉列表中選擇CNAME。

      主機記錄

      您的域名的前綴,例如www。

      解析請求來源

      選擇默認。

      記錄值

      輸入域名對應的CNAME地址,即您復制的DNS名稱。

      TTL

      全稱Time To Live,表示DNS記錄在DNS服務器上的緩存時間,本文使用默認值。

步驟七:測試流量轉發

在瀏覽器中輸入“測試域名+URL路徑”,測試流量轉發是否正確。

說明
  • 如果您配置了自有域名,則“測試域名”為您的自有域名。

  • 如果您未配置自有域名,則“測試域名”為cafe-ingress的端點DNS名稱。

測試域名以demo.domain.ingress.top為例:

  1. 在瀏覽器中輸入demo.domain.ingress.top/coffee,將返回coffee-svc對應的后端服務界面。 image

  2. 在瀏覽器中輸入demo.domain.ingress.top/tea,將返回tea-svc對應的后端服務界面。image

相關文檔