Mengupgrade Apigee Hybrid

Jika Anda menggunakan Versi 1.0.0 dan ingin mengupgrade, Anda harus melakukan penginstalan baru.

Mengupgrade ke versi 1.2.0

Ikuti langkah-langkah berikut untuk mengupgrade Apigee Hybrid ke versi 1.2.0:

Langkah 1: Upgrade Kubernetes dan download paket rilis

  1. Upgrade platform Kubernetes Anda seperti berikut. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan:
    Platform Mengupgrade ke versi
    GKE 1.14.x
    Anthos 1,2
    AKS 1.14.x
  2. Download paket rilis untuk sistem operasi Anda:

    Mac 64 bit:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.2.0/apigeectl_mac_64.tar.gz

    Linux 64 bit

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.2.0/apigeectl_linux_64.tar.gz

    Mac 32 bit:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.2.0/apigeectl_mac_32.tar.gz

    Linux 32 bit

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.2.0/apigeectl_linux_32.tar.gz

Langkah 2: Mengonfigurasi ulang direktori penginstalan Anda

  1. Identifikasi direktori penginstalan dasar yang dibuat saat Apigee hybrid diinstal pertama kali. Direktori dasar adalah direktori tempat direktori $APIGEEGTL_HOME berada. Dalam contoh berikut, direktori dasarnya adalah /Users/myhome/hybrid:
    echo $APIGEECTL_HOME
    /Users/myhome/hybrid/apigeectl
  2. Ekstrak konten file gzip yang didownload ke direktori dasar Apigee Hybrid:

    tar xvzf filename.tar.gz -C path-to-base-directory
  3. cd ke direktori dasar.
  4. Konten tar secara default diekstrak ke dalam direktori dengan versi dan platform dalam namanya. Misalnya: ./apigeectl_1.2.0-f7b96a8_linux_64.

  5. Ganti nama direktori apigeectl saat ini. Misalnya, jika versi saat ini adalah 1.1.1, ganti nama direktori apigeectl menjadi apigeectl_1.1.1.
  6. Ganti nama direktori penginstalan yang baru diekstrak menjadi apigeectl. Sekarang, $APIGEECTL_HOME menunjuk ke lokasi ini.

Langkah 3: Perbarui file penggantian Anda

  1. Buat salinan file penggantian Anda, dan berhati-hatilah untuk menyimpan file lama jika Anda perlu membatalkan perubahan. Pada langkah-langkah berikut, Anda akan melakukan perubahan yang diperlukan pada file penggantian sebelum menerapkannya ke cluster.
  2. Perbarui file penggantian Anda dengan perubahan yang dijelaskan di bawah:

    Berikut adalah ringkasan perubahan konfigurasi yang harus Anda lakukan pada file penggantian. Contoh lengkap diberikan dalam tabel setelah ringkasan. Seperti yang akan Anda lihat, properti envs[] telah berubah secara signifikan dari versi sebelumnya:

    • Properti envs[].hostAlias telah dihapus dan diganti dengan properti baru virtualhosts.hostAliases[].
    • Anda harus menambahkan properti konfigurasi wajib baru virtualhosts.
    • Anda harus memindahkan properti envs[].sslCertPath dan envs[].sslKeyPath dari envs ke virtualhosts.
    • Anda harus menambahkan stanza konfigurasi virtualhosts.routingRules. Properti virtualhosts.routingRules menggantikan properti envs[].paths sebelumnya. Jika Anda memiliki envs[].paths di file penggantian, Anda harus menghapusnya. Untuk mengetahui informasi selengkapnya tentang konfigurasi host virtual, lihat Mengonfigurasi host virtual.

    Tabel di bawah menggambarkan perbedaan antara file penggantian 1.1.1 dan file versi 1.2.0. Contoh ini dimaksudkan untuk menyoroti jenis perubahan yang perlu Anda lakukan untuk versi 1.2.0:

    Konfigurasi v1.1.x Konfigurasi v1.2.0
    envs:
      - name: test1
        hostAlias: "api.example.com"
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        serviceAccountPaths:
          synchronizer: ./sa/sync.json
          udca: ./sa/udca.json
        paths:
          uri:
            prefixes:
              - /orders
              - /items
      - name: test2
        hostAlias: "api.example.com"
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        serviceAccountPaths:
          synchronizer: ./sa/sync.json
          udca: ./sa/udca.json
        paths:
          uri:
            prefixes:
              - /v0/hello
              - /httpbin
    virtualhosts:
      - name: default
        hostAliases: ["api.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        routingRules:
          - paths:
            - /orders
            - /items
            env: test1
          - paths:
            - /v0/hello
            - /httpbin
            env: test2
    
    envs:
      - name: test1
        serviceAccountPaths:
          synchronizer: ./sa/synchronizer.json
          udca: ./sa/udca.json
      - name: test2
        serviceAccountPaths:
          synchronizer: ./sa/synchronizer.json
          udca: ./sa/udca.json

Langkah 4: Terapkan upgrade ke cluster

  1. Jika Anda mengaktifkan Apigee Connect di penginstalan versi 1.1.1, Anda harus menghapus deployment:
    1. Pertama, cantumkan Deployment Apigee:
      kubectl -n namespace get ad
    2. Hapus deployment Apigee Connect:
      kubectl -n namespace delete ad apigee-connect-name
  2. Mencantumkan pod:
    kubectl get pods -n namespace
  3. Hapus pod apigee-cps-setup dari cluster. Gunakan nama lengkap pod, yang mencakup nama organisasi Anda, seperti yang ditampilkan di perintah sebelumnya. Contoh:
    kubectl -n namespace delete pod apigee-cps-setup-org
  4. Hapus pod apigee-cps-create-user di namespace yang sama:
    kubectl -n namespace delete pod apigee-cps-create-user
  5. 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}')
  6. 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}')
  7. Hapus tugas yang telah selesai untuk namespace istio-system:
    kubectl delete job -n istio-system \
      $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  8. cd ke direktori ./hybrid-files:
  9. Lakukan inisialisasi apigeectl untuk versi baru:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides-file.yaml
  10. Periksa untuk menentukan kapan inisialisasi selesai:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides-file.yaml
  11. Saat check-ready membalas dengan "Semua penampung sudah siap", Anda dapat mencoba penginstalan "uji coba". Jalankan perintah apply dengan flag --dry-run=true. Dengan melakukan uji coba, Anda dapat memeriksa apakah ada error sebelum perubahan dilakukan pada cluster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides-file.yaml --dry-run=true
  12. Jika tidak ada error, Anda dapat menerapkan komponen runtime khusus Apigee ke cluster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides-file.yaml
  13. Jalankan ulang check-ready untuk menentukan kapan upgrade selesai.

Me-roll back upgrade

Ikuti langkah-langkah berikut untuk melakukan roll back upgrade sebelumnya:

  1. 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}')
  2. 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}')
  3. Hapus tugas yang telah selesai untuk namespace istio-system:
    kubectl delete job -n istio-system \
      $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  4. Hapus deployment Apigee Operator. Operasi ini tidak akan memengaruhi traffic runtime Anda:
    kubectl -n apigee-system delete deployment apigee-controller-manager
  5. Ubah variabel $APIGEECTL_HOME agar mengarah ke direktori yang berisi versi asli apigeectl. Contoh:
    export APIGEECTL_HOME=path-to-original-apigeectl-directory
  6. Di direktori root penginstalan yang ingin Anda roll back, jalankan apigeectl init lalu jalankan apigeectl apply. Pastikan untuk menggunakan file penggantian asli untuk versi yang ingin Anda lakukan rollback:
      $APIGEECTL_HOME/apigeectl init -f overrides/original-overrides.yaml
      $APIGEECTL_HOME/apigeectl apply -f overrides/original-overrides.yaml