Jika mengupgrade dari Apigee Hybrid versi 1.3 atau yang lebih lama, Anda harus mengupgrade ke Hybrid versi 1.4 terlebih dahulu sebelum mengupgrade ke versi 1.5.10. Lihat petunjuk untuk Mengupgrade Apigee Hybrid ke versi 1.4.
Ringkasan upgrade ke versi 1.5.10.
Prosedur untuk mengupgrade Apigee Hybrid diatur dalam bagian berikut:
- Mencadangkan penginstalan hybrid Anda.
- Periksa versi Kubernetes Anda dan lakukan upgrade yang sesuai.
- Upgrade ASM.
- Instal versi runtime hybrid 1.5.
Prasyarat
- Apigee Hybrid versi 1.4. Jika Anda melakukan update dari versi sebelumnya, lihat petunjuk untuk Mengupgrade Apigee hybrid ke versi 1.4.
Upgrade ke versi 1.5
- Petunjuk ini menggunakan variabel lingkungan APIGEECTL_HOME untuk direktori
dalam sistem file tempat Anda menginstal
apigeectl
. Jika diperlukan,cd
ke direktoriapigeectl
dan tentukan variabel dengan perintah berikut:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- (Direkomendasikan) Buat salinan cadangan direktori
$APIGEECTL_HOME/
versi 1.4 Anda. Contoh:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.4-backup.tar.gz $APIGEECTL_HOME
- (Direkomendasikan) Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra
- Upgrade platform Kubernetes Anda ke versi yang didukung oleh hybrid 1.5. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.
- Jika Anda menjalankan
cert-manager
versi sebelum v1.2.0, Anda harus mengupgradenya ke v1.2.0.-
Periksa versi
cert-manager
saat ini menggunakan perintah berikut:kubectl -n cert-manager get deployment -o yaml | grep 'image:'
Sesuatu yang mirip dengan berikut akan ditampilkan:
image: quay.io/jetstack/cert-manager-controller:v1.2.0 image: quay.io/jetstack/cert-manager-cainjector:v1.2.0 image: quay.io/jetstack/cert-manager-webhook:v1.2.0
-
Hapus deployment menggunakan perintah berikut:
kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
-
Upgrade
cert-manager
ke versi v1.2.0 menggunakan perintah berikut:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
-
Mengupgrade ASM ke versi 1.26
Lakukan upgrade menggunakan dokumentasi ASM yang sesuai untuk platform Anda:
Petunjuk untuk menginstal dan mengonfigurasi ASM berbeda-beda, bergantung pada platform Anda. Platform dibagi menjadi kategori berikut:
- GKE: Cluster Google Kubernetes Engine yang berjalan di Google Cloud.
- Di luar Google Cloud: Cluster Anthos yang berjalan di:
- Cluster Anthos di VMware (GKE on-prem)
- Anthos on bare metal
- Cluster Anthos di AWS
- Amazon EKS
- Platform Kubernetes Lainnya: Cluster yang sesuai dibuat dan berjalan di:
- AKS
- EKS
- OpenShift
GKE
Urutan untuk mengupgrade ke ASM versi 1.8.x untuk penginstalan hybrid Anda adalah sebagai berikut:
- Bersiap untuk upgrade.
- Instal ASM versi baru.
- Hapus deployment, layanan, dan webhook versi ASM sebelumnya dari penginstalan saat ini.
- Upgrade gateway Anda dan konfigurasikan webhook baru.
Untuk mengupgrade ke ASM versi 1.8.x untuk hybrid di GKE:
- Tinjau persyaratan dalam Mengupgrade Anthos Service Mesh, tetapi jangan lakukan upgrade terlebih dahulu.
- Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan
informasi ini untuk menghapus deployment, layanan, dan
webhook versi ASM sebelumnya dari penginstalan saat ini. Gunakan perintah berikut untuk menyimpan revisi istiod saat ini ke variabel lingkungan:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Buat file
overlay.yaml
baru atau verifikasi bahwa fileoverlay.yaml
yang ada berisi konten berikut:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1260-11 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Ikuti petunjuk di bagian berikut dalam dokumentasi ASM:
- Download asmcli
- Memberikan izin admin cluster
- Memvalidasi project dan cluster
- Upgrade dengan fitur opsional. Berhenti sebelum memulai "bagian Upgrade Gateway"
- Hapus webhook mutasi dan webhook validasi:
cd
ke direktori tempat Anda menginstalasmcli
.- Simpan revisi baru saat ini dalam variabel lingkungan untuk digunakan dalam skrip
untuk menghapus webhook:
UPGRADE_REV="asm-1260-11"
- buat skrip shell yang berisi perintah berikut:
#!/bin/bash set -ex PROJECT_ID="YOUR_PROJECT_ID" CLUSTER_NAME="YOUR_CLUSTER_NAME" CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION" kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi
- Jalankan skrip untuk menghapus webhook saat ini.
- Ikuti langkah-langkah di bagian Mengupgrade gateway untuk membuat webhook baru dan mengalihkan traffic ke gateway baru.
Di luar Google Cloud
Petunjuk ini mencakup upgrade ASM di:
- Cluster Anthos di VMware (GKE on-prem)
- Anthos on bare metal
- Cluster Anthos di AWS
- Amazon EKS
- Tinjau persyaratan dalam Mengupgrade Anthos Service Mesh, tetapi jangan lakukan upgrade terlebih dahulu.
- Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan
informasi ini untuk menghapus validating webhook dan mutating webhook
dari penginstalan ASM Anda saat ini. Gunakan perintah berikut untuk menyimpan revisi istiod saat ini ke variabel lingkungan:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Buat file
overlay.yaml
baru atau verifikasi bahwa fileoverlay.yaml
yang ada berisi konten berikut:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1260-11 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 values: gateways: istio-ingressgateway: runAsRoot: true meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Ikuti petunjuk di bagian berikut dalam dokumentasi ASM:
- Download asmcli
- Memberikan izin admin cluster
- Memvalidasi project dan cluster
- Upgrade dengan fitur opsional. Berhenti sebelum memulai "bagian Upgrade Gateway"
- Hapus webhook mutasi dan webhook validasi:
cd
ke direktori tempat Anda menginstalasmcli
.- Simpan revisi baru saat ini dalam variabel lingkungan untuk digunakan dalam skrip
untuk menghapus webhook:
UPGRADE_REV="asm-1260-11"
- buat skrip shell yang berisi perintah berikut:
#!/bin/bash set -ex PROJECT_ID="YOUR_PROJECT_ID" CLUSTER_NAME="YOUR_CLUSTER_NAME" CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION" gcloud config configurations activate ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID} kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi
- Jalankan skrip untuk menghapus webhook saat ini.
- Ikuti langkah-langkah di bagian Mengupgrade gateway untuk membuat webhook baru dan mengalihkan traffic ke gateway baru.
AKS / EKS
Dalam petunjuk ini, proses mengupgrade versi Anthos Service Mesh (ASM) istio-1.26.0-asm.11 di cluster terpasang Anthos sama dengan melakukan penginstalan baru.
Mempersiapkan penginstalan Anthos Service Mesh
- Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz
- Download file tanda tangan dan gunakan openssl untuk memverifikasi tanda tangan:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya,
untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.26.0-asm.11-linux-amd64.tar.gz
Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama
istio-1.26.0-asm.11
yang berisi:- Contoh aplikasi di direktori
samples
. - Alat command line
istioctl
yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktoribin
. - Profil konfigurasi Anthos Service Mesh ada di direktori
manifests/profiles
.
- Contoh aplikasi di direktori
- Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
cd istio-1.26.0-asm.11
- Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
export PATH=$PWD/bin:$PATH
- Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz
- Download file tanda tangan dan gunakan openssl untuk memverifikasi tanda tangan:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya,
untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.26.0-asm.11-osx.tar.gz
Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama
istio-1.26.0-asm.11
yang berisi:- Contoh aplikasi di direktori
samples
. - Alat command line
istioctl
yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktoribin
. - Profil konfigurasi Anthos Service Mesh ada di direktori
manifests/profiles
.
- Contoh aplikasi di direktori
- Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
cd istio-1.26.0-asm.11
- Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
export PATH=$PWD/bin:$PATH
- Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip
- Download file tanda tangan dan gunakan openssl untuk memverifikasi tanda tangan:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip.1.sig
openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya,
untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.26.0-asm.11-win.zip
Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama
istio-1.26.0-asm.11
yang berisi:- Contoh aplikasi di direktori
samples
. - Alat command line
istioctl
yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktoribin
. - Profil konfigurasi Anthos Service Mesh ada di direktori
manifests\profiles
.
- Contoh aplikasi di direktori
- Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
cd istio-1.26.0-asm.11
- Untuk mempermudah, tambahkan alat di direktori \bin ke PATH Anda:
set PATH=%CD%\bin:%PATH%
- Setelah ASM Istio diinstal, periksa versi
istioctl
:istioctl version
- Buat namespace bernama istio-system untuk komponen bidang kontrol:
kubectl create namespace istio-system
Linux
Mac OS
Windows
Mengonfigurasi webhook validasi
Saat menginstal Anthos Service Mesh, Anda menetapkan label revisi pada istiod. Anda harus menetapkan revisi yang sama pada webhook validasi.
- Buat file bernama
istiod-service.yaml
dengan konten berikut:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1260-11 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1260-11 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Gunakan
kubectl
untuk menerapkan konfigurasi webhook validasi:kubectl apply -f istiod-service.yaml
- Verifikasi bahwa konfigurasi telah diterapkan:
kubectl get svc -n istio-system
Responsnya akan terlihat seperti:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Menginstal Anthos Service Mesh
- Instal Anthos Service Mesh dengan
istioctl
menggunakan profilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1260-11"
Output Anda akan terlihat seperti:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1260-11-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1260-11-798ffb964-fnj8c 1/1 Running 1 3m21s
Argumen
--set revision
menambahkan label revisi dalam formatistio.io/rev=asm-1260-11
ke istiod. Label revisi digunakan oleh webhook penyuntik file bantuan otomatis untuk mengaitkan file bantuan yang disuntikkan dengan revisi istiod tertentu. Untuk mengaktifkan injeksi otomatis sidecar untuk namespace, Anda harus memberi label dengan revisi yang cocok dengan label di istiod. - Pastikan penginstalan Anda selesai:
kubectl get svc -n istio-system
Output Anda akan terlihat seperti:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1260-11 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
Dalam petunjuk ini, proses mengupgrade versi Anthos Service Mesh (ASM) istio-1.26.0-asm.11 di cluster terpasang Anthos sama dengan melakukan penginstalan baru.
Mempersiapkan penginstalan Anthos Service Mesh
- Berikan batasan konteks keamanan (SCC)
anyuid
ke istio-system dengan perintah OpenShift CLI (oc
) berikut:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz
- Download file tanda tangan dan gunakan openssl untuk memverifikasi tanda tangan:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya,
untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.26.0-asm.11-linux-amd64.tar.gz
Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama
istio-1.26.0-asm.11
yang berisi:- Contoh aplikasi di direktori
samples
. - Alat command line
istioctl
yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktoribin
. - Profil konfigurasi Anthos Service Mesh ada di direktori
manifests/profiles
.
- Contoh aplikasi di direktori
- Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
cd istio-1.26.0-asm.11
- Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
export PATH=$PWD/bin:$PATH
- Berikan batasan konteks keamanan (SCC)
anyuid
ke istio-system dengan perintah OpenShift CLI (oc
) berikut:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz
- Download file tanda tangan dan gunakan openssl untuk memverifikasi tanda tangan:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya,
untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.26.0-asm.11-osx.tar.gz
Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama
istio-1.26.0-asm.11
yang berisi:- Contoh aplikasi di direktori
samples
. - Alat command line
istioctl
yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktoribin
. - Profil konfigurasi Anthos Service Mesh ada di direktori
manifests/profiles
.
- Contoh aplikasi di direktori
- Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
cd istio-1.26.0-asm.11
- Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
export PATH=$PWD/bin:$PATH
- Berikan batasan konteks keamanan (SCC)
anyuid
ke istio-system dengan perintah OpenShift CLI (oc
) berikut:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip
- Download file tanda tangan dan gunakan openssl untuk memverifikasi tanda tangan:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip.1.sig
openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya,
untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.26.0-asm.11-win.zip
Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama
istio-1.26.0-asm.11
yang berisi:- Contoh aplikasi di direktori
samples
. - Alat command line
istioctl
yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktoribin
. - Profil konfigurasi Anthos Service Mesh ada di direktori
manifests\profiles
.
- Contoh aplikasi di direktori
- Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
cd istio-1.26.0-asm.11
- Untuk mempermudah, tambahkan alat di direktori \bin ke PATH Anda:
set PATH=%CD%\bin:%PATH%
- Setelah ASM Istio diinstal, periksa versi
istioctl
:istioctl version
- Buat namespace bernama istio-system untuk komponen bidang kontrol:
kubectl create namespace istio-system
Linux
Mac OS
Windows
Mengonfigurasi webhook validasi
Saat menginstal Anthos Service Mesh, Anda menetapkan label revisi pada istiod. Anda harus menetapkan revisi yang sama pada webhook validasi.
- Buat file bernama
istiod-service.yaml
dengan konten berikut:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1260-11 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1260-11 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Gunakan
kubectl
untuk menerapkan konfigurasi webhook validasi:kubectl apply -f istiod-service.yaml
- Verifikasi bahwa konfigurasi telah diterapkan:
kubectl get svc -n istio-system
Responsnya akan terlihat seperti:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Menginstal Anthos Service Mesh
- Instal Anthos Service Mesh dengan
istioctl
menggunakan profilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision=istio-1.26.0-asm.11
Output Anda akan terlihat seperti:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1260-11-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1260-11-798ffb964-fnj8c 1/1 Running 1 3m21s
Argumen
--set revision
menambahkan label revisi dalam formatistio.io/rev=1.8.6-asm.1
ke istiod. Label revisi digunakan oleh webhook penyuntik file bantuan otomatis untuk mengaitkan file bantuan yang disuntikkan dengan revisi istiod tertentu. Untuk mengaktifkan injeksi otomatis sidecar untuk namespace, Anda harus memberi label dengan revisi yang cocok dengan label di istiod. - Pastikan penginstalan Anda selesai:
kubectl get svc -n istio-system
Output Anda akan terlihat seperti:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1260-11 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Menginstal runtime hybrid 1.5.10
Download paket rilis untuk sistem operasi Anda:
Mac 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_64.tar.gz
Linux 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_64.tar.gz
Mac 32 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_32.tar.gz
Linux 32 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_32.tar.gz
- Ubah nama direktori
apigeectl/
Anda saat ini menjadi nama direktori cadangan. Contoh:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/
-
Ekstrak konten file gzip yang didownload ke direktori dasar hybrid Anda. Contoh:
tar xvzf FILENAME.tar.gz -C HYBRID_BASE_DIRECTORY
cd
ke direktori dasar.-
Konten tar secara default diekstrak ke dalam direktori dengan versi dan platform dalam namanya. Misalnya:
./apigeectl_1.5.0-d591b23_linux_64
. Ganti nama direktori tersebut menjadiapigeectl
:mv apigeectl_1.5.0-d591b23_linux_64 apigeectl
- Di direktori new
apigeectl/
, jalankanapigeectl init
,apigeectl apply
, danapigeectl check-ready
:- Inisialisasi hybrid 1.5.10:
apigeectl init -f OVERRIDES
.yaml
Dengan OVERRIDES
.yaml
adalah fileoverrides.yaml
yang telah Anda edit. - Pastikan diinisialisasi dengan benar menggunakan perintah berikut:
apigeectl check-ready -f OVERRIDES
.yaml
kubectl describe apigeeds -n apigee
Output Anda akan terlihat seperti:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running
- Sintaksis tanda
apigeectl
--dry-run
bergantung pada versikubectl
yang Anda jalankan. Periksa versikubectl
:gcloud version
- Periksa error dengan uji coba menggunakan perintah yang sesuai dengan versi
kubectl
Anda:kubectl
versi 1.17 dan yang lebih lama:apigeectl apply -f OVERRIDES
.yaml
--dry-run=truekubectl
versi 1.18 dan yang lebih baru:apigeectl apply -f OVERRIDES
.yaml
--dry-run=client - Terapkan penggantian Anda. Pilih dan ikuti petunjuk untuk lingkungan produksi atau
lingkungan demo/eksperimental, bergantung pada penginstalan Anda.
Produksi
Untuk lingkungan produksi, Anda harus mengupgrade setiap komponen hybrid satu per satu, dan memeriksa status komponen yang diupgrade sebelum melanjutkan ke komponen berikutnya.
- Terapkan penggantian Anda untuk mengupgrade Cassandra:
apigeectl apply -f OVERRIDES
.yaml
--datastore - Penyelesaian pemeriksaan:
apigeectl check-ready -f OVERRIDES
.yaml
Lanjutkan ke langkah berikutnya hanya jika pod sudah siap.
- Terapkan penggantian untuk mengupgrade komponen Telemetri dan memeriksa penyelesaian:
apigeectl apply -f OVERRIDES
.yaml
--telemetryapigeectl check-ready -f OVERRIDES
.yaml
- Aktifkan komponen Redis:
apigeectl apply -f OVERRIDES
.yaml
--redis - Terapkan penggantian untuk mengupgrade komponen tingkat organisasi (MART, Watcher, dan Apigee
Connect) dan periksa penyelesaian:
apigeectl apply -f OVERRIDES
.yaml
--orgapigeectl check-ready -f OVERRIDES
.yaml
- Terapkan penggantian untuk mengupgrade lingkungan Anda. Anda memiliki dua pilihan:
- Lingkungan demi lingkungan: Terapkan penggantian Anda ke satu lingkungan dalam satu waktu dan periksa penyelesaiannya. Ulangi
langkah ini untuk setiap lingkungan:
apigeectl apply -f OVERRIDES
.yaml
--env ENV_NAMEapigeectl check-ready -f OVERRIDES
.yaml
Dengan ENV_NAME adalah nama lingkungan yang Anda upgrade.
- Semua lingkungan sekaligus: Terapkan penggantian ke semua lingkungan sekaligus dan periksa penyelesaiannya:
apigeectl apply -f OVERRIDES
.yaml
--all-envsapigeectl check-ready -f OVERRIDES
.yaml
- Lingkungan demi lingkungan: Terapkan penggantian Anda ke satu lingkungan dalam satu waktu dan periksa penyelesaiannya. Ulangi
langkah ini untuk setiap lingkungan:
Demo/Eksperimental
Di sebagian besar lingkungan demo atau eksperimental, Anda dapat menerapkan penggantian ke semua komponen sekaligus. Jika lingkungan demo/eksperimental Anda besar dan kompleks atau sangat mirip dengan lingkungan produksi, sebaiknya gunakan petunjuk untuk mengupgrade lingkungan produksi
apigeectl apply -f OVERRIDES
.yaml
- Periksa status:
apigeectl check-ready -f OVERRIDES
.yaml
- Terapkan penggantian Anda untuk mengupgrade Cassandra:
- Inisialisasi hybrid 1.5.10:
Me-roll back upgrade
Ikuti langkah-langkah berikut untuk melakukan roll back upgrade sebelumnya:
- Hapus tugas yang telah selesai untuk namespace runtime hybrid, dengan NAMESPACE adalah
namespace yang ditentukan dalam file penggantian, jika Anda menentukan namespace. Jika tidak, namespace default
adalah
apigee
:kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Hapus tugas yang telah selesai untuk namespace
apigee-system
:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Ubah variabel
APIGEECTL_HOME
agar mengarah ke direktori yang berisiapigeectl
versi sebelumnya. Contoh:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- Di direktori root penginstalan yang ingin Anda kembalikan, jalankan
apigeectl apply
, periksa status pod Anda, hapus komponen Redis (baru di hybrid v1.5.0), lalu jalankanapigeectl init
. Pastikan untuk menggunakan file penggantian asli untuk versi yang ingin Anda roll back:- Jalankan
apigeectl apply
:$APIGEECTL_HOME
/apigeectl apply -f overrides/ORIGINAL_OVERRIDES.yaml
- Periksa status pod Anda:
kubectl -n NAMESPACE get pods
Dengan NAMESPACE adalah namespace Apigee Hybrid Anda.
Lanjutkan ke langkah berikutnya hanya jika pod
apigeeds
sedang berjalan. -
Karena Redis adalah komponen baru di hybrid v1.5, jalankan perintah berikut untuk menghapusnya:
apigeectl_1.5.0 delete --redis -f ORIGINAL_OVERRIDES
.yaml
- Jalankan
apigeectl init
:$APIGEECTL_HOME
/apigeectl init -f overrides/ORIGINAL_OVERRIDES.yaml
- Jalankan