Istio 1.6.5网关超时错误

时间:2020-08-05 08:00:08

标签: istio

从浏览器访问应用程序时,我们间歇性地看到504网关超时(504)错误。我们将istio从1.4.3升级到1.6.5。 1.4.3没有问题。

2 个答案:

答案 0 :(得分:0)

基本上,如果要将istio从1.4.x升级到1.6.x,则应先从1.4.x升级到1.5.x,然后再从1.5.x升级到1.6.x

我在istio discuss上关注了一个由@laurentiuspurba创建的升级主题。

对于您的用例,我对其进行了一些更改,因此从1.4.3升级到1.5.0,然后从1.5.0升级到1.6.8

请查看以下步骤,然后再在您的环境中使用它,我建议在某些测试环境中对其进行测试。


1。按照istio documentation并使用以下命令安装istioctl 1.4.3和1.5:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.4.3 sh -
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.0 sh -
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.8 sh -

2。将istioctl 1.4.3添加到您的路径

cd istio-1.4.3
export PATH=$PWD/bin:$PATH

3。安装istio 1.4.3

istioctl manifest generate > $HOME/generated-manifest.yaml
kubectl create namespace istio-system
kubectl apply -f generated-manifest.yaml

4。检查是否一切正常。

kubectl get pod -n istio-system
kubectl get svc -n istio-system
istioctl version

5。在路径中添加istioctl 1.5

cd istio-1.5.0
export PATH=$PWD/bin:$PATH

6。安装istio operator以便将来升级。

istioctl operator init

7。准备IstioOperator.yaml

nano IstioOperator.yaml

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: default
  tag: 1.5.0

8。升级之前,请使用以下命令

kubectl -n istio-system delete service/istio-galley deployment.apps/istio-galley
kubectl delete validatingwebhookconfiguration.admissionregistration.k8s.io/istio-galley

9。使用istioctl升级从1.4.3升级到1.5,并准备好IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

10。升级后,使用以下命令

kubectl -n istio-system delete deployment istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetry
kubectl -n istio-system delete service istio-citadel istio-policy istio-sidecar-injector istio-telemetry
kubectl -n istio-system delete horizontalpodautoscaler.autoscaling/istio-pilot horizontalpodautoscaler.autoscaling/istio-telemetry
kubectl -n istio-system delete pdb istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetry
kubectl -n istio-system delete deployment istiocoredns
kubectl -n istio-system delete service istiocoredns

11。检查是否一切正常。

kubectl get pod -n istio-system
kubectl get svc -n istio-system
istioctl version

12。我已经部署了bookinfo应用程序,以检查是否一切正常。

kubectl label namespace default istio-injection=enabled
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

13。结果

curl -v xx.xx.xxx.xxx/productpage | grep HTTP
HTTP/1.1 200 OK


istioctl version
client version: 1.5.0
control plane version: 1.5.0
data plane version: 1.5.0 (8 proxies)

14。将istioctl 1.6.8添加到路径中

cd istio-1.6.8
export PATH=$PWD/bin:$PATH

15。准备IstioOperator.yaml

nano IstioOperator.yaml

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: default
  tag: 1.6.8

16。使用istioctl升级从1.5.0升级到1.6.8,并准备好IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

17。要升级Istio数据平面,您将需要重新注入它。

如果您使用自动边车注入,则可以通过对所有吊舱进行滚动更新来升级边车:

kubectl rollout restart deployment --namespace <namespace with auto injection>

如果您使用的是手动进样,则可以通过执行以下操作来升级Sidecar:

kubectl apply -f < (istioctl kube-inject -f <original application deployment yaml>)

18。结果

curl -v xx.xx.xxx.xxx/productpage | grep HTTP
HTTP/1.1 200 OK


istioctl version
client version: 1.6.8
control plane version: 1.6.8
data plane version: 1.6.8 (8 proxies)

希望您觉得这很有用。如果您有任何问题,请告诉我。

答案 1 :(得分:0)

默认超时= 15秒。

您可以在Virtual Service

中设置显式超时