Apigee'yi Google Distributed Cloud air-gapped'e yükleme

Bu kılavuzda, Apigee Edge for Private Cloud ve API proxy'lerinin, internet bağlantısı olmayan bir Google Distributed Cloud (GDC) ortamında nasıl yükleneceği ve dağıtılacağı açıklanmaktadır. Apigee Edge for Private Cloud dahil GDC air-gapped teklifleri, altyapı ve hizmetleri yönetmek için Google Cloud'a bağlantı gerektirmez. Tüm işlemler için tesisinizde barındırılan yerel bir kontrol düzlemi kullanabilirsiniz. GDC air-gapped'e genel bakış için genel bakış bölümüne bakın.

Bu kılavuz, Apigee Edge Private Cloud'a aşina olan ve Kubernetes hakkında temel düzeyde bilgi sahibi olan Apigee operatörleri için hazırlanmıştır.

Gerekli adımlara genel bakış

Apigee Edge for Private Cloud'u hava boşluklu bir GDC ortamına yüklemek ve dağıtmak için operatörün aşağıdaki adımları tamamlaması gerekir:

Başlamadan önce

Yükleme işlemine başlamadan önce aşağıdaki adımları tamamladığınızdan emin olun:

  1. Henüz oluşturmadıysanız yükleme için kullanılacak bir GDC projesi oluşturun. Daha fazla bilgi için Proje oluşturma başlıklı makaleyi inceleyin.
  2. GDC'ye bağlı bir iş istasyonuna veya kuruluşunuzun sürekli dağıtım ortamına gdcloud CLI'yı indirip yükleyin ve yapılandırın.
  3. gdcloud KSA'yı ve kubectl API'yi kullanmak için gereken kimlik bilgilerini alın. Gerekli adımlar için Erişim için hesabınızın kimliğini doğrulama başlıklı makaleyi inceleyin.
  4. Apigee hesap yöneticinizden aldığınız Apigee kullanıcı adını ve şifresini onaylayın.
  5. GKE yönetici kümenizin ve GKE kullanıcı kümenizin adını onaylayın.

Kapasite koşulları

GDC'ye Apigee Edge for Private Cloud'u yüklemek için belirli kaynak ayırmalarıyla birkaç sanal makine (VM) gerekir. Bu VM'ler, işlem kaynaklarına (RAM, vCPU çekirdekleri) ve yerel disk depolama alanına göre ücretlendirilir. Daha fazla bilgi için Fiyatlandırma bölümüne bakın.

Aşağıdaki tabloda her bir sanal makine için kaynak gereksinimleri gösterilmektedir:

Sanal makine türü RAM vCPU çekirdekleri Disk depolama alanı
Depo düğümü 8 GB 2 vCPU çekirdeği 64 GB
Kontrol düğümü 8 GB 2 vCPU çekirdeği 64 GB
Apigee API yönetim düğümleri 1, 2 ve 3 16 GB RAM 8 vCPU çekirdeği 670 GB
Apigee API yönetimi düğümleri 4 ve 5 16 GB RAM 8 vCPU çekirdeği 500 GB - 1TB

Roller ve izinler

Apigee Edge for Private Cloud'u hava boşluklu bir GDC ortamına dağıtmak için aşağıdaki roller ve izinler gereklidir:

  • Platform Yöneticisi (PA): IAM Admin rolünü atayın.
  • Uygulama Operatörü (AO): Aşağıdaki rolleri atayın:
    • Harbor Instance Admin: Bir projedeki Harbor örneklerini yönetmek için tam erişime sahip olmalıdır.
    • LoggingTarget Creator: Proje ad alanında LoggingTarget özel kaynak oluşturur.
    • LoggingTarget Editor: Proje ad alanındaki LoggingTarget özel kaynaklarını düzenler.
    • Project Bucket Admin: Depolama paketlerini ve paketlerdeki nesneleri yönetir.
    • Project Grafana Viewer: Proje ad alanındaki izleme örneğine erişir.
    • Project NetworkPolicy Admin: Proje ad alanındaki proje ağı politikalarını yönetir.
    • Project VirtualMachine Admin: Proje ad alanındaki sanal makineleri yönetir.
    • Secret Admin: Projelerdeki Kubernetes gizli anahtarlarını yönetir.
    • Service Configuration Admin: Bir proje ad alanındaki hizmet yapılandırmalarına okuma ve yazma erişimi vardır.
    • Namespace Admin: Proje ad alanlarındaki tüm kaynakları yönetir.
  • GDC'de air-gapped roller ve izinler verme hakkında daha fazla bilgi edinmek için Erişim verme ve erişimi iptal etme başlıklı makaleyi inceleyin.

    Sınırlamalar

    GDC'de hava boşluklu Apigee için aşağıdaki sınırlamalar geçerlidir:

    • GDC'de hava boşluklu Apigee, DNS sunucularıyla birlikte gelmez ve geçici çözüm olarak yerel DNS çözümlemesini kullanır. GDC'de hava boşluklu Apigee, harici DNS sunucularının bulunduğu bir ortamda dağıtılıyorsa yerel DNS'yi yapılandıran adımları DNS sunucularındaki DNS girişlerini yapılandırma adımlarıyla değiştirin.
    • GDC'de hava boşluklu Apigee, bağımsız bir SMTP sunucusu içermez. Yönetim sunucusu ve yönetim kullanıcı arayüzünden hesap oluşturma ve şifre sıfırlama işlemleri için giden e-posta bildirimlerini etkinleştirmek üzere istediğiniz zaman bir SMTP sunucusu yapılandırabilirsiniz. Yönetim API'leri, Apigee kullanıcı hesabı yönetimi için kullanılmaya devam edecektir. Daha fazla bilgi için Edge SMTP sunucusunu yapılandırma başlıklı makaleyi inceleyin.
    • GDC'de hava boşluklu Apigee, izinsiz giriş tespitini ve önlemeyi uygulamaz. Kötü amaçlı etkinlikleri tespit etmek ve önlemek için Snort gibi bir İzinsiz Girişi Önleme Sistemi (IPS) yükleyin ve yapılandırın.

    Gerekli dosyaları edinme

    Yükleme dosyalarını almak için önce bağlı bir düğüm oluşturmanız, ardından dosyaları indirmeniz gerekir.

    Bağlı düğüm oluşturma

    Bağlı düğüm, yükleme dosyalarını indirmek için kullandığınız GDC dışındaki tek bir sanal makinedir. Bu sanal makine için internet erişimi gerekir ve yalnızca yükleme işlemi için kullanılır.

    Bağlı düğüm için aşağıdaki kapasite ve yapılandırma gerekir:

    • İşletim Sistemi: Rocky Linux 8
    • Makine boyutu: 8 GB RAM; 2 sanal CPU çekirdeği; 64 GB yerel disk depolama alanı
    • Bağlantı:
      • Giriş: TCP 22 (SSH)
      • Çıkış: İnternet

    Bağlı düğümü oluşturmak için Sanal makine örneği oluşturma ve başlatma bölümündeki talimatları uygulayın. Sanal makine oluşturulduktan sonra Linux sanal makinelerine bağlanma bölümündeki talimatları uygulayın. sanal makineye bağlanmak için. Desteklenen işletim sistemlerinin listesi için GDC destekli işletim sistemleri başlıklı makaleyi inceleyin.

    Yükleme dosyalarını indirme

    Yükleme dosyalarını indirmek için:

    1. Edge for Private Cloud sütununda belirtildiği gibi, GDC için desteklenen en son resmi sürüm için Apigee Edge for Private Cloud sürüm notlarını inceleyin.
    2. Edge kurulum dosyasını indirin:
      curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'

      Burada:

      • APIGEE_USER, Apigee kuruluşu için aldığınız kullanıcı adıdır.
      • APIGEE_PASSWORD, Apigee kuruluşu için aldığınız şifredir.
      • VERSION, yüklemeyi planladığınız GDC'de kullanılacak Apigee Edge Private Cloud sürümüdür (ör. 4.53.01).
    3. En son Apigee Edge Private Cloud bootstrap_VERSION.sh dosyasını /tmp/bootstrap_VERSION.sh konumuna indirin:
      curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh

      Burada VERSION, yüklemek istediğiniz GDC'de kullanılacak en son Apigee Edge Private Cloud sürümüdür (ör. 4.53.01).

    4. Edge apigee-service yardımcı programını ve bağımlılıklarını yükleyin:
      sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD

      Burada:

      • APIGEE_USER, Apigee kuruluşu için aldığınız kullanıcı adıdır.
      • APIGEE_PASSWORD, Apigee kuruluşu için aldığınız şifredir.
      • VERSION, yüklemeyi planladığınız GDC'de kullanılacak Apigee Edge Private Cloud sürümüdür.

    5. Bağlı düğümde kurulum komut dosyasını çalıştırın:
      chmod a+x connected-node_setup.sh \
        ./connected-node_setup.sh

      Bu adımda komut dosyası, gerekli dosyaları aşağıdaki konumlarda oluşturur (örneğin, 4.53.01 sürümü için):

      • /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz
      • /tmp/apigee-nginx/apigee-nginx.tar
      • /tmp/fluentbit/fluentbit.tar
      • /tmp/postgresql14/postgresql14.tar
      • /tmp/ansible-rpms.tar
      • /tmp/apigee-repos.tar
    6. Gerekli dosyaları bağlı düğümden yerel makineye SSH üzerinden aktarın:
      mkdir apigee-files
      cd apigee-files
      for file in /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz /tmp/ansible-rpms.tar /tmp/apigee-nginx/apigee-nginx.tar /tmp/fluentbit/fluentbit.tar /tmp/postgresql14/postgresql14.tar /tmp/apigee-repos.tar; do
        scp -i SSH_PRIVATE_KEY_FILE USER@CONNECTED_NODE_IP:$file .
        done

      Burada:

      • SSH_PRIVATE_KEY_FILE, SSH özel anahtar dosyasının yoludur.
      • USER, bağlı düğümün kullanıcı adıdır.
      • CONNECTED_NODE_IP, bağlı düğümün IP adresidir.

    Depolama paketini ayarlama

    Bu adımda, GDC operatörü GDC projesinde Apigee Edge for Private Cloud yedekleme dosyalarını depolamak için bir depolama alanı grubu oluşturur.

    Storage paketi oluşturma

    GDC projesinde depolama paketi oluşturmak için:

    1. Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
      gdcloud auth login --login-config-cert WEB_TLS_CERT
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      Burada:

      • WEB_TLS_CERT, web TLS sertifikasının yoludur.
      • ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.

    2. Proje ve paket ortam değişkenlerini ayarlayın:
      export PROJECT=PROJECT
      export BUCKET=BUCKET_NAME

      Burada:

      • PROJECT, GDC projenizin adıdır.
      • BUCKET_NAME, Apigee Edge Private Cloud yedekleme dosyalarını depolamak için oluşturmak istediğiniz paketin adıdır.
    3. Paket yapılandırmasını uygulayın:
      kubectl apply -f - <<EOF
      apiVersion: object.GDC.goog/v1
      kind: Bucket
      metadata:
        name: $BUCKET
        namespace:$PROJECT
      spec:
        description: bucket for Apigee backup files
        storageClass: Standard
        bucketPolicy :
          lockingPolicy :
            defaultObjectRetentionDays: 30
      EOF

      Bu yapılandırma, 30 günlük tutma süresine sahip bir paket oluşturur.

    Paket erişimini yapılandırma

    Depolama alanı paketine erişimi yapılandırmak için:

    1. Projede bir hizmet hesabı oluşturun:
      gdcloud iam service-accounts create $BUCKET-sa \
          --project=$PROJECT
    2. Pakete erişmek için gizli anahtar oluşturmak üzere rolü ve rol bağlamayı oluşturun:
      kubectl apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: $BUCKET-role
        namespace: $PROJECT
      rules:
      -   apiGroups:
        -   object.gdc.goog
        resourceNames:
        -   $BUCKET
        resources:
        -   buckets
        verbs:
        -   get
        -   read-object
        -   write-object
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: $BUCKETrolebinding
        namespace: $PROJECT
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: $BUCKET-role
      subjects:
      -   kind: ServiceAccount
        name: $BUCKET-sa
        namespace: $PROJECT
      EOF
    3. Gizli anahtardan erişim anahtarı kimliğini ve anahtarı alın:
      export BUCKET_SECRET=$(kubectl get secret -n $PROJECT -o jsonpath="{range .items[*]}{.metadata.name}{':'}{.metadata.annotations['object\.GDC\.goog/subject']}{'\n'}{end}" | grep $BUCKET | tail -1 | cut -f1 -d :)
      echo "access-key-id=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['access-key-id']}")"
      echo "access-key=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['secret-access-key']}")"

      Çıkış şuna benzer şekilde görünmelidir:

      access-key-id=RFdJMzRROVdWWjFYNTJFTzJaTk0=
      access-key=U3dSdm5FRU5WdDhMckRMRW1QRGV0bE9MRHpCZ0Ntc0cxVFJQdktqdg==
    4. Yükleyici tarafından kullanıcı GKE kümesinde kullanılacak bir gizli dizi oluşturun:
      1. Kullanıcı GKE kümesiyle kimlik doğrulayın:
        gdcloud clusters get-credentials USER_CLUSTER

        Burada USER_CLUSTER, kullanıcı GKE kümesinin adıdır.

      2. Gizli yapılandırmayı uygulayın:
        kubectl apply -f - <<EOF
        apiVersion: v1
        kind: Secret
        metadata:
          namespace: $PROJECT
          name: $BUCKET-secret
        type: Opaque
        data:
          access-key-id: ACCESS_KEY_ID
          access-key: ACCESS_KEY
        EOF

        Burada:

        • ACCESS_KEY_ID, önceki adımda elde edilen erişim anahtarı kimliğidir.
        • ACCESS_KEY önceki adımda elde edilen erişim anahtarıdır.
    5. Paketin depolama uç noktasını, tam nitelikli alan adını (FQDN) ve bölgesini alın:
      1. Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
        gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

        Burada ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.

      2. Paketin depolama uç noktasını, tam nitelikli alan adını (FQDN) ve bölgesini alın:
        kubectl get buckets ${BUCKET} -n $PROJECT -o jsonpath="{'endpoint: '}{.status.endpoint}{'\n'}{'bucket: '}{.status.fullyQualifiedName}{'\n'}{'region: '}{.status.region}{'\n'}"

        Çıkış şuna benzer şekilde görünmelidir:

        endpoint: https://objectstorage.gpu-org.cookie.sesame.street
        bucket: ez9wo-apigee-backup-bucket
        region: cookie
    6. apigee/helm_user_cluster/values-cookie-air-gapped.yaml dosyasında aşağıdaki değerleri güncelleyin:
      objectstorekeyname: "apigee-backup-bucket-secret"
      objectstoreurl: "BUCKET_ENDPOINT"
      objectstorebucket: "BUCKET_FQDN"

      Burada:

      • BUCKET_ENDPOINT önceki adımda elde edilen paketin uç noktasıdır.
      • BUCKET_FQDN, önceki adımda elde edilen paketin tam nitelikli alan adıdır.

    Depo düğümünü ayarlama

    Bu adımda GDC operatörü, Apigee Edge for Private Cloud yansıtma deposunu barındırmak için bir depo düğümü oluşturur.

    Depo düğümü oluşturma

    Depo düğümü oluşturmak için:

    1. apigee/helm_user_cluster/values-cookie-air-gapped.yaml uygulamasını şu şekilde güncelleyin:
      repo_node:
        enabled: true
      
      apigee_node:
        enabled: false
      
      control_node:
        enabled: false

      repo_node'nın etkin olduğundan, apigee_node ve control_node'nin ise devre dışı bırakıldığından emin olun. Bu düğümler daha sonraki bir adımda dağıtılır.

    2. Kuruluş yöneticisi kümesi için kimlik bilgilerini alın:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      Burada ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.

    3. Python sanal ortamı oluşturun:
      python3 -m venv venv /
      source venv/bin/activate
    4. Depo düğümünü oluşturmak için dağıtım komut dosyasını çalıştırın:
      python apigee/solution_deploy.py gdc-air-gapped

    Depo düğümü erişimini yapılandırma

    Depo düğümüne erişimi yapılandırmak için:

    1. Depo düğümü için SSH'yi yapılandırın:
      export NODE=repo
      kubectl create -n $PROJECT -f - <<EOF
        apiVersion: virtualmachine.GDC.goog/v1
        kind: VirtualMachineAccessRequest
        metadata:
          generateName: $NODE-
        spec:
          ssh:
            key: |
              "cat SSH_PUBLIC_KEY_FILE"
        ttl: 24h
        user: admin
        vm: $NODE
        EOF

      Burada SSH_PUBLIC_KEY_FILE, ortak SSH anahtarınızı içeren dosyanın adıdır.

    2. Depo düğümünün harici IP adresini alın:
      kubectl get virtualmachineexternalaccess -n $PROJECT $NODE -ojsonpath='{.status.ingressIP}'
    3. Depo düğümünün dahili IP adresini alın:
      kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT $NODE -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'

    Yükleme dosyalarını yükleme

    Bu adımda, GDC operatörü aşağıdaki dosyaların en son sürümünü depo düğümüne yükler:

    • apigee-4.53.01
    • apigee-nginx.tar
    • postgresql14.tar
    • fluentbit.tar
    • ansible-rpms.tar
    • apigee-repos.tar

    Yükleme dosyalarını yüklemek için:

    1. SSH özel anahtar dosyasını depo düğümüne kopyalayın:
      scp -i SSH_PRIVATE_KEY_FILE ~/apigee-files/* admin@REPO_EXTERNAL_IP:/tmp

      Burada:

      • SSH_PRIVATE_KEY_FILE, özel SSH anahtarınızı içeren dosyanın adıdır.
      • REPO_EXTERNAL_IP, önceki adımda elde edilen depo düğümünün harici IP adresidir.
    2. Fluent Bit yapılandırmalarını içeren klasörü depo düğümüne yükleyin:
      scp -i SSH-PRIVATE-KEY-FILE -r apigee/scripts/fluent-bit admin@REPO_EXTERNAL_IP:/tmp/fluent-bit

      Burada:

      • SSH_PRIVATE_KEY_FILE, özel SSH anahtarınızı içeren dosyanın adıdır.
      • REPO_EXTERNAL_IP, depo düğümünün harici IP adresidir.

    Yansıtma deposunu yapılandırma

    Yansıtma deposunu yapılandırmak için:

    1. apigee/scripts/repo_setup.sh dosyasını depo düğümüne kopyalayın.
    2. Komut dosyasında REPO_USER ve REPO_PASSWORD değerlerini, yansıtma deposu için istediğiniz kullanıcı adı ve şifreyle değiştirin.
    3. Komut dosyasını çalıştırın:
      chmod a+x repo_setup.sh
      ./repo_setup.sh

      No such file or directory hatasıyla karşılaşırsanız komut dosyasını yeniden çalıştırın.

    4. Yansıtma deposuyla bağlantıyı depo düğümünden yerel olarak test edin.
      curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
      curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/apigee/release/VERSION/repodata/repomd.xml

      VERSION kısmını, yüklemek istediğiniz Apigee Edge Private Cloud sürümüyle değiştirin.

    Apigee düğümlerini dağıtma

    Bu adımda, GDC operatörü Apigee API yönetimi düğümlerini dağıtır.

    Apigee düğümleri oluşturma

    Apigee API yönetim düğümlerini oluşturmak için:

    1. REPO_INTERNAL_IP, REPO_USER_NAME ve REPO_PASSWORD öğelerini apigee/helm/scripts/apigee_setup.sh içinde istediğiniz değerlerle değiştirin.
    2. Değerleri ortam değişkenleri olarak dışa aktarın:
      export REPO_IP=REPO_INTERNAL_IP
      export REPO_USER=REPO_USER_NAME
      export REPO_PASSWORD=REPO_PASSWORD
    3. apigee/helm/values-cookie-air-gapped.yaml bölümünde apigee_node seçeneğini aşağıdaki gibi etkinleştirin:
      apigee_node:
        enabled: true
      
    4. Apigee düğümlerini oluşturmak için dağıtım komut dosyasını çalıştırın:
        source venv/bin/activate
        python apigee/solution_deploy.py gdc-air-gapped

    Apigee düğümü erişimini yapılandırma

    Apigee API yönetimi düğümlerine erişimi yapılandırın:

    1. Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      Burada ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.

    2. Her düğüm için bir SSH anahtarı oluşturun:
      for i in 1 2 3 4 5; do
        kubectl create -n $PROJECT -f - <<EOF
        apiVersion: virtualmachine.GDC.goog/v1
        kind: VirtualMachineAccessRequest
        metadata:
          generateName: node$i
        spec:
          ssh:
            key: |
              "cat SSH_PUBLIC_KEY_FILE"
        ttl: 24h
        user: admin
        vm: node$i
        EOF
        done

      Burada SSH_PUBLIC_KEY_FILE, ortak SSH anahtarınızı içeren dosyanın adıdır.

    3. Apigee düğümlerinin harici IP adreslerini alın:
      for i in 1 2 3 4 5; do
        kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}'
        echo
        done
    4. Apigee düğümlerinin dahili IP adreslerini alın:
      for i in 1 2 3 4 5; do
        kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT node$i -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'
        echo
        done
    5. (İsteğe bağlı) Başlangıç komut dosyalarının Apigee düğümlerinde başarıyla çalışıp çalışmadığını kontrol edin:
      1. Node'a SSH uygulayın ve aşağıdaki komutu çalıştırın:
        sudo journalctl -u cloud-final -f
      2. Aşağıdakine benzer günlükleri arayın:
        Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Complete!
        Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Finished running the command: . /var/lib/google/startup-scripts/apigee-setup

    Kontrol düğümünü ayarlama

    Bu adımda, GDC operatörü Apigee yüklemelerini yönetmek için bir kontrol düğümü oluşturur.

    Kontrol düğümü oluşturma

    Kontrol düğümü oluşturmak için:

    1. REPO_INTERNAL_IP, REPO_USER_NAME ve REPO_PASSWORD öğelerini apigee/helm/scripts/control_setup.sh içinde istediğiniz değerlerle değiştirin.
    2. apigee/helm/values-cookie-air-gapped.yaml bölümünde control_node özelliğini aşağıdaki gibi etkinleştirin:
      control_node:
        enabled: true
      
    3. Kontrol düğümünü oluşturmak için dağıtım komut dosyasını çalıştırın:
      source venv/bin/activate
      python apigee/solution_deploy.py gdc-air-gapped

    Denetim düğümü erişimini yapılandırma

    Denetim düğümü erişimini yapılandırmak için:

    1. Kontrol düğümüne SSH erişimini yapılandırın:
      kubectl create -n $PROJECT -f - <<EOF
      apiVersion: virtualmachine.GDC.goog/v1
      kind: VirtualMachineAccessRequest
      metadata:
        generateName: control-
      spec:
        ssh:
          key: |
            "cat SSH_PUBLIC_KEY_FILE"
      ttl: 24h
      user: admin
      vm: control
      EOF
    2. Kontrol düğümünün harici IP adresini alın:
      kubectl get virtualmachineexternalaccess -n $PROJECT control -ojsonpath='{.status.ingressIP}'
    3. Kontrol düğümünün dahili IP'sini alın:
      kubectl get virtualmachines.virtualmachine.GDC.goog -n $PROJECT control -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'

    Ansible'ı yapılandırma

    Bu adımda, GDC operatörü kontrol düğümünde ortamını kurar.

    Ansible ortamını yapılandırmak için:

    1. Kontrol düğümüne SSH uygulayın ve Ansible ortamını ayarlayın:
      cd /home/admin
      cp -r /tmp/apigee-repos .
      cd apigee-repos/ansible-opdk-accelerator/setup
    2. Uzak Git depolarını yerel dosyayla değiştirme:
      sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g'  requirements.yml
      sed -i 's/\.git$//g'  requirements.yml
      
    3. Install Ansible requirements:
        sudo chown -R admin /home/admin/apigee-repos
        ansible-galaxy install -r requirements.yml -f
    4. Kurulum yapılandırmasını güncelleyin:
      1. main.yml dosyasını düzenleyin:
        vi ~/apigee-repos/ansible-opdk-accelerator/setup/roles/apigee-opdk-setup-ansible-controller/tasks/main.yml
      2. GitHub erişimi gerektiren görevleri kaldırın:
        • Yapılandırma depolarının Git SSH ile ödeme işlemi
        • Yapılandırma depolarının Git HTTPS ile ödeme işlemi
      3. Kurulum başucu kitabını çalıştırın:
        cd ~/apigee-repos/ansible-opdk-accelerator/setup
        ansible-playbook setup.yml
    5. Apigee düğümlerinin SSH anahtarını kontrol düğümüne yükleyin:
      scp -i CONTROL_SSH_PRIVATE_KEY_FILE APIGEE_NODE_SSH_PRIVATE_KEY_FILE admin@CONTROL_EXTERNAL_IP:/home/admin/.ssh/id_rsa

      Burada:

      • CONTROL_SSH_PRIVATE_KEY_FILE, kontrol düğümünüzün SSH özel anahtarını içeren dosyanın adıdır.
      • APIGEE_NODE_SSH_PRIVATE_KEY_FILE, Apigee düğümünüzün SSH özel anahtarını içeren dosyanın adıdır.
      • CONTROL_EXTERNAL_IP, kontrol düğümünün harici IP adresidir.
    6. Ansible envanter yapılandırma dosyasını oluşturun:
      1. apigee/scripts/ansible/prod.cfg dosyasının içeriğini prod.cfg dosyasına kopyalayın:
        vi ~/.ansible/multi-planet-configurations/prod.cfg
      2. edge-dc1 klasörünü oluşturun ve apigee/scripts/ansible/edge-dc1 dosyasının içeriğini edge-dc1 dosyasına kopyalayın:
        mkdir ~/.ansible/inventory/prod
        vi ~/.ansible/inventory/prod/edge-dc1
    7. edge-dc1 içindeki Apigee düğümlerinin dahili IP adreslerini güncelleyin:
      apigee_000 ansible_host=APIGEE_NODE1_INTERNAL_IP
      apigee_001 ansible_host=APIGEE_NODE2_INTERNAL_IP
      apigee_002 ansible_host=APIGEE_NODE3_INTERNAL_IP
      apigee_003 ansible_host=APIGEE_NODE4_INTERNAL_IP
      apigee_004 ansible_host=APIGEE_NODE5_INTERNAL_IP

      Burada APIGEE_NODE*_INTERNAL_IP değerleri, önceki bir adımda elde edilen Apigee düğümlerinin dahili IP adresleridir.

    8. ~/.apigee-secure/credentials.yml dosyasını aşağıdaki değerlerle yapılandırın:
      • apigee_repo_user: 'APIGEE_REPO_USER'
      • apigee_repo_password: 'APIGEE_REPO_PASSWORD'
      • opdk_qpid_mgmt_username: 'OPDK_QPID_MGMT_USERNAME'
      • opdk_qpid_mgmt_password: 'OPDK_QPID_MGMT_PASSWORD'

      Burada:

      • APIGEE_REPO_USER, Apigee deposunun kullanıcı adıdır.
      • APIGEE_REPO_PASSWORD, Apigee deposunun şifresidir.
      • OPDK_QPID_MGMT_USERNAME, Apigee QPID yönetim sunucusunun kullanıcı adıdır.
      • OPDK_QPID_MGMT_PASSWORD, Apigee QPID yönetim sunucusunun şifresidir.

    9. Geçerli bir Apigee Edge Private Cloud lisans dosyası içeren bir lisans dosyası ekleyin. Dosyanın adı license.txt olmalıdır.
    10. ~/.apigee-secure/license.txt dosyasının içeriğini, yeni oluşturduğunuz license.txt dosyasına kopyalayın.
    11. ~/.apigee/custom-properties.yml dosyasında aşağıdaki değerleri yapılandırın:
      • opdk_version: 'OPDK_VERSION'
      • apigee_repo_url: 'APIGEE_REPO_URL'

      Burada:

      • OPDK_VERSION, yüklemek istediğiniz Apigee Edge Private Cloud sürümüdür.
      • APIGEE_REPO_URL, Apigee deposunun URL'sidir.

    12. Yapılandırma dosyasını ortam değişkeni olarak dışa aktarın:
      export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg

    Apigee bileşenlerini yükleme

    Bu adımda, GDC operatörü Apigee bileşenlerini Ansible kullanarak yükler.

    Apigee bileşenlerini yüklemek için:

    1. Uzak Git depolarını yerel dosyalarla değiştirin:
      cd ~/apigee-repos/ansible-opdk-accelerator/installations/multi-node/
      sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
      sed -i 's/\.git$//g'  requirements.yml
    2. Ansible gereksinimlerini yükleyin:
      ansible-galaxy install -r requirements.yml -f
    3. Ansible rollerini düzeltin:
      sed -i 's/private_address/inventory_hostname/g' ~/.ansible/roles/apigee-opdk-settings-cassandra/tasks/main.yml
      sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-server-self/tasks/main.yml
      sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/tasks/main.yml
      cat << EOF >> ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/templates/response-file-template.conf.j2
      QPID_MGMT_USERNAME= opdk_qpid_mgmt_username
      QPID_MGMT_PASSWORD= opdk_qpid_mgmt_password
      EOF
      sed -i 's/mode: 0700/mode: 0700\n      recurse: yes/g' ~/.ansible/roles/apigee-opdk-setup-postgres-config/tasks/main.yml
    4. install.yml dosyasının içeriğini apigee/scripts/ansible/install.yml dosyasındaki içerikle değiştirin.
    5. Apigee bileşenlerini yüklemek için playbook'u çalıştırın:
      ansible-playbook install.yml
    6. Edge kullanıcı arayüzünde kullanıcının şifre sıfırlama bağlantısını devre dışı bırakın. GDC'de hava boşluklu Apigee, SMTP sunucusu içermez. Edge kullanıcı arayüzünde şifre sıfırlama bağlantısını devre dışı bırakma başlıklı makaledeki adımları uygulayın.

    Pod'ları ve hizmetleri dağıtma

    Bu adımda, yükleyici, ters proxy, yük dengeleyici ve günlük kaydı bölmelerini ve hizmetlerini dağıtacaksınız.

    Kapsülleri ve hizmetleri dağıtmak için:

    1. GDC projesinde dev-apigee bir Harbor örneği oluşturmak için Create Harbor registry instances (Harbor kayıt defteri örnekleri oluşturma) başlıklı makaledeki talimatları uygulayın.
    2. Harbor projeleri oluşturma bölümündeki talimatları uygulayarak apigee adlı bir Harbor projesi oluşturun.
    3. Harbor projesi için erişim denetimini ayarlamak üzere Erişim denetimini yapılandırma başlıklı makaledeki talimatları uygulayın.
    4. Docker kimlik doğrulamasını yapılandırmak için Docker ve Helm'de oturum açma bölümündeki talimatları uygulayın.
    5. apigee/apigee_user_cluster.toml dosyasındaki IP adreslerini gösterildiği gibi güncelleyin:
      mgmt-server-proxy = "APIGEE_NODE1_EXTERNAL_IP"
      router-proxy1 = "APIGEE_NODE2_EXTERNAL_IP"
      router-proxy2 = "APIGEE_NODE3_EXTERNAL_IP"
      

      Burada:

      • APIGEE_NODE1_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node1'in harici IP adresidir.
      • APIGEE_NODE2_EXTERNAL_IP, önceki adımda elde edilen Apigee node2'nin harici IP adresidir.
      • APIGEE_NODE3_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node3'ün harici IP adresidir.

    6. HTTPS'yi yapılandırmak için SSL sertifika dosyasını (server.crt) ve anahtar dosyasını (server.key) apigee/mgmt-server-proxy ve apigee/router-proxy klasörlerine yerleştirin.

      Kendinden imzalı sertifikalar oluşturmak için aşağıdaki komutu kullanın:

      openssl req -newkey rsa:4096 -x509 -nodes -keyout server.key -new -out server.crt -subj "/CN=*.apigeetest.com" -sha256 -days 365
    7. apigee/uploader/Dockerfile dosyasındaki yükleyici kapsayıcısında kök kullanıcı için SSH-PASSWORD değerini güncelleyin:
      RUN echo 'root:SSH_PASSWORD' | chpasswd
    8. Kullanıcı kümesinin kimlik bilgilerini alın:
      gdcloud clusters get-credentials USER_CLUSTER

      Burada USER_CLUSTER, kullanıcı GKE kümesinin adıdır.

    9. Kapsülleri ve hizmetleri dağıtmak için dağıtım komut dosyasını çalıştırın:
      source venv/bin/activate
      python apigee/solution_deploy_user_cluster.py gdc-air-gapped
    10. Hizmetlerin harici IP adreslerini alın:
      kubectl get svc -n $PROJECT_ID

    Yükleyici ve Fluent Bit yönlendirici IP'lerini güncelleme

    Bu adımda, yedekleme ve Apigee kurulum komut dosyalarındaki yükleyici ve Fluent Bit yönlendirici IP'lerini güncelleyeceksiniz.

    1. SSH_PASSWORD, root ve UPLOADER_EXTERNAL_IP öğeleri apigee/helm/scripts/backup_setup.sh hizmetinde güncellensin mi?
      sshpass -p SSH_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null apigee-backup* root@UPLOADER_EXTERNAL_IP:/temp/

      Burada:

      • SSH_PASSWORD, kök kullanıcının şifresidir.
      • UPLOADER_EXTERNAL_IP, önceki bir adımda elde edilen yükleyici hizmetinin harici IP adresidir.

    2. FLUENTBIT_EXTERNAL_IP apigee/helm/scripts/apigee_setup.sh hizmetinde güncellensin mi?
      export FLUENTBIT_EXTERNAL_IP=FLUENTBIT_EXTERNAL_IP

    Başlatma komut dosyasının güncellenmesi için Apigee düğümlerinin yeniden başlatılması gerekir. Düğümleri yeniden başlatmak için:

    1. Sanal makineleri durdurun:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
      export PROJECT=dev-apigee
      for i in 1 2 3 4 5; do
        gdcloud compute instances stop node$i --project $PROJECT
        done
    2. Helm grafiğini yeniden dağıtın:
      python apigee/solution_deploy.py gdc-air-gapped
    3. Sanal makineleri başlatın:
      for i in 1 2 3 4 5; do
        GDCloud compute instances start node$i --project $PROJECT
        done

    Apigee kuruluşuna ilk katılım

    Bu adımda, GDC operatörü node1 üzerinde bir kurulum komut dosyası çalıştırarak Apigee kuruluşunu kullanıma alır.

    Apigee kuruluşunu kullanmaya başlamak için:

    1. apigee/scripts/apigee_org_setup.sh içinde aşağıdaki değerleri gösterildiği gibi güncelleyin. Gerekirse diğer parametreleri güncelleyin.
      IP1=APIGEE_NODE1_INTERNAL_IP
      
      VHOST_ALIAS="APIGEE_NODE2_EXTERNAL_IP:9001 APIGEE_NODE3_EXTERNAL_IP:9001"

      Burada:

      • APIGEE_NODE1_INTERNAL_IP, önceki bir adımda elde edilen Apigee node1'in dahili IP adresidir.
      • APIGEE_NODE2_EXTERNAL_IP, önceki adımda elde edilen Apigee node2'nin harici IP adresidir.
      • APIGEE_NODE3_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node3'ün harici IP adresidir.

    2. Kuruluşu dahil etmek için komut dosyasını node1'de çalıştırın:
      chmod a+x apigee_org_setup.sh
      ./apigee_org_setup.sh

    HTTP bağlantısını test etme

    Bu adımda, Management API ve API proxy'si için HTTP bağlantısını test edeceksiniz.

    HTTP bağlantısını test etmek için:

    1. apigee-elb hizmetinin harici IP adresini alın:
      gdcloud clusters get-credentials USER_CLUSTER
      export PROJECT=dev-apigee
      kubectl get svc apigee-elb -n $PROJECT

      Burada USER_CLUSTER, kullanıcı GKE kümesinin adıdır.

      Bu hizmet, Edge kullanıcı arayüzü, Management API ve API proxy'si için uç nokta görevi görür.

    Management API'yi test etme

    Management API'yi test etmek için uç noktaya bir HTTP isteği gönderin:

    curl -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e/ENV_NAME/provisioning/axstatus"

    Burada:

    • APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen apigee-elb hizmetinin harici IP adresidir.
    • ORG_NAME, Apigee kuruluşunun adıdır.
    • ENV_NAME, Apigee ortamının adıdır.

    API proxy'sini test etme

    API proxy'sini test etmek için:

    1. Edge kullanıcı arayüzüne giriş yapın.
    2. Yeni bir API proxy'si oluşturmak için API Proxies (API Proxy'leri) sayfasında Create'i (Oluştur) tıklayın.
    3. Proxy ayrıntıları sayfasında aşağıdaki değerleri girin:
      • Proxy türü: Hedef yok'u seçin.
      • Proxy adı: ok
      • Temel yol: /ok
      • Hedef: http://APIGEE_ELB_EXTERNAL_IP:9001
    4. API proxy'sini oluşturmak için Oluştur'u tıklayın.
    5. /ok adresine bir HTTP isteği gönderin:
      curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
    6. Yanıtın 200 OK olduğunu onaylayın.

    TLS'yi yapılandırma ve HTTPS'yi test etme

    Bu adımda, GDC operatörü API proxy'si, Edge kullanıcı arayüzü ve Yönetim API'si için Taşıma Katmanı Güvenliği'ni (TLS) yapılandırır.

    API proxy'si için TLS'yi yapılandırma

    1. Aşağıdaki değerlerle kendinden imzalı bir sertifika oluşturmak için Anahtar deposu/güven deposu ve takma ad oluşturma başlıklı makaledeki adımları uygulayın:
      • KeyStore: myTestKeystore
      • KeyAlias: myKeyAlias
      • Ortak Ad: apigeetest.com
    2. api.apigeetest.com adlı sanal ana makineyi oluşturmak için bir API çağrısı yapın:
      curl -v -H "Content-Type:application/xml" \
        -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e//virtualhosts" \
        -d '<VirtualHost  name="secure">
            <HostAliases>
              <HostAlias>api.apigeetest.com</HostAlias>
            </HostAliases>
            <Interfaces/>
            <Port>9005</Port>
            <OCSPStapling>off</OCSPStapling>
            <SSLInfo>
              <Enabled>true</Enabled>
              <ClientAuthEnabled>false</ClientAuthEnabled>
              <KeyStore>myTestKeystore</KeyStore>
              <KeyAlias>myKeyAlias</KeyAlias>
            </SSLInfo>
          </VirtualHost>'

      Burada:

      • APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen apigee-elb hizmetinin harici IP adresidir.
      • ORG_NAME, Apigee kuruluşunun adıdır.
      • ENV_NAME, sanal ana makinenin oluşturulması gereken Apigee ortamının adıdır.
    3. Güvenli sanal ana makineyi kullanarak bir API proxy'si oluşturun.
    4. Yönlendiricilerde sanal ana makineler için DNS çözümlemesini yapılandırın:
      echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
    5. Uç noktaya bir HTTPS isteği göndererek sanal ana makinelerin yerel olarak çalıştığını doğrulayın:
      curl https://api.apigeetest.com:9005/ok -v -k
    6. Uç nokta için DNS çözümlemeyi yapılandırın:
      echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts

      Burada APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen apigee-elb hizmetinin harici IP adresidir.

    7. Web tarayıcısında https://apigeetest.com/ok adresine gidin ve çalıştığını onaylayın.

    Edge kullanıcı arayüzü için TLS'yi yapılandırma

    Edge kullanıcı arayüzü için TLS'yi yapılandırmak üzere:

    1. SSL sertifika dosyasından ve anahtar dosyasından bir anahtar deposu dosyası oluşturun:
      openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out keystore.pkcs12
      keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
    2. Anahtar deposu dosyasını node1'deki Apigee klasörünün altına yerleştirin:
      scp -i SSH_PRIVATE_KEY_FILE keystore.jks admin@APIGEE_NODE1_EXTERNAL_IP:/home/admin/

      Burada:

      • SSH_PRIVATE_KEY_FILE, Apigee düğümünüzün SSH özel anahtarını içeren dosyanın adıdır.
      • APIGEE_NODE1_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node1'in harici IP adresidir.

    3. node1'e SSH ile bağlanın ve anahtar deposu dosyasını Apigee klasörüne taşıyın:
      sudo mv keystore.jks /opt/apigee/customer/application/
    4. SSL yapılandırma dosyasını oluşturun:
      sudo vi /tmp/sslConfigFile
    5. KEY-PASS-PHRASE değerini gösterildiği gibi güncelleyin:
      HTTPSPORT=9443
      DISABLE_HTTP=n
      KEY_ALGO=JKS
      KEY_FILE_PATH=/opt/apigee/customer/application/keystore.jks
      KEY_PASS=KEY_PASS_PHRASE
    6. Yapılandırma dosyasını kullanarak SSL'yi yapılandırma:
      sudo chown apigee:apigee /tmp/sslConfigFile
      /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f /tmp/sslConfigFile
    7. Edge kullanıcı arayüzü için DNS çözümlemesini yapılandırın:
      echo 'APIGEE_ELB_EXTERNAL_IP ui.apigeetest.com' | sudo tee -a /etc/hosts

      Burada APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen apigee-elb hizmetinin harici IP adresidir.

    8. Web tarayıcısında https://ui.apigeetest.com:9443 adresine erişin ve çalıştığını onaylayın. Daha fazla bilgi için kılavuza bakın.

    Yönetim API'si için TLS'yi yapılandırma

    Yönetim API'si için TLS'yi yapılandırmak üzere:

    1. Anahtar deposu dosyasının sahibini yapılandırın (Edge kullanıcı arayüzüyle aynı sahibi kullanın):
      sudo chown apigee:apigee /opt/apigee/customer/application/keystore.jks
    2. Özellikler dosyasını oluşturun:
      sudo vi /opt/apigee/customer/application/management-server.properties
    3. KEY_PASS_PHRASE değerini, gösterildiği gibi keystore şifresiyle değiştirin:

      conf_webserver_ssl.enabled=true
      # Leave conf_webserver_http.turn.off set to false
      # because many Edge internal calls use HTTP.
      conf_webserver_http.turn.off=false
      conf_webserver_ssl.port=8443
      conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
      # Enter the obfuscated keystore password below.
      conf_webserver_keystore.password=KEY_PASS_PHRASE
    4. Değişikliklerin geçerli olması için yönetim sunucusunu yeniden başlatın:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    5. HTTPS'nin yerel olarak çalıştığını onaylayın:
      curl -u "opdk@apigee.com:Apigee123!" "https://localhost:8443/v1/users" -k
    6. Tarayıcıda https://apigeetest.com:8443/v1/users adresine istemciden erişin. Kimlik bilgilerinin doğru şekilde yapılandırıldığını onaylamak için yönetici kullanıcı adını ve şifresini girin.

    Sırada ne var?