Ошибки тайм-аута шлюза Istio 1.6.5 - PullRequest
1 голос
/ 05 августа 2020

Время от времени мы наблюдаем 504 ошибки тайм-аута шлюза (504) при доступе к приложению из браузера. Мы обновили istio с 1.4.3 до 1.6.5. Проблем с 1.4.3 не было.

Ответы [ 2 ]

0 голосов
/ 12 августа 2020

тайм-аут по умолчанию = 15 сек c.

вы можете установить явный тайм-аут в Virtual Service

0 голосов
/ 12 августа 2020

В основном, если вы хотите обновить istio с 1.4.x до 1.6.x, вам нужно сначала обновить с 1.4.x до 1.5.x, а затем обновить с 1.5.x до 1.6.x

Я следил тема на istio обсуждать об обновлении создано by@laurentiuspurba.

Я немного изменил ее для вашего варианта использования, так что обновление с 1.4.3 до 1.5.0, а затем с 1.5. От 0 до 1.6.8

Взгляните на следующие шаги, прежде чем использовать это в своей среде, я бы посоветовал протестировать это в некоторой тестовой среде.

1. Следуйте istio документации и установите 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. Обновите 1.4.3 до 1.5 с обновлением istioctl и подготовленным 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. Обновление с 1.5.0 до 1.6.8 с обновлением istioctl и подготовленным IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

17. Чтобы обновить плоскость данных Istio, вам нужно будет повторно внедрить это.

Если вы используете автоматическую c инъекцию коляски, вы можете обновить ее, выполнив скользящее обновление для всех модулей:

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

Если вы используете руководство инъекции, вы можете обновить коляску, выполнив:

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)

Надеюсь, вы найдете это полезным. Если у вас есть вопросы, дайте мне знать.

...