Edge Microgateway'i yardımcı dosya proxy'si olarak dağıtma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Giriş

Bu konuda yardımcı proxy olarak bir Kubernetes kümesinde Edge Microgateway'in nasıl çalıştırılacağı açıklanmaktadır. Yardımcı dağıtım için iki seçeneğiniz vardır: manuel ve otomatik yerleştirme. Bu konuda her iki seçenek de açıklanmaktadır.

Daha fazla bilgi için Kubernetes'te Edge Mikro Ağ Geçidi'ne Giriş konusuna bakın.

Başlamadan önce

Ön koşullar bölümünde açıklanan adımları tamamlayın.

Bir test hizmeti dağıtma

Basit bir "hello" hizmeti dağıtın ve dağıtımı doğrulayın:

  1. Örneği dağıtın:

    kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
  2. Hizmetin çalıştığını doğrulayın. Kapsül çalışma durumuna dönene kadar birkaç dakika beklemeniz gerekebilir:

    kubectl get pods --namespace=default

    Örnek çıktı:

    NAME                          READY     STATUS    RESTARTS   AGE
    helloworld-569d6565f9-lwrrv   1/1       Running   0          17m
    
  3. Test hizmeti dağıtımını silin. Yardımcı dosya yerleştirmeyi etkinleştirdikten sonra dosyayı yeniden yüklersiniz:

     kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default

Manuel yardımcı dosya ekleme

İki yardımcı dosya ekleme seçeneği arasından manuel yardımcı dosya ekleme, daha basit ve basit bir yaklaşımdır ve tek bir kubectl komutuyla yapılabilir.

Edge Mikro Ağ Geçidini Yapılandırma

Aşağıdaki komut, Apigee kuruluşunuz için Edge Microgateway'i yapılandırır ve edgemicro-auth proxy'sini dağıtır.

  1. Aşağıdaki komutu yürütün:

    edgemicro configure -o [org] -e [env] -u [username]

    Burada:

    • org: Edge kuruluşunuzun adı (kuruluş yöneticisi olmanız gerekir).

    • env: Kuruluşunuzdaki bir ortam (test veya üretim gibi).

    • username: Apigee hesabınızla ilişkilendirilmiş e-posta adresidir.

    Örnek

    edgemicro configure -o myorg -e test -u jdoe@example.com

    Çıkış (aşağıda örnek gösterilmiştir) dosyaya kaydedilir:

    $HOME/.edgemicro/org_name-env_name-config.yaml
    .

    current nodejs version is v6.9.1
    current edgemicro version is 2.5.25
    password:
    file doesn't exist, setting up
    Give me a minute or two... this can take a while...
    App edgemicro-auth deployed.
    checking org for existing KVM
    KVM already exists in your org
    configuring host edgemicroservices.apigee.net for region us-west1
    
    saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml
    
    vault info:
     -----BEGIN CERTIFICATE-----
    MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
    b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD
    VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh
    nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm
    Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT
    iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn
    GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp
    oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I
    mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8
    1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN
    lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH
    6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm
    /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn
    8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4
    w+e3Z3F7IKI=
    -----END CERTIFICATE-----
    
    The following credentials are required to start edge micro
      key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4
      secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef
    
    edgemicro configuration complete!
    

Edge Mikro Ağ Geçidi'ni yardımcı dosya olarak ekleme

Edge Microgateway'i yardımcı proxy olarak bir hizmet kapsülüne manuel olarak eklemek için şu komutu çalıştırın:

kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)

Bu örnekte:

  • your_org - edgemicro configure komutunda belirttiğiniz Apigee kuruluşu.
  • your_env - edgemicro configure komutunda belirttiğiniz ortam.
  • your_key: edgemicro configure komutundan döndürülen anahtar.
  • your_secret: edgemicro configure komutundan döndürülen gizli anahtar.
  • config_file_path: edgemicro configure komutundan döndürülen Edge Micro yapılandırma dosyasının yolu.
  • service_deployment_file: Kapsülü, tamamlayıcı yardımcı hizmeti alacak olan hizmetin dağıtım dosyasının yolu. Örneğin: samples/helloworld/helloworld.yaml.

Örneğin:

kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -svc=samples/helloworld/helloworld.yaml)

Yapılandırmayı test etme

  1. Hizmet dağıtımlarını kontrol edin:

    kubectl get services -n default

    Örnek çıktı:

    NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort    10.15.254.163   <none>        8081:32401/TCP   56s
    kubernetes   ClusterIP   10.15.240.1     <none>        443/TCP          41m
    
  2. Artık Edge microgateway'in yardımcı dosya dağıtımını test etmeye hazırsınız. Ayrıntılı adımlar için Proxy'yi test etme bölümüne gidin.

Otomatik yardımcı dosya ekleme

Aşağıdaki adımlarda Kubernetes kümeniz için otomatik yardımcı dosya yerleştirme yapılandıracaksınız. Bu kurulum, Edge Microgateway'in Kubernetes'e yardımcı proxy olarak yerleştirilmesine olanak tanır.

Yardımcı enjektörü takın

  1. Edge Microgateway'in yardımcı dosya yerleştirmesini etkinleştiren ConfigMap'i yükleyin:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
  2. webhook hizmetini yüklemek için aşağıdaki komut dosyasını çalıştırın. Otomatik yardımcı dosya ekleme için webhook hizmeti gereklidir:

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. CA paketini webhook yükleme dosyasına ekleyin. Kubernetes API sunucusu, webhook'u çağırmak için şu dosyayı kullanır:

    cat install/kubernetes/edgemicro-sidecar-injector.yaml | \
         ./install/kubernetes/webhook-patch-ca-bundle.sh > \
         install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    
  4. Edge Microgateway yardımcı dosya enjektör webhook'unu yükleyin:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    

    Örnek çıktı:

    service "edgemicro-sidecar-injector" created
    serviceaccount "edgemicro-sidecar-injector-service-account" created
    deployment "edgemicro-sidecar-injector" created
    mutatingwebhookconfiguration "edgemicro-sidecar-injector" created
    
  5. Edge Microgateway yardımcı dosya enjektör webhook'unun çalıştığını doğrulayın:

    kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
    

    Örnek çıktı:

    NAME                         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edgemicro-sidecar-injector   1         1         1            1           12m
    
  6. Yardımcı dosya ekleme kapsülünün kümenizde çalıştığını doğrulayın. Giriş denetleyicisi, varsayılan HTTP arka ucu ve yardımcı dosya enjektör dahil olmak üzere sistem hizmetlerinin yüklü olduğu edgemicro-system ad alanıdır:

    kubectl get pods -n edgemicro-system

    Örnek çıktı:

    NAME                                            READY     STATUS    RESTARTS   AGE
    default-http-backend-55c6c69b88-gfnfd           1/1       Running   0          1h
    edgemicro-ingress-controller-64444469bf-jhn8b   1/1       Running   3          1h
    edgemicro-sidecar-injector-7d95698fbf-cq84q     1/1       Running   0          3m
    

Edge Mikro Ağ Geçidini yapılandırma ve ekleme

Bir sonraki adımda, Kubernetes ad alanıyla ilişkili bir Edge Microgateway yapılandırması oluşturmak için etkileşimli bir komut dosyası çalıştıracaksınız. Ardından, yapılandırmayı Kubernetes kümenize eklersiniz.

  1. Aşağıdaki etkileşimli komut dosyasını çalıştırın ve istenen parametreleri sağlayın. Komut, sonraki adımda kullanacağınız bir yapılandırma profili oluşturur.

    ./install/kubernetes/webhook-edgemicro-patch.sh

    Giriş parametreleri hakkında bilgi için Referans başlıklı makaleye bakın.

    Örnek girişler:

    1. Namespace to deploy application [default]:

      Enter tuşuna basın.

    2. Authenticate with OAuth Token ("n","Y") [N/y]

      n değerini girin.

    3. Apigee username [required]:

      Apigee kullanıcı adınızı (e-posta adresi) girin. Örneğin: jdoe@google.com.

    4. Apigee password [required]:

      Apigee şifrenizi girin.

    5. Apigee organization [required]:

      Apigee kuruluşunuzun adını girin.

    6. Apigee environment [required]:

      Kuruluşunuz için bir ortam adı girin. Örneğin "test".

    7. Virtual Host [default]:

      Enter tuşuna basın.

    8. Is this Private Cloud ("n","y") [N/y]:

      Herkese Açık Bulut kullanıyorsanız n yazın.

    9. Edgemicro Key. Press Enter to generate:

      Enter tuşuna basın.

    10. Edgemicro Secret. Press Enter to generate:

      Enter tuşuna basın.

    11. Edgemicro org-env-config.yaml. Press Enter to generate:

      Enter tuşuna basın.

      Örnek çıktı:

      current nodejs version is v6.9.1
      current edgemicro version is 2.5.25
      config initialized to /Users/jdoe/.edgemicro/default.yaml
      Configure for Cloud
      ******************************************************************************************
      Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory.
      
      Please make changes as desired.
      *****************************************************************************************
      
    12. Do you agree to proceed("n","y") [N/y]:

      y yazın.

      Örnek çıktı:

      Configuring Microgateway with
      
      key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84
      secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0
      config:~/.edgemicro/jdoe-test-config.yaml
      
      ********************************************************************************************************
      kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
      ********************************************************************************************************
      
  2. Çıkışın son satırında verilen komutu çalıştırın. Bu kubectl komutu, oluşturulan Edge Microgateway yapılandırma profilini Kubernetes'e ekler:

    kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
  3. Webhook yerleştirme durumunu görüntüleyin. Bu özelliğin şu anda etkin olmadığını unutmayın:

    kubectl get namespace -L edgemicro-injection

    Örnek çıktı:

    NAME               STATUS    AGE       EDGEMICRO-INJECTION
    default            Active    1d
    edgemicro-system   Active    1d
    kube-public        Active    1d
    kube-system        Active    1d
    
  4. Webhook için webhook eklemeyi etkinleştirmek üzere şu komutu çalıştırın:

    kubectl label namespace default edgemicro-injection=enabled
  5. Webhook yerleştirme işleminin durumunu yeniden görüntüleyin. Bu özelliğin artık etkin olduğunu unutmayın:

    kubectl get namespace -L edgemicro-injection

    Örnek çıktı:

    NAME               STATUS    AGE       EDGEMICRO-INJECTION
    default            Active    1d        enabled
    edgemicro-system   Active    1d
    kube-public        Active    1d
    kube-system        Active    1d
    

Test hizmetini dağıtma

Şimdi test hizmetini yeniden dağıtın. Edge Mikro Ağ Geçidi, hizmetin kapsülüne otomatik olarak eklenir.

kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default

Edge Mikro Ağ Geçidi'nin test hizmetiyle birlikte kapsüle eklendiğini onaylayın:

kubectl get pods --namespace=default --watch

Örnek çıktı:

NAME                          READY     STATUS            RESTARTS   AGE
helloworld-6987878fc4-pkw8h   0/2       PodInitializing   0          12s
helloworld-6987878fc4-pkw8h   2/2       Running           0         26s

Durum Running olarak değiştiğinde, komuttan çıkmak için ctrl-c tuşuna basın.

Artık Edge Microgateway'in otomatik yardımcı dosya dağıtımını test etmeye hazırsınız. Ayrıntılı adımlar için Proxy'yi test etme bölümüne gidin.

Proxy'yi test edin

Yardımcı dosya dağıtımıyla sizin için otomatik olarak hizmetiniz için bir API proxy'si oluşturulur. "Edge Microgateway aware" proxy'si oluşturmanız gerekmez.

Giriş IP adresini alma

Giriş için Harici IP ile hizmeti kümenin dışından çağırabilirsiniz.

  1. Giriş denetleyicisinin harici IP adresini alın:

    kubectl get ing -o wide

    Örnek çıktı:

    NAME      HOSTS     ADDRESS        PORTS     AGE
    gateway   *         35.238.13.54   80        1m
    
  2. Giriş için EXTERNAL-IP değerini kopyalayıp bir değişkene aktarın. Değişkeni manuel olarak ayarlayabilirsiniz:

    export GATEWAY_IP=external_ip

    Örneğin:

    export GATEWAY_IP=35.238.249.62

    Alternatif olarak, bu komutu sizin için ayarlamak üzere kullanabilirsiniz:

    export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Değişkenin dışa aktarıldığını doğrulayın. Örneğin:

    echo $GATEWAY_IP

    Örnek çıktı:

    35.238.249.62
    
  4. Hizmeti arayın:

    curl $GATEWAY_IP

    Çıkış:

    {"error":"missing_authorization","error_description":"Missing Authorization header"}
    

    Ardından, geçerli bir API anahtarı alabilmek için Edge'de bir API ürünü ve geliştirici uygulaması yapılandırarak eksik yetkilendirme hatasını giderin. Anahtarı, API çağrısı için bir yetkilendirme başlığına eklediğinizde çağrı başarılı olur ve bu hatayı görmezsiniz.

Apigee Edge'de bileşen oluşturun

Ardından, Apigee Edge'de bir API ürünü ve geliştirici uygulaması oluşturun.

API ürünü oluşturma

  1. Apigee Edge'e giriş yapın.
  2. Yan gezinme menüsünde Yayınla > API Ürünleri'ni seçin.
  3. + API Ürünü'nü tıklayın. Ürün Sayfası Görünür.
  4. Ürün sayfasını aşağıdaki gibi doldurun. Aşağıda belirtilmeyen alanlar için varsayılan değerleri kullanabilirsiniz. Yapmanız istenene kadar Kaydetmeyin.

    Ad hello-world-product
    Görünen Ad Edge Micro hello product
    Ortam test

  5. Yol bölümünde + Özel Kaynak'ı tıklayın.

  6. / yolunu ekleyin.

  7. Tekrar + Özel Kaynak'ı tıklayın ve /** yolunu ekleyin

  8. API Proxy'leri bölümünde, + API Proxy'si seçeneğini tıklayın ve edgemicro-auth etiketini ekleyin.

  9. API Ürününü kaydedin.

Geliştirici Uygulaması Oluşturma

  1. Yan gezinme menüsünde Uygulamalar'ı seçin.
  2. + Uygulama'yı tıklayın. Geliştirici Uygulama Ayrıntıları sayfası görüntülenir.
  3. Geliştirici Uygulaması sayfasını aşağıdaki gibi doldurun. Talimat verene kadar Kaydetmeyin.

    Ad hello-world-app
    Görünen Ad Edge Micro hello app
    Developer Açılır menüden bir geliştirici seçin.
  4. Kimlik bilgileri bölümünde + Ürün'ü tıklayın ve az önce oluşturduğunuz hello-world-product öğesini seçin.

  5. Kaydet'i tıklayın.

  6. Tüm Geliştirici uygulamalarının listelendiği sayfaya tekrar geldiniz.

  7. Yeni oluşturduğunuz uygulamayı (hello-world-app) seçin.

  8. Tüketici Anahtarı'nın yanındaki Göster seçeneğini tıklayın.

  9. Tüketici Anahtarı değerini kopyalayın. Bu değer, helloworld hizmetine güvenli API çağrıları yapmak için kullanacağınız API anahtarıdır.

  10. Birkaç dakika bekleyin. Apigee Edge'de yaptığınız değişikliklerin kümede dağıtılan Edge Microgateway örneğiyle senkronize edilmesi birkaç dakika sürer.

API'yi çağırma

Yapılandırma değişiklikleri mikro ağ geçidine çekildikten sonra aşağıdaki testleri gerçekleştirebilirsiniz.

  1. API'yi API anahtarı olmadan çağırın. Aşağıda gösterildiği gibi bir hata mesajı alırsınız:

    curl $GATEWAY_IP

    Beklenen çıkış:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    Başarılı API çağrıları yapmak için API anahtarı gerekir.

  2. Oluşturduğunuz Geliştirici uygulamasından Tüketici anahtarını alın. Bu değer, test proxy'sini çağırmak için ihtiyacınız olan API anahtarıdır:

    curl -H 'x-api-key:your-edge-api-key'  $GATEWAY_IP

    Örneğin:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP

    Çıkış:

    Hello world
    

    "Merhaba dünya" yanıtı, kapsüle dağıtılan helloworld hizmeti tarafından döndürülür. Bu hizmete yapılan çağrı, kimlik doğrulamanın gerçekleştirildiği ilk olarak Edge Mikro Ağ Geçidi'nden geçmiştir. "Merhaba dünya" yanıtını görürseniz Edge Microgateway'i helloworld hizmet kapsülünde yardımcı proxy olarak çalışacak şekilde başarıyla yapılandırmışsınız demektir.

Sonraki adım

Özel eklentiler ekleme, dağıtımı ölçeklendirme, yapılandırma değişiklikleri yapma ve gerçekleştirmek isteyebileceğiniz diğer görevler hakkında bilgi edinmek için Görevler bölümüne bakın.