Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Özel eklenti ekleme
Özel eklentiler yazarak mikro geçiş noktasına yeni özellikler ve özellikler ekleyebilirsiniz. Özel eklentiler, mikro ağ geçidinden geçen istek ve yanıtlarla programatik olarak etkileşim kurmanıza olanak tanır.
Bu bölümde, Kubernetes kümenizde çalışan bir Edge Microgateway örneğine eklentilerin nasıl paketleneceği ve dağıtılacağı açıklanmaktadır.
Bu bölümün geri kalanında, standart bir Edge Microgateway kurulumu için eklenti yazma ve yapılandırma hakkında bilgi sahibi olduğunuz varsayılmaktadır. Aksi takdirde Ö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 talimatları uygulayarak eklentinizi yazın ve test edin.
Eklenti kodunuzu doğru dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıya uymalıdır. Aşağıdaki örnekte, uymanız gereken yapı gösterilmektedir. Bu örnekte
response-uppercase
verequest-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.json
cd
klasörüne taşındı.plugin
plugin
klasöründeplugins
klasörünün tamamını sıkıştırın:zip -r plugins.zip plugins/
Docker görüntüsü oluşturma
- Zip dosyasının bulunduğu dizinde
Dockerfile
adlı yeni bir dosya oluşturun. Aşağıdaki kodu
Dockerfile
dosyasına 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.io
veyagcr.io
gibi dilediğiniz kayıt otoritesini kullanabilirsiniz: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
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 response-uppercase
özel eklentisi 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, yeni görüntüyü Container Registry'ye gönderdiğiniz eklenti koduyla ç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 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ü yüklediğiniz Docker kayıt defteri. Örneğin,gcr.io
veyadocker.io
your_project_name
: Docker görüntüsünü gönderdiğiniz Docker deposunun proje adı.image_name
: Yayınladığı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. Beklediğiniz davranışı alıp almadığınızı görmek için API'yi çağırın. Örneğin, "yanıt büyük harf" eklentisi için yanıt metni aşağıdaki gibi tümüyle büyük harfe dönüştürülür:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
Çıkış:
HELLO WORLD
Yeni yapılandırmayı manuel olarak ekleme
Manuel ekleme, yeni yapılandırmayı komut satırından 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 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ü yüklediğiniz Docker kayıt defteri. Örneğin,gcr.io
veyadocker.io
your_project_name
: Docker görüntüsünü gönderdiğiniz Docker deposunun proje adı.image_name
: Yayınladığı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ışı alıp almadığınızı görmek için hizmet API'sini çağırın. Örneğin, "yanıt büyük harf" eklentisi için 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 Microgateway 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 bölümde, Kubernetes'te çalışan Edge Microgateway'te 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.yaml
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
EDGEMICRO_ORG
,EDGEMICRO_ENV
,EDGEMICRO_KEY
,EDGEMICRO_SECRET
için base64 olarak kodlanmış değeri 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şunuzun ve ortamınızın Edge Microgateway yapılandırma dosyasında değişikliklerinizi yapın:
$HOME/.edgemicro/your_org-your_env-config.yaml
Yapılandırma dosyasının içeriğini iki kez Base64 olarak kodlayın:
cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64 | tr -d '\n'
Hizmetinizin çalıştığı ad alanındaki kubernetes'e değişiklikleri 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üller değişiklikleri alır. Mevcut kapsülü silerek dağıtımın, değişikliği alan yeni bir kapsül oluşturmasını sağlayabilirsiniz.
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 1d
edge-microgateway
kapsülünü silin.kubectl delete pod edge-microgateway-57ccc7776b-g7nrg
Örnek çıkış:
pod "edge-microgateway-57ccc7776b-g7nrg" deleted
Kapsülleri tekrar alın. Yeni bir kapsül başlatılır ve yapılandırma değişiklikleriniz bu kapsüle 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ışta bir kopyanın dağıtıldığı belirtilir.
Dağıtım ölçeğini 1'den istediğiniz kadar kopyaya kadar artırabilirsiniz. Bu örnekte
edge-microgateway
hizmeti ölçeklendirilmiştir.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 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 kopya içerecek şekilde değiştirildi.
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ışta, her iki kopyanın da çalışan durumda olduğu gösterilir.
Birden çok Edge Microgateway yapılandırması için ad alanları kullanma
Kubernetes kümenize birden fazla Edge Microgateway hizmeti örneği dağıtabilir ve yapılandırabilirsiniz. Bu kullanım alanı, her mikro ağ geçidi örneğini kendi eklenti ve parametreleriyle yapılandırmanıza olanak tanır. Örneğin:
- Edge Microgateway A Hizmeti yalnızca ani artış durdurma eklentisini gerektirir.
- Edge Microgateway Service B, kota ve oauth eklentisini gerektirir ancak ani artış durdurma özelliğini gerektirmez.
Bu kullanım alanını ele almak için Kubernetes ad alanlarını kullanın. Örneğin, Edge Microgateway Hizmeti A'yı foo
ad alanına, Edge Microgateway Hizmeti B'yi 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ının bir hizmeti olarak dağıtılmıştır:
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ılmış Edge Microgateway, -n
seçeneği kullanılarak bar
ad alanının bir hizmeti olarak dağıtılmıştı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