Edge Microgateway'i hizmet olarak dağıtma

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

Giriş

Bu konuda, Edge Microgateway'in Kubernetes kümesinde nasıl bağımsız hizmet olarak çalıştırılacağı açıklanmaktadır.

Daha fazla bilgi için Edge Microgateway'i Kubernetes ile entegre etmeye genel bakış başlıklı makaleyi inceleyin.

Başlamadan önce

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

Edge Microgateway'i yapılandırma

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

  1. Aşağıdaki komutu çalıştırı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 (ör. test veya üretim).

    • username: Apigee hesabınızla ilişkili e-posta adresi.

    Örnek

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

    Çıkış (örneği aşağıda 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 Microgateway'i hizmet olarak dağıtma

  1. Edge Microgateway'i Kubernetes kümenizde hizmet olarak dağıtmak için aşağıdaki komutu yürütün:

    kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key
    -sec=edgemicro-secret -conf=file path of org-env-config.yaml)

    Bu örnekte:

    • org: edgemicro configure komutunda belirttiğiniz Apigee kuruluşu.
    • env - edgemicro configure komutunda belirttiğiniz ortam.
    • edgemicro-key: edgemicro configure komutundan döndürülen anahtar.
    • edgemicro-secret: edgemicro configure komutundan döndürülen gizli.
    • file path of org-env-config.yaml - edgemicro configure komutundan döndürülen Edge Micro yapılandırma dosyasının yolu.

    Örneğin:

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)

    Örnek çıkış:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Aşağıdaki kodu kopyalayıp terminalinize yapıştırın. Kod, edge-microgateway hizmetine harici erişime izin verecek şekilde giriş denetleyicisini ayarlar. Komutu terminalinize yapıştırdıktan sonra Enter tuşuna basmanız gerekebilir:

    cat <<EOF | kubectl apply -f -
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: edge-microgateway-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - http:
          paths:
          - path: /
            backend:
              serviceName: edge-microgateway
              servicePort: 8000
    EOF
    

    Başarılı olursa şu çıkışı görürsünüz:

    ingress "edge-microgateway-ingress" created
    

    Giriş denetleyici artık edge-microgateway hizmetine harici erişime izin verecek şekilde yapılandırıldı.

Test hizmeti dağıtma

Aşağıdaki adımlar, kümenize basit bir test hizmeti dağıtır. Giriş denetleyicisi, hizmetin küme dışından çağrılmasına izin vermez. Daha sonra, Edge Microgateway'i hizmeti hedef olarak çağıracak şekilde yapılandıracaksınız. Giriş denetleyicisi, edge-microgateway hizmetine dışarıdan erişime izin veriyor.

  1. Örnek helloworld hizmetini dağıtın. Ingress bu hizmet hakkında bilgi sahibi olmadığı için hizmet, kümenin dışından çağrılamaz.

    kubectl apply -f samples/helloworld/helloworld-service.yaml

    Örnek çıkış:

    service "helloworld" created deployment "helloworld" created
    
  2. Dağıtımın başarılı olduğunu doğrulayın. helloworld hizmetinin harici IP'si olmadığını unutmayın. Aşağıdaki adımlarda, Edge Microgateway'i hizmetin dahili IP'sine erişecek şekilde yapılandıracaksınız.

    kubectl get services -n default

    Örnek çıkış:

    NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    edge-microgateway   NodePort    10.35.247.222   <none>        8000:32000/TCP   12m
    helloworld          NodePort    10.35.245.103   <none>        8081:30294/TCP   47s
    kubernetes          ClusterIP   10.35.240.1     <none>        443/TCP          47m
    

Edge Microgateway'i hizmet için proxy olarak yapılandırma

helloworld hizmetinin dahili IP'sini alın ve bunu "mikro ağ geçidi uyumlu" bir proxy'nin hedefi olarak ekleyin. "Microgateway'e duyarlı" bir proxy oluşturmak, standart bir Edge Microgateway gereksinimidir.

Ayrıca Microgateway'e duyarlı proxy'ler hakkında bilmeniz gerekenler başlıklı makaleyi de inceleyin.

Test hizmetinin dahili IP'sini alma

  1. helloworld hizmeti için dahili küme IP'sini ve bağlantı noktasını alın:

    kubectl get services helloworld

    Örnek çıkış:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. CLUSTER-IP ve PORT değerlerini kopyalayın. Örneğin, yukarıdaki örnekte bu değerler: 10.55.254.255 ve 8081. Sisteminizin değerleri farklı olacaktır.

Edge'de mikro ağ geçidi farkında bir proxy oluşturma

  1. Edge kullanıcı arayüzünde oturum açın.
  2. Edge Microgateway'i yapılandırırken daha önce belirttiğiniz kuruluşla aynı kuruluşu seçin.
  3. Yan gezinme menüsünde Geliştir > API Proxies'i (API Proxyleri) seçin.
  4. + Proxy'yi tıklayın. Proxy Oluşturma Sihirbazı açılır.
  5. İlk sihirbaz sayfasında Ters proxy (en yaygın) seçeneğini belirleyin.
  6. İleri'yi tıklayın.
  7. Sihirbazın Ayrıntılar sayfasında aşağıdaki gibi yapılandırın. Sihirbazı tam olarak gösterildiği şekilde doldurduğunuzdan emin olun. Proxy adının edgemicro_ önekini içerdiğinden emin olun.

    1. Proxy Adı: edgemicro_hello
    2. Proxy Temel Yolu: /hello

    3. Mevcut API: http://<cluster_ip>:<port>

      Örneğin: http://10.55.254.255:8081

  8. İleri'yi tıklayın.

  9. Sihirbazın Güvenlik sayfasında Geçiş (yok)'u seçin.

  10. İleri'yi tıklayın.

  11. Sihirbazın Sanal Ana Makineler sayfasında varsayılanları kabul edin.

  12. İleri'yi tıklayın.

  13. Sihirbazın Oluşturma sayfasında proxy ayarlarınızı inceleyin. Test ortamının seçili olduğundan emin olun.

  14. Build and Deploy'u (Derle ve Dağıt) tıklayın.

Geliştirici Oluşturma

Test için mevcut bir geliştiriciyi kullanabilir veya aşağıdaki şekilde yeni bir geliştirici oluşturabilirsiniz:

  1. Yan gezinme menüsünde Yayınla > Geliştiriciler'i seçin.
  2. + Geliştirici'yi tıklayın.
  3. Yeni bir geliştirici oluşturmak için iletişim kutusunu doldurun. İstediğiniz geliştirici adını/e-posta adresini kullanabilirsiniz.

API Ürünü Oluşturma

Aşağıda açıklandığı şekilde bir API ürünü oluşturun. Ürüne iki proxy ekleyeceksiniz: edgemicro-auth ve edgemicro_hello.

API ürünü yapılandırması hakkında bilmeniz gerekenler başlıklı makalede ürün yapılandırma seçenekleri hakkında daha fazla bilgi edinebilirsiniz.

  1. Yan gezinme menüsünde Yayınla > API Ürünleri'ni seçin.
  2. + API Ürünü'nü tıklayın. Ürün Ayrıntıları sayfası gösterilir.
  3. Ürün ayrıntıları sayfasını aşağıdaki şekilde doldurun. Kaydet'i tıklamayın.

    Ad hello-world-product
    Görünen ad Edge Micro hello product
    Ortam test
    Erişim Public
    Temel Onay Türü Automatic
  4. Sayfanın alt yarısında + Özel Kaynak'ı tıklayın.

  5. Kaynağı / (tek eğik çizgi) olarak ayarlayın.

  6. Tekrar + Özel Kaynak'ı seçin ve /** yolunu ekleyin.

  7. Sayfanın alt kısmında + API Proxy'yi tıklayın.

  8. edgemicro-auth adlı proxy'yi seçin.

  9. + API Proxy'si'ni tekrar tıklayın.

  10. edgemicro_hello adlı mikro ağ geçidi uyumlu proxy'yi seçin.

  11. Kaydet'i tıklayın.

Geliştirici Uygulaması Oluşturma

  1. Yan gezinme menüsünde Yayınla > Uygulamalar'ı seçin.
  2. + Uygulama'yı tıklayın. Geliştirici Uygulama Ayrıntıları sayfası gösterilir.
  3. Geliştirici uygulaması sayfasını aşağıdaki gibi doldurun. Kaydetme işlemi için talimat verilene kadar Kaydet'i tıklamayın.

    Ad hello-world-app
    Görünen ad Edge Micro hello app
    Developer Oluşturduğunuz test geliştiriciyi seçin. Herhangi bir geliştiriciyi de seçebilirsiniz.
  4. Kimlik bilgileri bölümünde + Ürün'ü tıklayın ve oluşturduğunuz ürünü seçin: hello-world-product.

  5. Kaydet'i tıklayın.

  6. Tüm geliştirici uygulamalarının listelendiği sayfaya geri dönersiniz.

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

  8. Tüketici Anahtarı'nın yanındaki Göster'i tıklayın.

  9. Tüketici Anahtarı'nın değerini kopyalayın. Bu değer, /hello için güvenli API çağrıları yapmak üzere 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.

Proxy'yi test etme

Giriş IP adresini alma

Giriş için harici IP ile Edge Microgateway hizmetini kümenin dışından çağırabilirsiniz.

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

    kubectl get ing -o wide

    Örnek çıkış:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Ingress için ADDRESS değerini kopyalayın ve 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

    Dilerseniz bu komutu kullanarak sizin için ayarlayabilirsiniz:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --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 çıkış:

    35.238.249.62
    

API'yi çağırma

Yapılandırma değişiklikleri mikro ağ geçidine çekildikten sonra API'yi çağırmayı deneyebilirsiniz. API'yi çağırmak için Ingress denetleyici IP'sini (GATEWAY_IP değişkenine kaydettiğiniz) kullanırsınız. Bu IP, proxy'yi Kubernetes kümesinin dışından çağırmanıza olanak tanır. Ingress'ten Edge Microgateway'e eşleme, Edge Microgateway'i kümeye dağıttığınızda oluşturulur.

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

    curl $GATEWAY_IP:80/hello/

    Beklenen çıktı:

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

    Bu mesajı görüyorsanız senkronizasyonun tamamlanması için biraz daha beklemeniz gerekebilir:

    {"message":"no match found for /hello/","status":404}
    

    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 gereken API anahtarıdır:

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

    Örneğin:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/

    Çıkış:

    Hello world
    

    "Hello world" yanıtını görüyorsanız Edge Microgateway'i Kubernetes kümesindeki helloworld hizmetini çağıracak şekilde başarıyla yapılandırmışsınızdır.

Sırada ne var?

Ö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.