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

通過AlbConfig配置ALB實(shí)例

更新時(shí)間:

AlbConfig是由ALB Ingress Controller提供的CRD資源,ALB Ingress Controller使用AlbConfig配置ALB實(shí)例和監(jiān)聽。本文介紹如何創(chuàng)建、修改、更新AlbConfig以及開啟日志服務(wù)等操作。

功能索引

ALB實(shí)例配置

監(jiān)聽配置

前提條件

注意事項(xiàng)

  • 推薦優(yōu)先使用kubectl edit命令直接修改、更新資源的配置。如果必須使用kubectl apply命令來修改、更新資源,請?jiān)趫?zhí)行kubectl apply命令之前先執(zhí)行kubectl diff命令預(yù)覽變更點(diǎn),確保變更符合預(yù)期,然后再執(zhí)行kubectl apply命令將變更應(yīng)用到Kubernetes集群。

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

創(chuàng)建AlbConfig

一個(gè)AlbConfig對應(yīng)一個(gè)ALB實(shí)例,如果您需要使用多個(gè)ALB實(shí)例,可以通過創(chuàng)建多個(gè)AlbConfig實(shí)現(xiàn)。創(chuàng)建AlbConfig操作如下。

重要

如果您在安裝ALB Ingress Controller組件時(shí),為ALB云原生網(wǎng)關(guān)實(shí)例來源選擇了新建使用已有選項(xiàng),Controller會自動創(chuàng)建一個(gè)名為“alb”的AlbConfig和名為“alb”的IngressClass資源。

  1. 創(chuàng)建并拷貝以下內(nèi)容到alb.yaml文件中,用于創(chuàng)建AlbConfig。

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        name: alb
        addressType: Internet
        zoneMappings:               
        - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # 替換為您的虛擬交換機(jī)的ID
        - vSwitchId: vsw-uf6nun9tql5t8nh15****
      listeners:
        - port: 80
          protocol: HTTP

    參數(shù)

    說明

    spec.config.name

    表示ALB實(shí)例的名稱。

    spec.config.addressType

    表示負(fù)載均衡的地址類型。取值如下:

    • Internet(默認(rèn)值):ALB實(shí)例會擁有公網(wǎng)IP地址,DNS域名被解析到公網(wǎng)IP,因此可以在公網(wǎng)環(huán)境下訪問。

    • Intranet:ALB實(shí)例將只擁有私網(wǎng)IP地址,DNS域名被解析到私網(wǎng)IP,因此只能在其所在的VPC內(nèi)被訪問。

    重要

    addressType參數(shù)僅在創(chuàng)建AlbConfig時(shí)被解析,后續(xù)更新AlbConfig不產(chǎn)生效果。

    spec.config.zoneMappings

    用于設(shè)置ALB Ingress使用的虛擬交換機(jī)ID。在多個(gè)可用區(qū)的地域中,您至少需要指定兩個(gè)處于不同可用區(qū)的交換機(jī)。對于只包含單個(gè)可用區(qū)的地域,指定一個(gè)交換機(jī)ID即可。指定的交換機(jī)必須在ALB當(dāng)前所支持的可用區(qū)內(nèi),且與集群處于同一VPC。關(guān)于ALB Ingress支持的地域與可用區(qū),請參見ALB支持的地域與可用區(qū)

    重要
    • 在多個(gè)可用區(qū)的地域中,您至少需要指定兩個(gè)處于不同可用區(qū)的交換機(jī)。

    • zoneMappings參數(shù)僅在創(chuàng)建AlbConfig時(shí)被解析,后續(xù)更新AlbConfig不產(chǎn)生效果。

    為集群安裝ALB Ingress Controller組件時(shí),可以選擇創(chuàng)建默認(rèn)的AlbConfig。AlbConfig的配置參數(shù)除vSwitchID外,其他參數(shù)將會按照以下的默認(rèn)配置創(chuàng)建。

    展開查看AlbConfig的默認(rèn)配置

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb # AlbConfig名稱。
    spec:
      config:
        accessLogConfig:
          logProject: ""
          logStore: ""
        addressAllocatedMode: Dynamic # 在AlbConfig中,可以通過addressAllocatedMode參數(shù)指定ALB實(shí)例IP模式,可取值為Dynamic(動態(tài)IP模式)和Fixed(固定IP模式)。
        addressType: Internet
        billingConfig:
          internetBandwidth: 0
          internetChargeType: ""
          payType: PostPay
        deletionProtectionEnabled: true
        edition: Standard
        forceOverride: false
        zoneMappings:
        - vSwitchId: #...
        - vSwitchId: #...
    status:
      loadBalancer:
        dnsname: alb-s2em8fr9debkg5****.cn-shenzhen.alb.aliyuncs.com
        id: alb-s2em8fr9debkg5****
  2. 執(zhí)行以下命令,創(chuàng)建AlbConfig。

    kubectl apply -f alb.yaml

    預(yù)期輸出:

    AlbConfig.alibabacloud.com/alb created
  3. 執(zhí)行以下命令,查看AlbConfig資源。

    kubectl get AlbConfig

    預(yù)期輸出:

    NAME   ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
    alb    alb-******   alb-******.<regionID>.alb.aliyuncs.com                            28m
    說明

    創(chuàng)建HTTPS監(jiān)聽并為其配置證書后,PORT&PROTOCOLCERTID中才會顯示內(nèi)容,內(nèi)容為空是正常現(xiàn)象。

復(fù)用已有ALB實(shí)例

如果您希望復(fù)用已有ALB實(shí)例,需要在創(chuàng)建AlbConfig時(shí)指定ALB實(shí)例ID,且已有的ALB實(shí)例必須是通過應(yīng)用型負(fù)載均衡ALB控制臺創(chuàng)建的標(biāo)準(zhǔn)版或WAF增強(qiáng)版實(shí)例。不支持復(fù)用基礎(chǔ)版ALB實(shí)例。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: reuse-alb
spec:
  config:
    id: **** # 通過ALB控制臺創(chuàng)建的標(biāo)準(zhǔn)版或WAF增強(qiáng)版ALB實(shí)例ID。
    forceOverride: false
    listenerForceOverride: false

參數(shù)說明如下:

參數(shù)

說明

id

  • 若沒有id字段或id字段為空,表示ALB實(shí)例為非復(fù)用場景。此時(shí),forceOverride字段與listenerForceOverride字段均不生效。

  • id字段為有效值時(shí),表示ALB實(shí)例為復(fù)用場景。

    • forceOverride字段為true,將強(qiáng)制覆蓋ALB實(shí)例屬性及監(jiān)聽屬性。

    • forceOverride字段為false,則不會強(qiáng)制覆蓋ALB實(shí)例屬性,且根據(jù)listenerForceOverride字段決定是否強(qiáng)制覆蓋監(jiān)聽屬性。

重要

在復(fù)用場景下,不建議您手動修改監(jiān)聽名稱,以免錯(cuò)誤地將監(jiān)聽置于或脫離ACK的控制。由AlbConfig創(chuàng)建或更新的監(jiān)聽由ACK管理,且監(jiān)聽名稱的默認(rèn)格式為ingress-auto-listener-{port};其他格式的監(jiān)聽名稱由ALB控制臺管理。

forceOverride

表示復(fù)用模式下是否強(qiáng)制覆蓋ALB實(shí)例屬性。

  • true表示強(qiáng)制覆蓋。

  • false表示不覆蓋。不覆蓋場景下編輯AlbConfig將不改變ALB實(shí)例屬性。

listenerForceOverride

表示復(fù)用模式下是否強(qiáng)制覆蓋監(jiān)聽屬性。

  • true表示強(qiáng)制覆蓋。

  • false表示不覆蓋。

更新AlbConfig

對于已經(jīng)通過AlbConfig創(chuàng)建的ALB實(shí)例,更改實(shí)例配置時(shí)推薦使用kubectl edit命令進(jìn)行更新。更新AlbConfig操作如下。

  1. 執(zhí)行以下命令,查看AlbConfig名稱。

    kubectl get AlbConfig

    預(yù)期輸出:

    NAME       ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
    alb        alb-******   alb-******.<regionID>.alb.aliyuncs.com                            28m
  2. 執(zhí)行以下命令編輯AlbConfig。

    kubectl edit albconfig <ALBCONFIG_NAME> # <ALBCONFIG_NAME>替換AlbConfig的名稱

    在AlbConfig配置文件中,更新AlbConfig的相關(guān)內(nèi)容。例如,修改spec.config.name字段的參數(shù),將ALB實(shí)例的名稱修改為new_alb

    ...
     spec:
       config:
         name: new_alb # 更新后的名稱。
    ...

使用IngressClass關(guān)聯(lián)AlbConfig與Ingress

ALB Ingress使用Kubernetes原生的IngressClass資源確定AlbConfig與Ingress的關(guān)聯(lián)。通過在IngressClass資源中填入

  1. 創(chuàng)建并拷貝以下內(nèi)容到ingress_class.yaml文件中,用于創(chuàng)建IngressClass。

    1.19及之后版本集群

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb # IngressClass關(guān)聯(lián)的AlbConfig的名稱

    1.19版本之前集群

    apiVersion: networking.k8s.io/v1beta1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb
  2. 執(zhí)行以下命令,創(chuàng)建IngressClass。

    kubectl apply -f ingress_class.yaml

    預(yù)期輸出:

    ingressclass.networking.k8s.io/alb created
  3. 創(chuàng)建并拷貝以下內(nèi)容到ingress.yaml文件中。通過ingressClassName參數(shù)指定名稱為alb的IngressClass關(guān)聯(lián)AlbConfig。

    1.19及之后版本集群

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: cafe-ingress 
    spec:
      ingressClassName: alb # Ingress關(guān)聯(lián)的IngressClass的名稱
      rules:
      - 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

    1.19版本之前集群

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: cafe-ingress
    spec:
      ingressClassName: alb
      rules:
      - http:
          paths:
          # 配置Context Path。
          - path: /tea
            backend:
              serviceName: tea-svc
              servicePort: 80
          # 配置Context Path。
          - path: /coffee
            backend:
              serviceName: coffee-svc
              servicePort: 80
  4. 執(zhí)行以下命令,創(chuàng)建Ingress。

    kubectl apply -f ingress.yaml

    預(yù)期輸出:

    ingress.networking.k8s.io/cafe-ingress created

完成上述步驟,就可以使用IngressClass關(guān)聯(lián)AlbConfig與Ingress。

創(chuàng)建并使用多個(gè)ALB實(shí)例

如果您希望同時(shí)使用多個(gè)ALB實(shí)例,在Ingress資源中通過spec.ingressClassName指定不同的IngressClass,即可將Ingress關(guān)聯(lián)到不同的ALB實(shí)例。

  1. 創(chuàng)建并拷貝以下內(nèi)容到alb-2.yaml文件中,用于創(chuàng)建AlbConfig。

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-2
    spec:
      config:
        name: alb-2        # ALB實(shí)例名稱。
        addressType: Internet  # 負(fù)載均衡具有公網(wǎng)IP地址。
        zoneMappings:
        - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # 虛擬交換機(jī)的ID
        - vSwitchId: vsw-uf6nun9tql5t8nh15****
  2. 執(zhí)行以下命令,創(chuàng)建AlbConfig。

    kubectl apply -f alb-2.yaml

    預(yù)期輸出:

    AlbConfig.alibabacloud.com/alb-2 created
  3. 創(chuàng)建并拷貝以下內(nèi)容到ingress_class2.yaml文件中,用于創(chuàng)建IngressClass。

    1.19及之后版本集群

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb-2
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb-2 # IngressClass關(guān)聯(lián)的AlbConfig的名稱

    1.19版本之前集群

    apiVersion: networking.k8s.io/v1beta1
    kind: IngressClass
    metadata:
      name: alb-2
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb-2 # IngressClass關(guān)聯(lián)的AlbConfig的名稱
  4. 執(zhí)行以下命令,創(chuàng)建IngressClass。

    kubectl apply -f ingress_class2.yaml

    預(yù)期輸出:

    ingressclass.networking.k8s.io/alb-2 created
  5. 創(chuàng)建并拷貝以下內(nèi)容到ingress2.yaml文件中。通過ingressClassName參數(shù)指定不同的ALB實(shí)例。下方的示例中,就通過在ingressClassName字段中填入alb-2,將Ingress關(guān)聯(lián)到了名為alb-2的IngressClass,以及這個(gè)IngressClass所關(guān)聯(lián)的,名為alb-2的ALB實(shí)例。

    1.19及之后版本集群

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: cafe-ingress2
    spec:
      ingressClassName: alb-2
      rules:
      - 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

    1.19版本之前集群

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: cafe-ingress2
    spec:
      ingressClassName: alb-2
      rules:
      - http:
          paths:
          # 配置Context Path。
          - path: /tea
            backend:
              serviceName: tea-svc
              servicePort: 80
          # 配置Context Path。
          - path: /coffee
            backend:
              serviceName: coffee-svc
              servicePort: 80
  6. 執(zhí)行以下命令,創(chuàng)建Ingress。

    kubectl apply -f ingress2.yaml

    預(yù)期輸出:

    ingress.networking.k8s.io/cafe-ingress2 created

使用IPv6地址

在創(chuàng)建ALB實(shí)例時(shí),通過在addressIpVersion字段中填入DualStack即可開啟雙棧,同時(shí)支持IPv4與IPv6。

重要

addressIpVerison參數(shù)僅在創(chuàng)建AlbConfig時(shí)被解析,后續(xù)更新AlbConfig不產(chǎn)生效果。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    addressIpVersion: DualStack # 開啟雙棧
    ...

指定TLS安全策略

當(dāng)前AlbConfig配置HTTPS監(jiān)聽時(shí),支持指定TLS安全策略。TLS安全策略包含自定義策略和系統(tǒng)默認(rèn)策略,更多信息,請參見TLS安全策略

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    #...
  listeners:
  - port: 443
    protocol: HTTPS
    securityPolicyId: tls_cipher_policy_1_1 # 指定的安全策略ID
  #...

開啟日志服務(wù)訪問日志

如果您希望ALB Ingress能夠收集訪問日志Access Log,可以在AlbConfig中指定logProjectlogStore

說明
  • 創(chuàng)建集群時(shí),您選擇了自動創(chuàng)建或使用已有日志服務(wù)Project。您可登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇集群信息然后,在集群資源頁簽,查看集群關(guān)聯(lián)的日志服務(wù) Project

  • logStore命名需要以alb_開頭,若指定logStore不存在,則會自動創(chuàng)建。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    accessLogConfig:
      logProject: "k8s-log-xz92lvykqj1siwvif****"
      logStore: "alb_****"
    #...

您可以在集群資源頁簽單擊日志服務(wù) Project右側(cè)的名稱,查看收集的訪問日志。

刪除ALB實(shí)例

一個(gè)AlbConfig對應(yīng)一個(gè)ALB實(shí)例, 因此,如果ALB實(shí)例使用AlbConfig創(chuàng)建,則可以通過刪除AlbConfig實(shí)現(xiàn)刪除ALB實(shí)例。

重要

刪除AlbConfig前,請刪除其關(guān)聯(lián)的所有Ingress資源。

執(zhí)行以下命令,刪除AlbConfig。

kubectl delete AlbConfig <AlbConfig_NAME> # <AlbConfig_NAME>替換AlbConfig的名稱

刪除復(fù)用ALB實(shí)例的AlbConfig

在創(chuàng)建AlbConfig時(shí)如果選擇復(fù)用已有ALB實(shí)例,因?yàn)閷?shí)例并非通過AlbConfig創(chuàng)建,刪除AlbConfig并不會刪除ALB實(shí)例。如果您希望刪除復(fù)用ALB實(shí)例的AlbConfig,請按照以下操作步驟操作。

  1. 使用kubectl edit命令修改AlbConfig,刪除此AlbConfig的所有監(jiān)聽,即刪除spec.listeners字段下的所有條目。

    重要

    若您集群中安裝的ALB Ingress Controller組件版本為v2.10.0-aliyun.1及以前版本,請執(zhí)行該操作。否則,請?zhí)^該步驟。

  2. 執(zhí)行以下命令,刪除AlbConfig。

    重要

    刪除AlbConfig前,請刪除其關(guān)聯(lián)的所有Ingress資源。

    kubectl delete AlbConfig <AlbConfig_NAME> # <AlbConfig_NAME>替換AlbConfig的名稱

創(chuàng)建監(jiān)聽

監(jiān)聽(Listeners)是ALB實(shí)例用來處理實(shí)際流量的頂層入口。只有創(chuàng)建了監(jiān)聽,ALB實(shí)例才能對外開放端口,接收客戶端的請求。

在AlbConfig中設(shè)置portprotocol即可創(chuàng)建對應(yīng)的監(jiān)聽。一旦修改了portprotocol以及其他監(jiān)聽的屬性,系統(tǒng)將會把原有的監(jiān)聽刪除,然后創(chuàng)建一個(gè)新的監(jiān)聽來替代它。

監(jiān)聽可以使用三種應(yīng)用層協(xié)議:HTTP、HTTPS、QUIC。

重要

不同協(xié)議的多個(gè)監(jiān)聽可以同時(shí)使用,但需要在Ingress資源中配置Annotation以保證Ingress同時(shí)適用于多個(gè)監(jiān)聽。具體操作,請參見配置自定義監(jiān)聽端口

創(chuàng)建HTTP監(jiān)聽

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
  ...
  listeners:
    - port: 80
      protocol: HTTP # protocol的可選項(xiàng)為HTTP、HTTPS、QUIC。
  ...
說明

HTTP協(xié)議自動兼容WebSocket,不需要特殊設(shè)置即可。

創(chuàng)建HTTPS監(jiān)聽

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
  ...
  listeners:
    - port: 443
      protocol: HTTPS
  ...
重要

使用HTTPS監(jiān)聽時(shí),需要配置證書。具體操作,請參見配置HTTPS證書以實(shí)現(xiàn)加密通信

創(chuàng)建QUIC監(jiān)聽

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
  ...
  listeners:
    - port: 443
      protocol: QUIC
  ...
重要

使用QUIC監(jiān)聽可以兼容客戶端使用HTTP/3協(xié)議進(jìn)行訪問。使用QUIC監(jiān)聽的更多細(xì)節(jié),請參見使用QUIC監(jiān)聽兼容HTTP/3協(xié)議

設(shè)置監(jiān)聽連接請求超時(shí)時(shí)間

在AlbConfig中可以指定監(jiān)聽,設(shè)置連接請求超時(shí)時(shí)間(單位為秒,取值范圍為[1,180])。若在超時(shí)時(shí)間內(nèi)后端服務(wù)器一直沒有響應(yīng),ALB實(shí)例將放棄等待,給客戶端返回HTTP 504錯(cuò)誤碼。如果不指定連接請求超時(shí)時(shí)間,則默認(rèn)為60秒。YAML示例如下。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    requestTimeout: 40 # 若不填入值,默認(rèn)超時(shí)時(shí)間為60秒
  ...

使用數(shù)據(jù)壓縮功能

開啟該功能后,ALB實(shí)例會對某些特定文件類型進(jìn)行壓縮。gzipEnabled取值如下:

  • true:對特定文件類型進(jìn)行壓縮。

  • false:不會對任何文件類型進(jìn)行壓縮。

說明

目前Brotli支持壓縮所有類型,Gzip支持壓縮的類型包括text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss + xml、application/atom + xml、application/xml和application/json。

開啟數(shù)據(jù)壓縮的YAML示例如下:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    gzipEnabled: true
  ...

獲取客戶端真實(shí)IP

開啟此功能后,ALB實(shí)例在轉(zhuǎn)發(fā)請求到后端服務(wù)時(shí),在HTTP請求頭中添加客戶端真實(shí)IP的字段。XForwardedForEnabled取值如下:

  • true:獲取來訪者真實(shí)IP。

  • false:不獲取來訪者真實(shí)IP。

重要

僅HTTP和HTTPS監(jiān)聽支持配置此參數(shù)。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    #...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForEnabled: true
  #...

獲取客戶端的端口

開啟此功能后,ALB實(shí)例在轉(zhuǎn)發(fā)請求到后端服務(wù)時(shí),在HTTP請求頭中添加客戶端端口字段。XForwardedForClientSrcPortEnabled取值如下:

  • true:獲取負(fù)載均衡實(shí)例客戶端的端口。

  • false:不獲取負(fù)載均衡實(shí)例客戶端的端口。

重要

僅HTTP和HTTPS監(jiān)聽支持配置此參數(shù)。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForClientSrcPortEnabled: true
  ...

獲取ALB實(shí)例的監(jiān)聽協(xié)議

開啟此功能后,ALB實(shí)例在轉(zhuǎn)發(fā)請求到后端服務(wù)時(shí),在HTTP請求頭中添加ALB實(shí)例使用的監(jiān)聽協(xié)議字段。XForwardedForProtoEnabled取值如下:

  • true:獲取實(shí)例的監(jiān)聽協(xié)議。

  • false:不獲取實(shí)例的監(jiān)聽協(xié)議。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForProtoEnabled: true
  ...

獲取ALB實(shí)例的ID

開啟此功能后,ALB實(shí)例在轉(zhuǎn)發(fā)請求到后端服務(wù)時(shí),在HTTP請求頭中添加ALB實(shí)例的ID字段。XForwardedForSLBIdEnabled取值如下:

  • true:獲取負(fù)載均衡實(shí)例的ID。

  • false:不獲取負(fù)載均衡實(shí)例的ID。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForSLBIdEnabled: true
  ...

獲取ALB實(shí)例的監(jiān)聽端口

開啟此功能后,ALB實(shí)例在轉(zhuǎn)發(fā)請求到后端服務(wù)時(shí),在HTTP請求頭中添加實(shí)例的監(jiān)聽端口字段。XForwardedForSLBPortEnabled取值如下:

  • true:獲取實(shí)例的監(jiān)聽端口。

  • false:不獲取實(shí)例的監(jiān)聽端口。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForSLBPortEnabled: true
  ...

指定可信代理服務(wù)器的IP

在AlbConfig中通過XForwardedForClientSourceIpsEnabled配置項(xiàng)允許ALB實(shí)例從X-Forwarded-For頭部字段中獲取真實(shí)客戶端IP。通過XForwardedForClientSourceIpsTrusted配置項(xiàng),可以指定一組可信代理服務(wù)器的IP。ALB實(shí)例將從X-Forwarded-For字段中的IP列表末尾開始向前遍歷,選擇第一個(gè)不在可信IP列表的IP作為客戶端的實(shí)際IP。

例如,X-Forwarded-For中的值為<客戶端真實(shí)IP,代理IP-1,代理IP-2>,您可以在XForwardedForClientSourceIpsTrusted中填入代理IP-1代理IP-2,以此獲取真實(shí)的客戶端IP。

重要

僅HTTP和HTTPS監(jiān)聽支持配置此參數(shù)。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata: 
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForClientSourceIpsEnabled: true # true表示允許ALB從X-Forwarded-For頭字段中查找真實(shí)客戶端IP,此時(shí)必須配置XForwardedForClientSourceIpsTrusted寫入格式正確的內(nèi)容;false表示不允許ALB從X-Forwarded-For頭字段中查找真實(shí)客戶端IP。
      XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16  # 請輸入正確格式的IP或網(wǎng)段,并以 ; 分隔,IP或網(wǎng)段之間無需添加空格。僅在XForwardedForClientSourceIpsEnabled為true時(shí)生效。
  ...

設(shè)置ACL訪問控制

通過AlbConfig可以為ALB監(jiān)聽啟用訪問控制功能,通過設(shè)置入方向的允許或拒絕規(guī)則,對客戶端請求精確控制,管理請求轉(zhuǎn)發(fā)。關(guān)于ACL的更多信息,請參見配置ACL實(shí)現(xiàn)訪問控制

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
   #...
  listeners:
  - port: 80
    protocol: HTTP
    aclConfig:
      aclEntries:
      - 127.0.0.1/32
      aclType: White
  #...

字段說明如下:

  • aclType:用于設(shè)置監(jiān)聽的ACL為黑名單或白名單。取值為BlackWhite,分別表示黑名單和白名單。

  • aclEntries:用于設(shè)置訪問控制條目IP地址段,例如127.0.0.1/32。