Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Özel eklenti ekleme
Özel eklentiler yazarak mikro ağ geçidine yeni özellikler ve işlevler ekleyebilirsiniz. Özel eklentiler, mikro ağ geçidinden geçen istekler ve yanıtlarla programatik olarak etkileşim kurmanıza olanak tanır.
Bu bölümde, eklentilerin Kubernetes kümenizde çalışan bir Edge Microgateway örneğine nasıl paketlenip dağıtılacağı açıklanmaktadır.
Bu bölümün geri kalanında, standart bir Edge Microgateway kurulumu için eklentiler yazma ve yapılandırma konusunda bilgi sahibi olduğunuz varsayılır. Değilse Özel eklentiler geliştirme başlıklı makaleyi inceleyin.
Eklentilerinizi paketleme
Özel eklentileri paketlemek için aşağıdaki adımları uygulayın:
Basit bir eklenti yazma bölümündeki talimatlara göre eklentinizi yazın ve test edin.
Eklenti kodunuzu uygun dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıya uymalıdır. Aşağıdaki örnekte, izlemeniz gereken yapı gösterilmektedir. Burada
response-uppercaseverequest-headers, özel eklenti kodu içeren klasörlerin adlarıdır (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.jsoncd,pluginklasörüne taşındı.pluginklasöründe,pluginsklasörünün tamamını zipleyin:zip -r plugins.zip plugins/
Docker görüntüsü oluşturma
- Zip dosyasının bulunduğu dizinde
Dockerfileadlı yeni bir dosya oluşturun. Dockerfiledosyasına aşağıdaki kodu 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"]Eklentilerinizle yeni bir Edge Microgateway Docker görüntüsü oluşturun ve görüntüyü Docker kayıt defterinize gönderin.
docker.ioveyagcr.iogibi istediğiniz kayıt defterini kullanabilirsiniz:docker build -t edgemicroplugins .docker tag edgemicroplugins container-registry/your-project/edgemicropluginsdocker push container-registry/your-project/edgemicropluginsÖrneğin:
docker build -t edgemicroplugins .docker tag edgemicroplugins gcr.io/my-project/edgemicropluginsdocker push gcr.io/my-project/edgemicroplugins
Edge Microgateway yapılandırmasını güncelleme
Eklentileri Edge Microgateway yapılandırma dosyanıza ekleyin. Yapılandırma dosyasını şu konumda bulabilirsiniz:
$HOME/.edgemicro/org-env-config.yaml
Örneğin:
$HOME/.edgemicro/myorg-test-config.yaml
Aşağıdaki örnek yapılandırmada, özel eklenti response-uppercase eklenmiştir.
oauth eklentisi varsayılan olarak zaten 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, Container Registry'ye aktardığınız eklenti kodunu içeren yeni görüntüyü çeker ve yeni oluşturulan kapsüller için kullanır.
Edge Microgateway'i hizmet olarak dağıttıysanız
Güncellenen Edge Microgateway yapılandırmasını eklemek için edgemicroctl komutunu kullanın:
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 configurekomutunda belirttiğiniz Apigee kuruluşu.your_environment-edgemicro configurekomutunda belirttiğiniz ortam.configuration_key:edgemicro configurekomutundan döndürülen anahtar.configuration_secret:edgemicro configurekomutundan döndürülen gizli.config_file_path-edgemicro configurekomutundan döndürülen Edge Micro yapılandırma dosyasının yolu.container-registry- Görüntüyü aktardığınız Docker kayıt defteri. Örneğin,gcr.ioveyadocker.ioyour_project_name- Docker görüntüsünü gönderdiğiniz 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)
Eklentiyi test edin. Beklenen davranışı elde edip etmediğinizi görmek için API'yi çağırın. Örneğin, "response uppercase" eklentisinde yanıt metni, aşağıda gösterildiği gibi tamamen büyük harflere dönüştürülür:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
Çıkış:
HELLO WORLD
Yeni yapılandırmayı manuel olarak yerleştirme
Manuel ekleme, komut satırından yeni yapılandırmayı eklediğiniz basit bir yaklaşımdır.
Aşağıdaki 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 -img=container-registry/your_project_name/image_name:latest -svc=service_deployment_file)
Bu örnekte:
your_org:edgemicro configurekomutunda belirttiğiniz Apigee kuruluşu.your_env-edgemicro configurekomutunda belirttiğiniz ortam.your_key:edgemicro configurekomutundan döndürülen anahtar.your_secret:edgemicro configurekomutundan döndürülen gizli.config_file_path-edgemicro configurekomutundan döndürülen Edge Micro yapılandırma dosyasının yolu.container-registry- Görüntüyü aktardığınız Docker kayıt defteri. Örneğin,gcr.ioveyadocker.ioyour_project_name- Docker görüntüsünü gönderdiğiniz Docker deposunun proje adı.image_name: Aktardığınız Docker görüntüsünün adı.service_deployment_file- Eklentilerin uygulanacağı 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 -img=gcr.io/myproject/edgemicroplugins:latest -svc=samples/helloworld/helloworld.yaml)
Eklentiyi test edin. Beklenen davranışı elde edip etmediğinizi görmek için hizmet API'sini çağırın. Örneğin, "response uppercase" eklentisinde yanıt metni, aşağıda gösterildiği gibi tamamen büyük harflere dönüştürülür:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
Çıkış:
HELLO WORLD
Edge Microgateway yapılandırmasında değişiklik 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 bölümde, Kubernetes'te çalışan Edge Microgateway'de yapılandırma değişikliklerinin nasıl yapılacağı ve uygulanacağı açıklanmaktadır.
Aşağıda gösterildiği gibi bir yapılandırma dosyası
secret.yamloluş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_CONFIGEDGEMICRO_ORG,EDGEMICRO_ENV,EDGEMICRO_KEY,EDGEMICRO_SECRETdeğerinin Base64 olarak kodlanmış halini 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'Kuruluşunuz ve ortamınız için Edge Microgateway yapılandırma dosyasında değişiklik yapın:
$HOME/.edgemicro/your_org-your_env-config.yaml
Yapılandırma dosyasının içeriğini iki kez Base64 kodlayın:
cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64 | tr -d '\n'
Değişiklikleri, hizmetinizin çalıştığı ad alanında Kubernetes'e uygulayın.
kubectl apply -f secret.yaml -n
Bu yeni değişiklikler mevcut mikro ağ geçidi pod'ları tarafından otomatik olarak alınmaz ancak yeni pod'lar değişiklikleri alır. Mevcut pod'u silebilirsiniz. Böylece dağıtım, değişikliği alan yeni bir pod oluşturur.
Hizmet örneği
Aşağıdaki örnekte, bir hizmet dağıtımının yeni bir
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 1dedge-microgatewaykapsülünü silin.kubectl delete pod edge-microgateway-57ccc7776b-g7nrg
Örnek çıkış:
pod "edge-microgateway-57ccc7776b-g7nrg" deletedPod'ları tekrar alın. Yeni bir pod başlatılır ve yapılandırma değişiklikleriniz uygulanı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, dağıtımlarınızı ölçeklendirmek için Kubernetes ölçeklendirme ilkelerini nasıl kullanabileceğiniz açıklanmaktadır.
Hizmet dağıtımını ölçeklendirme
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österir.
Dağıtımı 1'den istediğiniz kadar kopyaya ölçeklendirin. Bu örnekte,
edge-microgatewayhizmeti ölçeklendirilir.kubectl scale deployment edge-microgateway --replicas=2
(İ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
Ölçeklendirmenin etkinleştirildiğini 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 1dDurum, iki çoğaltmayı içerecek şekilde değiştirildi.
Pod'ları 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österir.
Birden çok Edge Microgateway yapılandırması için ad alanlarını kullanma
Edge Microgateway hizmetlerinin birden fazla örneğini Kubernetes kümenize dağıtabilir ve yapılandırabilirsiniz. Bu kullanım alanı, her bir mikro ağ geçidi örneğini kendi eklenti ve parametre grubuyla yapılandırmanıza olanak tanır. Örneğin:
- Edge Microgateway Service A yalnızca ani artışları önleme eklentisini gerektirir.
- Edge Microgateway Service B, kota ve OAuth eklentisini gerektirir ancak ani artış engelleme eklentisini gerektirmez.
Bu kullanım alanını ele almak için Kubernetes ad alanlarını kullanın. Örneğin, Edge Microgateway A hizmetini foo ad alanına, Edge Microgateway B hizmetini ise bar ad alanına dağıtabilirsiniz.
Aşağıdaki örnekte, OrgA kuruluşunda yapılandırılan Edge Microgateway, -n seçeneği kullanılarak foo ad alanına hizmet olarak dağıtılıyor:
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 OrgB kuruluşunda yapılandırılan Edge Microgateway, -n seçeneği kullanılarak bar ad alanına 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