Kubernetes entegrasyon görevleri

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Özel eklenti ekleme

Özel etiketler yazarak mikro ağ geçidine yeni özellikler ve yetenekler ekleyebilirsiniz: ekleyebilirsiniz. Özel eklentiler, isteklerle programlı bir şekilde etkileşimde bulunmanıza olanak tanır. ve yanıtlarla mikro ağ geçidinden geçtiğini düşünelim.

Bu bölümde, eklentilerin bir Edge Microgateway'de nasıl paketleneceği ve dağıtılacağı açıklanmaktadır örneğinin çalışmaya hazır olması gerekir.

Bu bölümün geri kalanında, bildiğinizi belirtmelisiniz. eklentilerine sahip olması gerekir. Yoksa Özel eklentiler geliştirme başlıklı makaleye bakın.

Eklentilerinizi paketleyin

Özel eklentileri paketlemek için aşağıdaki adımları uygulayın:

  1. Eklentinizi Basit bir eklenti yazma başlıklı makaledeki talimatlara göre yazın ve test edin.

  2. Eklenti kodunuzu doğru dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıya uygun olmalıdır. Aşağıdaki örnekte, Burada response-uppercase ve request-headers, izlemeniz gereken yapıyı temsil eder özel eklenti kodu içeren klasörlerin adları (bu adlar yalnızca örnektir, klasör adlarınız farklı olabilir):

    plugin
      |
      |-- plugins
        |
        |- response-uppercase
        |     |- index.js
        |     |- package.json
        |- request-headers
        |     | - index.js
              | - package.json
    
  3. plugin klasörüne cd.

  4. plugin klasöründe plugins klasörünün tamamını sıkıştırın:

    zip -r plugins.zip plugins/

Docker görüntüsü oluşturma

  1. ZIP dosyasının bulunduğu dizinde, Dockerfile adında yeni bir dosya oluşturun.
  2. Şu kodu Dockerfile içine ekleyin ve dosyayı kaydedin:

    FROM gcr.io/apigee-microgateway/edgemicro:latest
    RUN apt-get install unzip
    COPY plugins.zip /opt/apigee/
    RUN chown apigee:apigee /opt/apigee/plugins.zip
    RUN su - apigee -c "unzip /opt/apigee/plugins.zip -d /opt/apigee"
    EXPOSE 8000
    EXPOSE 8443
    ENTRYPOINT ["entrypoint"]
    
  3. Eklentilerinizle yeni bir Edge Microgateway Docker görüntüsü oluşturun ve Docker kayıt defterinize eklemeniz gerekir. İstediğiniz kayıt defterini kullanabilirsiniz. docker.io veya gcr.io olarak:

    docker build -t edgemicroplugins .
    docker tag edgemicroplugins container-registry/your-project/edgemicroplugins
    docker push container-registry/your-project/edgemicroplugins
    

    Örneğin:

    docker build -t edgemicroplugins .
    docker tag edgemicroplugins gcr.io/my-project/edgemicroplugins
    docker push   gcr.io/my-project/edgemicroplugins
    

Edge Microgateway yapılandırmasını güncelleme

  1. Eklentileri Edge Microgateway yapılandırma dosyanıza ekleyin. Daha fazla yapılandırma dosyasını burada bulabilirsiniz:

    $HOME/.edgemicro/org-env-config.yaml
    

    Örneğin:

    $HOME/.edgemicro/myorg-test-config.yaml

Aşağıdaki örnek yapılandırmada response-uppercase özel eklentisi eklenmiştir. oauth eklentisi varsayılan olarak bu bölümde mevcuttu.

  edgemicro:
    ...
    plugins:
      sequence:
        - oauth
        - response-uppercase

Kubernetes kümenizi güncelleme

Son adım, yapılandırma değişikliğini Kubernetes kümenize uygulamaktır. Kubernetes yeni görüntüyü, container kayıt defterine aktardığınız eklenti koduyla alır ve yeni görüntüler için kullanır. oluşturulan kapsüller.

Edge Microgateway'i hizmet olarak dağıttıysanız

Güncellenen Edge Microgateway yapılandırmasını eklemek için edgemicroctl komutunu kullanın:

  1. Edge Microgateway dağıtımını yeni görüntüyle güncelleyin. Örneğin:

    kubectl apply -f <(edgemicroctl -org=your_organization -env=your_environment -key=configuration_key -sec=configuration_secret -conf=config_file_path -img=container-registry/your_project_name/image_name:latest)

    Bu örnekte:

    • your_organization - edgemicro configure komutunda belirttiğiniz Apigee kuruluşu.
    • your_environment - edgemicro configure komutunda belirttiğiniz ortam.
    • configuration_key - edgemicro configure komutundan döndürülen anahtar.
    • configuration_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.
    • container-registry: Görüntüyü aktardığınız Docker kaydı. Örneğin, gcr.io veya docker.io
    • your_project_name - Docker görüntüsünü aktardığınız Docker deposunun proje adı.
    • image_name - Aktardığınız Docker görüntüsünün adı.

    Örnek:

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=f2d2eaa52b758493d00cec656e574ac947bee1d701c5c5f3295e5eaa39a3b -sec=0c38cda3fac6c59152f15657052ba1728f8003c1a763cf08da2a -conf=/Users/jdoe/.edgemicro/apigeesearch-test-config.yaml -img=gcr.io/jdoe-project/edgemicroplugins:latest)
  2. Eklentiyi test edin. Beklenen davranışı elde edip etmediğinizi görmek için API'yi çağırın. Örneğin, örneğin, "yanıt büyük harfli" eklentisine geçtiğinizde yanıt metni büyük harfle yazılmalıdır:

    curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'

    Çıkış:

    HELLO WORLD
    
Yeni yapılandırmayı manuel olarak ekleme

Manuel yerleştirme, yeni konfigürasyonu eklemeniz gereken basit bir yaklaşımdır. komutunu çalıştırın.

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

    kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -img=container-registry/your_project_name/image_name:latest -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.
    • container-registry: Görüntüyü aktardığınız Docker kaydı. Örneğin, gcr.io veya docker.io
    • your_project_name - Docker görüntüsünü aktardığınız Docker deposunun proje adı.
    • image_name - Aktardığınız Docker görüntüsünün adı.
    • service_deployment_file - İlgili hizmetin dağıtım dosyasının yolu Eklentilerin uygulanacağı. Örnek: 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 -img=gcr.io/myproject/edgemicroplugins:latest -svc=samples/helloworld/helloworld.yaml)
  2. Eklentiyi test edin. Hizmet API'sini çağırarak görmek için ne yapmanız gerektiğini öğrenebilirsiniz. Örneğin, "yanıt büyük harfle" için eklenti, yanıt metni, aşağıda gösterildiği gibi tamamen büyük harfe dönüştürülür:

    curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'

    Çıkış:

    HELLO WORLD
    

Edge Mikro Ağ Geçidi yapılandırma değişiklikleri yapma

Bazı durumlarda Edge Microgateway yapılandırmanızı değiştirmeniz gerekebilir. Örneğin, Edge Microgateway'e yeni bir eklenti eklemek veya bir yapılandırma parametresini değiştirmek isteyebilirsiniz. Bu Bu bölümde, Edge Microgateway'de yapılandırma değişikliklerinin nasıl yapılacağı ve uygulanacağı açıklanmaktadır. nasıl kullanacağınızı göstereceğim.

  1. secret.yaml yapılandırma dosyasını aşağıda gösterildiği gibi oluşturun:

    apiVersion: v1
    kind: Secret
    metadata:
      name: mgwsecret
    type: Opaque
    data:
      mgorg: EDGEMICRO_ORG
      mgenv: EDGEMICRO_ENV
      mgkey: EDGEMICRO_KEY
      mgsecret: EDGEMICRO_SECRET
      mgconfig: EDGEMICRO_CONFIG
    
  2. EDGEMICRO_ORG, EDGEMICRO_ENV, EDGEMICRO_KEY, EDGEMICRO_SECRET öğelerinin base64 olarak kodlanmış değerini belirtin:

    echo -n "your-org" | base64 | tr -d '\n'
    echo -n "your-org-env" | base64 | tr -d '\n'
    echo -n "your-mg-key" | base64 | tr -d '\n'
    echo -n "your-mg-secret" | base64 | tr -d '\n'
    
  3. Kuruluşunuz için Edge Microgateway yapılandırma dosyasında değişikliklerinizi yapın ve ortam:

    $HOME/.edgemicro/your_org-your_env-config.yaml
  4. Base64 Kodlaması yapılandırma dosyasının içeriği:

    cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64  | tr -d '\n'
  5. Yaptığınız değişiklikleri, hizmetinizin çalıştığı ad alanındaki Kubernetes'e uygulayın.

    kubectl apply -f secret.yaml -n 

Bu yeni değişiklikler, mevcut mikro ağ geçidi kapsülleri tarafından otomatik olarak alınmaz. ancak, yeni kapsüllerde değişiklikler yapılacak. Mevcut kapsülü silebilirsiniz. Böylece dağıtımı, değişikliği yakalayan yeni bir kapsül oluşturur.

Hizmet örneği

Aşağıdaki örnek, bir hizmet dağıtımının yeni bir

  1. Kapsülleri alın.

    kubectl get pods

    Örnek çıkış:

    NAME                                 READY     STATUS    RESTARTS   AGE
    edge-microgateway-57ccc7776b-g7nrg   1/1       Running   0          19h
    helloworld-6987878fc4-cltc2          1/1       Running   0          1d
    
  2. edge-microgateway kapsülünü silin.

    kubectl delete pod edge-microgateway-57ccc7776b-g7nrg

    Örnek çıkış:

    pod "edge-microgateway-57ccc7776b-g7nrg" deleted
    
  3. Kapsülleri tekrar alın. Yeni bir kapsül açılır ve yapılandırma değişikliklerinizi alır.

    kubectl get pods

    Örnek çıkış:

    NAME                                 READY     STATUS    RESTARTS   AGE
    edge-microgateway-57ccc7776b-7f6tc   1/1       Running   0          5s
    helloworld-6987878fc4-cltc2          1/1       Running   0          1d
    

Dağıtımınızı ölçeklendirme

Bu bölümde, aşağıdaki işlemleri gerçekleştirmek için Kubernetes ölçeklendirme ilkelerini nasıl kullanabileceğiniz açıklanmaktadır: dağıtımlarınızı ölçeklendirmek için kullanır.

Hizmet dağıtımını ölçeklendirme

  1. Dağıtımları kontrol edin:

    kubectl get deployments

    Örnek çıkış:

    NAME                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edge-microgateway   1         1         1            1           18h
    helloworld          1         1         1            1           1d
    

    Çıkış, bir replikanın dağıtıldığını gösteriyor.

  2. Dağıtımı 1 replikadan istediğiniz sayıda replikaya kadar ölçeklendirin. Bu örnekte edge-microgateway hizmeti ölçeklendirilmiştir.

    kubectl scale deployment edge-microgateway --replicas=2
  3. (İsteğe bağlı) Otomatik ölçeklendirmeyi kullanmak istiyorsanız şu komutu kullanın:

    kubectl autoscale deployment edge-microgateway --cpu-percent=50 --min=1 --max=10
  4. Ölçeklendirmenin etkin olduğunu doğrulamak için dağıtımları kontrol edin:

    kubectl get deployments

    Örnek çıkış:

    NAME                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edge-microgateway   2         2         2            2           18h
    helloworld          1         1         1            1           1d
    

    Durum, iki replika içerecek şekilde değiştirildi.

  5. Kapsülleri kontrol edin:

    kubectl get pods

    Örnek çıkış:

    NAME                                 READY     STATUS    RESTARTS   AGE
    edge-microgateway-57ccc7776b-g7nrg   1/1       Running   0          18h
    edge-microgateway-57ccc7776b-rvfz4   1/1       Running   0          41s
    helloworld-6987878fc4-cltc2          1/1       Running   0          1d
    

    Çıkış, her iki replikanın da çalışır durumda olduğunu gösteriyor.

Birden fazla Edge Microgateway yapılandırması için ad alanları kullanma

Edge Mikro Ağ Geçidi hizmetlerinin birden fazla örneğini şu hesabınıza dağıtabilir ve yapılandırabilirsiniz: Kubernetes kümesi. Bu kullanım alanı, her bir mikro ağ geçidi örneğini yapılandırmanıza olanak tanır kendi eklenti ve parametre grubuna sahip. Örneğin:

  • Edge Microgateway Hizmeti A için yalnızca artış durdurma eklentisi gerekir.
  • Edge Microgateway Hizmeti B, kota ve OAuth eklentisi gerektirir ancak ani artış önlemeyi gerektirmez.

Bu kullanım alanını ele almak için Kubernetes ad alanlarını kullanın. Örneğin, Edge Mikro Ağ Geçidi Hizmeti A'dan foo ad alanına ve Edge Mikro Ağ Geçidi Hizmeti B'ye bar ad alanını kullanır.

Aşağıdaki örnekte, OrgA kuruluşunda yapılandırılan Edge Mikro Ağ Geçidi, ad alanına bir hizmet olarak dağıtılmıştır -n seçeneği ile foo:

kubectl apply -f <(edgemicroctl -org=myorgA -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/joed/.edgemicro/orgA-test-config.yaml -svc=samples/helloworld/helloworld.yaml) -n foo

Benzer şekilde, aşağıdaki örnekte Edge Mikro Ağ Geçidi, OrgB kuruluşunda yapılandırılmıştır , -n seçeneği kullanılarak bar ad alanına bir hizmet olarak dağıtılır:

kubectl apply -f <(edgemicroctl -org=myorgB -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/joed/.edgemicro/orgB-test-config.yaml -svc=samples/helloworld/helloworld.yaml) -n bar