使用 istioctl 和 Istio operator 将 Istio 1.4.3 升级到 1.5.6

Istio 1.4.3 to 1.5.6 upgrade using istioctl and Istio operator

我可以让现有的 Istio 开源安装与 (Istioctl + Operator) 兼容吗?我目前通过 istioctl 安装了 Istio 1.4.3 .. 并且在我升级到 Istio 1.5.6+ 之前需要让现有的部署 Istio operator 知道。这里有什么具体的步骤要遵循吗?

这应该没有任何问题,我已经在我的测试集群上尝试过了,一切正常。

我在立即从 1.4.3 升级到 1.5.6 时遇到了问题,因此按照以下步骤,您首先要从 1.4.3 升级到 1.5.0,然后从 1.5.0 升级到 1.5.6

看看下面要遵循的步骤。


1.Follow istio documentation 并安装 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.Add istioctl 1.4 到你的路径

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

3.Install istio 1.4

istioctl manifest apply --set profile=demo

4.Check 如果一切正常。

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

5.Add istioctl 1.5 到你的路径

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

6.Install istio operator 用于未来升级。

istioctl operator init

7.Prepare 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.Before升级使用以下命令

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

9.Upgrade 从 1.4 升级到 1.5,并准备了 istioctl IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

10.After升级使用以下命令

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.Check 如果一切正常。

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

12.Change 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.Upgrade 从 1.5 升级到 1.5.6,并准备了 istioctl IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

14.Add istioctl 1.5.6 到你的路径

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

15.I 已经部署了一个 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.Results

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)

如果有任何问题,请告诉我。