Istioのアップグレード
Helmで管理されるようにすべてのIstioコンポーネントを変更し、アプリケーション・カタログから最新バージョンのIstioをインストールして、Kubernetesクラスタ内のIstioをアップグレードします。
これにより、Istio Release 1.20.4がRelease 1.20.5にアップグレードされます。 リリース1.20.4は、Oracle CNEリリース1.9で使用可能な最新のIstioバージョンです。 Istioは、アプリケーション・カタログにリストされている最新の使用可能なバージョンにアップグレードすることをお薦めします。これは、ここに示されているよりも新しいリリースである可能性があります。
- Istioのバージョンを確認します。kubectl describe pod --namespace istio-system istiod「タブ」キーを入力して、 istiodポッドの名前を自動入力します。出力には、Istioバージョンを示す Imageオプションが含まれています。たとえば:Image: container-registry.oracle.com/olcne/pilot:1.20.4
- アプリケーション・カタログでIstioバージョンを検索します。複数のIstioバージョンをインストールできます。 最新バージョンをインストールすることをお薦めします。 使用可能なバージョンのリストを表示するには、次を使用します: ocne catalog search --pattern istio
- Helmによって管理されるIstioオブジェクトを変更します。Istioベース・オブジェクトを変更します: kubectl --namespace istio-system label ServiceAccount istio-reader-service-account app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate ServiceAccount istio-reader-service-account meta.helm.sh/release-name=istio-base kubectl --namespace istio-system annotate ServiceAccount istio-reader-service-account meta.helm.sh/release-namespace=istio-system kubectl label ValidatingWebhookConfiguration istiod-default-validator app.kubernetes.io/managed-by=Helm kubectl annotate ValidatingWebhookConfiguration istiod-default-validator meta.helm.sh/release-name=istio-base kubectl annotate ValidatingWebhookConfiguration istiod-default-validator meta.helm.sh/release-namespace=istio-systemIstiodオブジェクトを変更します: kubectl --namespace istio-system label ServiceAccount istiod app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate ServiceAccount istiod meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate ServiceAccount istiod meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label ConfigMap istio app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate ConfigMap istio meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate ConfigMap istio meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label ConfigMap istio-sidecar-injector app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate ConfigMap istio-sidecar-injector meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate ConfigMap istio-sidecar-injector meta.helm.sh/release-namespace=istio-system kubectl label ClusterRole istiod-clusterrole-istio-system app.kubernetes.io/managed-by=Helm kubectl annotate ClusterRole istiod-clusterrole-istio-system meta.helm.sh/release-name=istiod kubectl annotate ClusterRole istiod-clusterrole-istio-system meta.helm.sh/release-namespace=istio-system kubectl label ClusterRole istiod-gateway-controller-istio-system app.kubernetes.io/managed-by=Helm kubectl annotate ClusterRole istiod-gateway-controller-istio-system meta.helm.sh/release-name=istiod kubectl annotate ClusterRole istiod-gateway-controller-istio-system meta.helm.sh/release-namespace=istio-system kubectl label ClusterRole istio-reader-clusterrole-istio-system app.kubernetes.io/managed-by=Helm kubectl annotate ClusterRole istio-reader-clusterrole-istio-system meta.helm.sh/release-name=istiod kubectl annotate ClusterRole istio-reader-clusterrole-istio-system meta.helm.sh/release-namespace=istio-system kubectl label ClusterRoleBinding istiod-clusterrole-istio-system app.kubernetes.io/managed-by=Helm kubectl annotate ClusterRoleBinding istiod-clusterrole-istio-system meta.helm.sh/release-name=istiod kubectl annotate ClusterRoleBinding istiod-clusterrole-istio-system meta.helm.sh/release-namespace=istio-system kubectl label ClusterRoleBinding istiod-gateway-controller-istio-system app.kubernetes.io/managed-by=Helm kubectl annotate ClusterRoleBinding istiod-gateway-controller-istio-system meta.helm.sh/release-name=istiod kubectl annotate ClusterRoleBinding istiod-gateway-controller-istio-system meta.helm.sh/release-namespace=istio-system kubectl label ClusterRoleBinding istio-reader-clusterrole-istio-system app.kubernetes.io/managed-by=Helm kubectl annotate ClusterRoleBinding istio-reader-clusterrole-istio-system meta.helm.sh/release-name=istiod kubectl annotate ClusterRoleBinding istio-reader-clusterrole-istio-system meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Role istiod app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Role istiod meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate Role istiod meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label RoleBinding istiod app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate RoleBinding istiod meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate RoleBinding istiod meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Service istiod app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Service istiod meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate Service istiod meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Deployment istiod app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Deployment istiod meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate Deployment istiod meta.helm.sh/release-namespace=istio-system kubectl label MutatingWebhookConfiguration istio-sidecar-injector app.kubernetes.io/managed-by=Helm kubectl annotate MutatingWebhookConfiguration istio-sidecar-injector meta.helm.sh/release-name=istiod kubectl annotate MutatingWebhookConfiguration istio-sidecar-injector meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label HorizontalPodAutoscaler istiod app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate HorizontalPodAutoscaler istiod meta.helm.sh/release-name=istiod kubectl --namespace istio-system annotate HorizontalPodAutoscaler istiod meta.helm.sh/release-namespace=istio-systemIstio-Ingress Gatewayオブジェクトを変更します: kubectl --namespace istio-system label ServiceAccount istio-ingressgateway-service-account app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate ServiceAccount istio-ingressgateway-service-account meta.helm.sh/release-name=istio-ingressgateway kubectl --namespace istio-system annotate ServiceAccount istio-ingressgateway-service-account meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Service istio-ingressgateway app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Service istio-ingressgateway meta.helm.sh/release-name=istio-ingressgateway kubectl --namespace istio-system annotate Service istio-ingressgateway meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Deployment istio-ingressgateway app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Deployment istio-ingressgateway meta.helm.sh/release-name=istio-ingressgateway kubectl --namespace istio-system annotate Deployment istio-ingressgateway meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Role istio-ingressgateway-sds app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Role istio-ingressgateway-sds meta.helm.sh/release-name=istio-ingressgateway kubectl --namespace istio-system annotate Role istio-ingressgateway-sds meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label RoleBinding istio-ingressgateway-sds app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate RoleBinding istio-ingressgateway-sds meta.helm.sh/release-name=istio-ingressgateway kubectl --namespace istio-system annotate RoleBinding istio-ingressgateway-sds meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label HorizontalPodAutoscaler istio-ingressgateway app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate HorizontalPodAutoscaler istio-ingressgateway meta.helm.sh/release-name=istio-ingressgateway kubectl --namespace istio-system annotate HorizontalPodAutoscaler istio-ingressgateway meta.helm.sh/release-namespace=istio-systemIstio-Egress Gatewayオブジェクトを変更します: kubectl --namespace istio-system label ServiceAccount istio-egressgateway-service-account app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate ServiceAccount istio-egressgateway-service-account meta.helm.sh/release-name=istio-egressgateway kubectl --namespace istio-system annotate ServiceAccount istio-egressgateway-service-account meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Service istio-egressgateway app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Service istio-egressgateway meta.helm.sh/release-name=istio-egressgateway kubectl --namespace istio-system annotate Service istio-egressgateway meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Deployment istio-egressgateway app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Deployment istio-egressgateway meta.helm.sh/release-name=istio-egressgateway kubectl --namespace istio-system annotate Deployment istio-egressgateway meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label Role istio-egressgateway-sds app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate Role istio-egressgateway-sds meta.helm.sh/release-name=istio-egressgateway kubectl --namespace istio-system annotate Role istio-egressgateway-sds meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label RoleBinding istio-egressgateway-sds app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate RoleBinding istio-egressgateway-sds meta.helm.sh/release-name=istio-egressgateway kubectl --namespace istio-system annotate RoleBinding istio-egressgateway-sds meta.helm.sh/release-namespace=istio-system kubectl --namespace istio-system label HorizontalPodAutoscaler istio-egressgateway app.kubernetes.io/managed-by=Helm kubectl --namespace istio-system annotate HorizontalPodAutoscaler istio-egressgateway meta.helm.sh/release-name=istio-egressgateway kubectl --namespace istio-system annotate HorizontalPodAutoscaler istio-egressgateway meta.helm.sh/release-namespace=istio-system
- アプリケーション・カタログからIstioをインストールします。Istioの最新バージョンをインストールしてください。 これは、この例で示したものより後の場合があります。 ocne application install --namespace istio-system --name istio-base --release istio-base --version 1.20.5 ocne application install --namespace istio-system --name istiod --release istiod --version 1.20.5 ocne application install --namespace istio-system --name istio-ingress --release istio-ingressgateway --version 1.20.5 ocne application install --namespace istio-system --name istio-egress --release istio-egressgateway --version 1.20.5
- Istioポッドを再起動します。kubectl rollout restart deployment --namespace istio-system istiod kubectl rollout restart deployment --namespace istio-system istio-ingressgateway kubectl rollout restart deployment --namespace istio-system istio-egressgateway
- Istioポッドが実行されていることを確認してください。kubectl get pods -o wide -A
- Istioインストールを検証します。kubectl get pods -A -o yaml | grep image: | grep proxyv2 | grep -i cont出力には、Istioバージョンを示すIstioポッドの imageオプションがproxyv2:1.20.5になりました。 たとえば:image: container-registry.oracle.com/olcne/proxyv2:1.20.5 image: container-registry.oracle.com/olcne/proxyv2:1.20.5 image: container-registry.oracle.com/olcne/proxyv2:1.20.5 image: container-registry.oracle.com/olcne/proxyv2:1.20.5