Istio 常見問題 - Istio 支持 HTTP/1.0

原文:https://makeoptim.com/istio-faq/istio-support-http10

現象

Istio 默認只支持 HTTP/1.1 以上協議版本,並不支持 HTTP/1.0

原因

Istio 中負責流量轉發的是 Envoy

Envoy 中可以設置支持 HTTP/1.0

Istio 負責分配“規則”的是 Pilot

Pilot 的環境變量 PILOT_HTTP10 默認爲 0,即不支持 HTTP/1.0

解決方法

修改 Pilot 的環境變量 PILOT_HTTP101

阿里雲

阿里雲安裝 Istio 的方式與其他平臺不同,因此配置方法需要使用阿里雲控制檯。

  1. 進入 Istio 管理,點擊右上角更新按鈕。

  2. 找到 Pilot 配置項,增加如下配置,並更新。

     enableHttp10: true
    

    注:此配置項爲詢問阿里雲工程師獲得,阿里雲文檔中未找到。

  3. 檢查 Pilot 環境變量是否生效。

其他平臺

其他平臺一般使用 Istioctl 或者 Helm 安裝,只要在 Pilot 配置項中加入 PILOT_HTTP10 爲 1 即可,下面以 Istioctl 安裝爲例。

  1. 編輯 Istioctl 安裝配置項文件。

    # Istio.yaml
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      # Use the default profile as the base
      # More details at: https://istio.io/docs/setup/additional-setup/config-profiles/
      profile: default
      values:
        pilot:
          # https://github.com/istio/istio/issues/11235
          env:
            PILOT_HTTP10: 1  
        gateways:
    ......    
    
    
  2. istioctl apply 該配置文件即可。

    istioctl manifest apply -f Istio.yaml
    
  3. 檢查 Pilot 環境變量是否生效。

    Istio 1.5.0 及以上版本

    $ kubectl describe deployment istiod -n istio-system | grep PILOT_HTTP10
       PILOT_HTTP10:                                 1
    

    Istio 1.4.x 及以下版本

    $ kubectl describe deployment istio-pilot -n istio-system | grep PILOT_HTTP10
       PILOT_HTTP10:                                 1
    

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章