Обновление с Istio 1.4.3 до 1.5.6 с использованием istioctl и оператора Istio

Могу ли я сделать существующий устанавливаемый Istio с открытым исходным кодом совместимым с (Istioctl + Operator)? В настоящее время у меня установлен Istio 1.4.3 с помощью istioctl .., и мне нужно сообщить об этом оператору Istio существующего развертывания, прежде чем я обновлюсь до Istio 1.5.6+. Какие-либо конкретные шаги, которые нужно выполнить здесь?


person Avi    schedule 28.09.2020    source источник


Ответы (1)


С этим не должно быть никаких проблем, я пробовал это на своем тестовом кластере, и все работало нормально.

У меня возникла проблема с немедленным обновлением с 1.4.3 до 1.5.6, поэтому с помощью следующих шагов вы сначала обновляетесь с 1.4.3 до 1.5.0, а затем с 1.5.0 до 1.5.6.

Взгляните на следующие шаги.


1. Следуйте документации istio и установите istioctl 1.4, 1.5 и 1.5. .6 с:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.4.0 sh -
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.0 sh -
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.6 sh -

2. Добавьте istioctl 1.4 в свой путь

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

3.Установите istio 1.4.

istioctl manifest apply --set profile=demo

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: demo
  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 до 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.Измените значение тега istio IstioOperator.yaml

nano IstioOperator.yaml

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

13. Обновление с 1.5 до 1.5.6 с обновлением istioctl и подготовленным IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

14. Добавьте istioctl 1.5.6 в свой путь

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

15. Я развернул приложение 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

16.Результаты

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


istioctl version
client version: 1.5.6
control plane version: 1.5.6
data plane version: 1.5.6 (9 proxies)

Дайте мне знать, если возникнут еще вопросы.

person Jakub    schedule 29.09.2020