現(xiàn)象
Istio 默認(rèn)只支持 HTTP/1.1 以上協(xié)議版本,并不支持 HTTP/1.0。
原因
Istio 中負(fù)責(zé)流量轉(zhuǎn)發(fā)的是 Envoy沧奴。
Envoy 中可以設(shè)置支持 HTTP/1.0翎碑。
Istio 負(fù)責(zé)分配“規(guī)則”的是 Pilot辅愿。
Pilot 的環(huán)境變量 PILOT_HTTP10
默認(rèn)為 0
旭等,即不支持 HTTP/1.0句携。
解決方法
修改 Pilot 的環(huán)境變量 PILOT_HTTP10
為 1
琅豆。
阿里云
阿里云安裝 Istio 的方式與其他平臺(tái)不同愉豺,因此配置方法需要使用阿里云控制臺(tái)。
-
進(jìn)入 Istio 管理茫因,點(diǎn)擊右上角
更新
按鈕蚪拦。faq -
找到 Pilot 配置項(xiàng),增加如下配置冻押,并更新驰贷。
enableHttp10: true
注:此配置項(xiàng)為詢問(wèn)阿里云工程師獲得,阿里云文檔中未找到洛巢。
faq -
檢查 Pilot 環(huán)境變量是否生效括袒。
faq
其他平臺(tái)
其他平臺(tái)一般使用 Istioctl 或者 Helm 安裝,只要在 Pilot 配置項(xiàng)中加入 PILOT_HTTP10
為 1 即可稿茉,下面以 Istioctl 安裝為例锹锰。
-
編輯 Istioctl 安裝配置項(xiàng)文件。
# 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: ......
-
istioctl apply 該配置文件即可漓库。
istioctl manifest apply -f Istio.yaml
-
檢查 Pilot 環(huán)境變量是否生效恃慧。
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