Bu kılavuzda, Apigee Edge for Private Cloud ve API proxy'lerinin, internet bağlantısı olmayan bir Google Distributed Cloud (GDC) ortamında nasıl yükleneceği ve dağıtılacağı açıklanmaktadır. Apigee Edge for Private Cloud dahil GDC air-gapped teklifleri, altyapı ve hizmetleri yönetmek için Google Cloud'a bağlantı gerektirmez. Tüm işlemler için tesisinizde barındırılan yerel bir kontrol düzlemi kullanabilirsiniz. GDC air-gapped'e genel bakış için genel bakış bölümüne bakın.
Bu kılavuz, Apigee Edge Private Cloud'a aşina olan ve Kubernetes hakkında temel düzeyde bilgi sahibi olan Apigee operatörleri için hazırlanmıştır.
Gerekli adımlara genel bakış
Apigee Edge for Private Cloud'u hava boşluklu bir GDC ortamına yüklemek ve dağıtmak için operatörün aşağıdaki adımları tamamlaması gerekir:
- Apigee Edge Private Cloud için yükleme dosyalarını edinin.
- Storage paketi oluşturun.
- Depo düğümü oluşturun.
- Apigee düğümlerini dağıtın.
- Bir kontrol düğümü ayarlayın.
- Ansible'ı yapılandırın.
- Apigee bileşenlerini yükleyin.
- Pod'ları ve hizmetleri dağıtın.
- Yükleyici ve Fluent Bit yönlendirici IP'lerini güncelleyin.
- Apigee kuruluşunu kullanmaya başlama.
- HTTP bağlantısını test edin.
- TLS'yi yapılandırın ve HTTPS'yi test edin.
Başlamadan önce
Yükleme işlemine başlamadan önce aşağıdaki adımları tamamladığınızdan emin olun:
- Henüz oluşturmadıysanız yükleme için kullanılacak bir GDC projesi oluşturun. Daha fazla bilgi için Proje oluşturma başlıklı makaleyi inceleyin.
- GDC'ye bağlı bir iş istasyonuna veya kuruluşunuzun sürekli dağıtım ortamına
gdcloud
CLI'yı indirip yükleyin ve yapılandırın. gdcloud
KSA'yı vekubectl
API'yi kullanmak için gereken kimlik bilgilerini alın. Gerekli adımlar için Erişim için hesabınızın kimliğini doğrulama başlıklı makaleyi inceleyin.- Apigee hesap yöneticinizden aldığınız Apigee kullanıcı adını ve şifresini onaylayın.
- GKE yönetici kümenizin ve GKE kullanıcı kümenizin adını onaylayın.
Kapasite koşulları
GDC'ye Apigee Edge for Private Cloud'u yüklemek için belirli kaynak ayırmalarıyla birkaç sanal makine (VM) gerekir. Bu VM'ler, işlem kaynaklarına (RAM, vCPU çekirdekleri) ve yerel disk depolama alanına göre ücretlendirilir. Daha fazla bilgi için Fiyatlandırma bölümüne bakın.
Aşağıdaki tabloda her bir sanal makine için kaynak gereksinimleri gösterilmektedir:
Sanal makine türü | RAM | vCPU çekirdekleri | Disk depolama alanı |
---|---|---|---|
Depo düğümü | 8 GB | 2 vCPU çekirdeği | 64 GB |
Kontrol düğümü | 8 GB | 2 vCPU çekirdeği | 64 GB |
Apigee API yönetim düğümleri 1, 2 ve 3 | 16 GB RAM | 8 vCPU çekirdeği | 670 GB |
Apigee API yönetimi düğümleri 4 ve 5 | 16 GB RAM | 8 vCPU çekirdeği | 500 GB - 1TB |
Roller ve izinler
Apigee Edge for Private Cloud'u hava boşluklu bir GDC ortamına dağıtmak için aşağıdaki roller ve izinler gereklidir:
- Platform Yöneticisi (PA):
IAM Admin
rolünü atayın. - Uygulama Operatörü (AO): Aşağıdaki rolleri atayın:
Harbor Instance Admin
: Bir projedeki Harbor örneklerini yönetmek için tam erişime sahip olmalıdır.LoggingTarget Creator
: Proje ad alanındaLoggingTarget
özel kaynak oluşturur.LoggingTarget Editor
: Proje ad alanındakiLoggingTarget
özel kaynaklarını düzenler.Project Bucket Admin
: Depolama paketlerini ve paketlerdeki nesneleri yönetir.Project Grafana Viewer
: Proje ad alanındaki izleme örneğine erişir.Project NetworkPolicy Admin
: Proje ad alanındaki proje ağı politikalarını yönetir.Project VirtualMachine Admin
: Proje ad alanındaki sanal makineleri yönetir.Secret Admin
: Projelerdeki Kubernetes gizli anahtarlarını yönetir.Service Configuration Admin
: Bir proje ad alanındaki hizmet yapılandırmalarına okuma ve yazma erişimi vardır.Namespace Admin
: Proje ad alanlarındaki tüm kaynakları yönetir.
- GDC'de hava boşluklu Apigee, DNS sunucularıyla birlikte gelmez ve geçici çözüm olarak yerel DNS çözümlemesini kullanır. GDC'de hava boşluklu Apigee, harici DNS sunucularının bulunduğu bir ortamda dağıtılıyorsa yerel DNS'yi yapılandıran adımları DNS sunucularındaki DNS girişlerini yapılandırma adımlarıyla değiştirin.
- GDC'de hava boşluklu Apigee, bağımsız bir SMTP sunucusu içermez. Yönetim sunucusu ve yönetim kullanıcı arayüzünden hesap oluşturma ve şifre sıfırlama işlemleri için giden e-posta bildirimlerini etkinleştirmek üzere istediğiniz zaman bir SMTP sunucusu yapılandırabilirsiniz. Yönetim API'leri, Apigee kullanıcı hesabı yönetimi için kullanılmaya devam edecektir. Daha fazla bilgi için Edge SMTP sunucusunu yapılandırma başlıklı makaleyi inceleyin.
- GDC'de hava boşluklu Apigee, izinsiz giriş tespitini ve önlemeyi uygulamaz. Kötü amaçlı etkinlikleri tespit etmek ve önlemek için Snort gibi bir İzinsiz Girişi Önleme Sistemi (IPS) yükleyin ve yapılandırın.
- İşletim Sistemi: Rocky Linux 8
- Makine boyutu: 8 GB RAM; 2 sanal CPU çekirdeği; 64 GB yerel disk depolama alanı
- Bağlantı:
- Giriş: TCP 22 (SSH)
- Çıkış: İnternet
- Edge for Private Cloud sütununda belirtildiği gibi, GDC için desteklenen en son resmi sürüm için Apigee Edge for Private Cloud sürüm notlarını inceleyin.
- Edge kurulum dosyasını indirin:
curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'
Burada:
- APIGEE_USER, Apigee kuruluşu için aldığınız kullanıcı adıdır.
- APIGEE_PASSWORD, Apigee kuruluşu için aldığınız şifredir.
- VERSION, yüklemeyi planladığınız GDC'de kullanılacak Apigee Edge Private Cloud sürümüdür (ör. 4.53.01).
- En son Apigee Edge Private Cloud
bootstrap_VERSION.sh
dosyasını/tmp/bootstrap_VERSION.sh
konumuna indirin:curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
Burada VERSION, yüklemek istediğiniz GDC'de kullanılacak en son Apigee Edge Private Cloud sürümüdür (ör. 4.53.01).
- Edge
apigee-service
yardımcı programını ve bağımlılıklarını yükleyin:sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD
Burada:
- APIGEE_USER, Apigee kuruluşu için aldığınız kullanıcı adıdır.
- APIGEE_PASSWORD, Apigee kuruluşu için aldığınız şifredir.
- VERSION, yüklemeyi planladığınız GDC'de kullanılacak Apigee Edge Private Cloud sürümüdür.
- Bağlı düğümde kurulum komut dosyasını çalıştırın:
chmod a+x connected-node_setup.sh \ ./connected-node_setup.sh
Bu adımda komut dosyası, gerekli dosyaları aşağıdaki konumlarda oluşturur (örneğin, 4.53.01 sürümü için):
/opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz
/tmp/apigee-nginx/apigee-nginx.tar
/tmp/fluentbit/fluentbit.tar
/tmp/postgresql14/postgresql14.tar
/tmp/ansible-rpms.tar
/tmp/apigee-repos.tar
- Gerekli dosyaları bağlı düğümden yerel makineye SSH üzerinden aktarın:
mkdir apigee-files
cd apigee-files
for file in /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz /tmp/ansible-rpms.tar /tmp/apigee-nginx/apigee-nginx.tar /tmp/fluentbit/fluentbit.tar /tmp/postgresql14/postgresql14.tar /tmp/apigee-repos.tar; do scp -i SSH_PRIVATE_KEY_FILE USER@CONNECTED_NODE_IP:$file . done
Burada:
- SSH_PRIVATE_KEY_FILE, SSH özel anahtar dosyasının yoludur.
- USER, bağlı düğümün kullanıcı adıdır.
- CONNECTED_NODE_IP, bağlı düğümün IP adresidir.
- Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
gdcloud auth login --login-config-cert WEB_TLS_CERT
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
Burada:
- WEB_TLS_CERT, web TLS sertifikasının yoludur.
- ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.
- Proje ve paket ortam değişkenlerini ayarlayın:
export PROJECT=PROJECT
export BUCKET=BUCKET_NAME
Burada:
- PROJECT, GDC projenizin adıdır.
- BUCKET_NAME, Apigee Edge Private Cloud yedekleme dosyalarını depolamak için oluşturmak istediğiniz paketin adıdır.
- Paket yapılandırmasını uygulayın:
kubectl apply -f - <<EOF apiVersion: object.GDC.goog/v1 kind: Bucket metadata: name: $BUCKET namespace:$PROJECT spec: description: bucket for Apigee backup files storageClass: Standard bucketPolicy : lockingPolicy : defaultObjectRetentionDays: 30 EOF
Bu yapılandırma, 30 günlük tutma süresine sahip bir paket oluşturur.
- Projede bir hizmet hesabı oluşturun:
gdcloud iam service-accounts create $BUCKET-sa \ --project=$PROJECT
- Pakete erişmek için gizli anahtar oluşturmak üzere rolü ve rol bağlamayı oluşturun:
kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: $BUCKET-role namespace: $PROJECT rules: - apiGroups: - object.gdc.goog resourceNames: - $BUCKET resources: - buckets verbs: - get - read-object - write-object --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: $BUCKETrolebinding namespace: $PROJECT roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: $BUCKET-role subjects: - kind: ServiceAccount name: $BUCKET-sa namespace: $PROJECT EOF
- Gizli anahtardan erişim anahtarı kimliğini ve anahtarı alın:
export BUCKET_SECRET=$(kubectl get secret -n $PROJECT -o jsonpath="{range .items[*]}{.metadata.name}{':'}{.metadata.annotations['object\.GDC\.goog/subject']}{'\n'}{end}" | grep $BUCKET | tail -1 | cut -f1 -d :)
echo "access-key-id=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['access-key-id']}")"
echo "access-key=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['secret-access-key']}")"
Çıkış şuna benzer şekilde görünmelidir:
access-key-id=RFdJMzRROVdWWjFYNTJFTzJaTk0= access-key=U3dSdm5FRU5WdDhMckRMRW1QRGV0bE9MRHpCZ0Ntc0cxVFJQdktqdg==
- Yükleyici tarafından kullanıcı GKE kümesinde kullanılacak bir gizli dizi oluşturun:
- Kullanıcı GKE kümesiyle kimlik doğrulayın:
gdcloud clusters get-credentials USER_CLUSTER
Burada USER_CLUSTER, kullanıcı GKE kümesinin adıdır.
- Gizli yapılandırmayı uygulayın:
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: namespace: $PROJECT name: $BUCKET-secret type: Opaque data: access-key-id: ACCESS_KEY_ID access-key: ACCESS_KEY EOF
Burada:
- ACCESS_KEY_ID, önceki adımda elde edilen erişim anahtarı kimliğidir.
- ACCESS_KEY önceki adımda elde edilen erişim anahtarıdır.
- Kullanıcı GKE kümesiyle kimlik doğrulayın:
- Paketin depolama uç noktasını, tam nitelikli alan adını (FQDN) ve bölgesini alın:
- Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
Burada ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.
- Paketin depolama uç noktasını, tam nitelikli alan adını (FQDN) ve bölgesini alın:
kubectl get buckets ${BUCKET} -n $PROJECT -o jsonpath="{'endpoint: '}{.status.endpoint}{'\n'}{'bucket: '}{.status.fullyQualifiedName}{'\n'}{'region: '}{.status.region}{'\n'}"
Çıkış şuna benzer şekilde görünmelidir:
endpoint: https://objectstorage.gpu-org.cookie.sesame.street bucket: ez9wo-apigee-backup-bucket region: cookie
- Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
apigee/helm_user_cluster/values-cookie-air-gapped.yaml
dosyasında aşağıdaki değerleri güncelleyin:objectstorekeyname: "apigee-backup-bucket-secret" objectstoreurl: "BUCKET_ENDPOINT" objectstorebucket: "BUCKET_FQDN"
Burada:
- BUCKET_ENDPOINT önceki adımda elde edilen paketin uç noktasıdır.
- BUCKET_FQDN, önceki adımda elde edilen paketin tam nitelikli alan adıdır.
apigee/helm_user_cluster/values-cookie-air-gapped.yaml
uygulamasını şu şekilde güncelleyin:repo_node: enabled: true apigee_node: enabled: false control_node: enabled: false
repo_node
'nın etkin olduğundan,apigee_node
vecontrol_node
'nin ise devre dışı bırakıldığından emin olun. Bu düğümler daha sonraki bir adımda dağıtılır.- Kuruluş yöneticisi kümesi için kimlik bilgilerini alın:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
Burada ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.
- Python sanal ortamı oluşturun:
python3 -m venv venv / source venv/bin/activate
- Depo düğümünü oluşturmak için dağıtım komut dosyasını çalıştırın:
python apigee/solution_deploy.py gdc-air-gapped
- Depo düğümü için SSH'yi yapılandırın:
export NODE=repo
kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: $NODE- spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: $NODE EOF
Burada SSH_PUBLIC_KEY_FILE, ortak SSH anahtarınızı içeren dosyanın adıdır.
- Depo düğümünün harici IP adresini alın:
kubectl get virtualmachineexternalaccess -n $PROJECT $NODE -ojsonpath='{.status.ingressIP}'
- Depo düğümünün dahili IP adresini alın:
kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT $NODE -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'
apigee-4.53.01
apigee-nginx.tar
postgresql14.tar
fluentbit.tar
ansible-rpms.tar
apigee-repos.tar
- SSH özel anahtar dosyasını depo düğümüne kopyalayın:
scp -i SSH_PRIVATE_KEY_FILE ~/apigee-files/* admin@REPO_EXTERNAL_IP:/tmp
Burada:
- SSH_PRIVATE_KEY_FILE, özel SSH anahtarınızı içeren dosyanın adıdır.
- REPO_EXTERNAL_IP, önceki adımda elde edilen depo düğümünün harici IP adresidir.
- Fluent Bit yapılandırmalarını içeren klasörü depo düğümüne yükleyin:
scp -i SSH-PRIVATE-KEY-FILE -r apigee/scripts/fluent-bit admin@REPO_EXTERNAL_IP:/tmp/fluent-bit
Burada:
- SSH_PRIVATE_KEY_FILE, özel SSH anahtarınızı içeren dosyanın adıdır.
- REPO_EXTERNAL_IP, depo düğümünün harici IP adresidir.
apigee/scripts/repo_setup.sh
dosyasını depo düğümüne kopyalayın.- Komut dosyasında REPO_USER ve REPO_PASSWORD değerlerini, yansıtma deposu için istediğiniz kullanıcı adı ve şifreyle değiştirin.
- Komut dosyasını çalıştırın:
chmod a+x repo_setup.sh
./repo_setup.sh
No such file or directory
hatasıyla karşılaşırsanız komut dosyasını yeniden çalıştırın. - Yansıtma deposuyla bağlantıyı depo düğümünden yerel olarak test edin.
curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/apigee/release/VERSION/repodata/repomd.xml
VERSION kısmını, yüklemek istediğiniz Apigee Edge Private Cloud sürümüyle değiştirin.
REPO_INTERNAL_IP
,REPO_USER_NAME
veREPO_PASSWORD
öğeleriniapigee/helm/scripts/apigee_setup.sh
içinde istediğiniz değerlerle değiştirin.- Değerleri ortam değişkenleri olarak dışa aktarın:
export REPO_IP=REPO_INTERNAL_IP
export REPO_USER=REPO_USER_NAME
export REPO_PASSWORD=REPO_PASSWORD
apigee/helm/values-cookie-air-gapped.yaml
bölümündeapigee_node
seçeneğini aşağıdaki gibi etkinleştirin:apigee_node: enabled: true
- Apigee düğümlerini oluşturmak için dağıtım komut dosyasını çalıştırın:
source venv/bin/activate
python apigee/solution_deploy.py gdc-air-gapped
- Kuruluş yöneticisi kümesiyle kimlik doğrulayın:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
Burada ORG_ADMIN_CLUSTER, kuruluş yöneticisi GKE kümesinin adıdır.
- Her düğüm için bir SSH anahtarı oluşturun:
for i in 1 2 3 4 5; do kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: node$i spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: node$i EOF done
Burada SSH_PUBLIC_KEY_FILE, ortak SSH anahtarınızı içeren dosyanın adıdır.
- Apigee düğümlerinin harici IP adreslerini alın:
for i in 1 2 3 4 5; do kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}' echo done
- Apigee düğümlerinin dahili IP adreslerini alın:
for i in 1 2 3 4 5; do kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT node$i -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}' echo done
- (İsteğe bağlı) Başlangıç komut dosyalarının Apigee düğümlerinde başarıyla çalışıp çalışmadığını kontrol edin:
- Node'a SSH uygulayın ve aşağıdaki komutu çalıştırın:
sudo journalctl -u cloud-final -f
- Aşağıdakine benzer günlükleri arayın:
Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Complete! Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Finished running the command: . /var/lib/google/startup-scripts/apigee-setup
- Node'a SSH uygulayın ve aşağıdaki komutu çalıştırın:
REPO_INTERNAL_IP
,REPO_USER_NAME
veREPO_PASSWORD
öğeleriniapigee/helm/scripts/control_setup.sh
içinde istediğiniz değerlerle değiştirin.apigee/helm/values-cookie-air-gapped.yaml
bölümündecontrol_node
özelliğini aşağıdaki gibi etkinleştirin:control_node: enabled: true
- Kontrol düğümünü oluşturmak için dağıtım komut dosyasını çalıştırın:
source venv/bin/activate
python apigee/solution_deploy.py gdc-air-gapped
- Kontrol düğümüne SSH erişimini yapılandırın:
kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: control- spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: control EOF
- Kontrol düğümünün harici IP adresini alın:
kubectl get virtualmachineexternalaccess -n $PROJECT control -ojsonpath='{.status.ingressIP}'
- Kontrol düğümünün dahili IP'sini alın:
kubectl get virtualmachines.virtualmachine.GDC.goog -n $PROJECT control -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'
- Kontrol düğümüne SSH uygulayın ve Ansible ortamını ayarlayın:
cd /home/admin
cp -r /tmp/apigee-repos .
cd apigee-repos/ansible-opdk-accelerator/setup
- Uzak Git depolarını yerel dosyayla değiştirme:
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
sed -i 's/\.git$//g' requirements.yml
- Install Ansible requirements:
sudo chown -R admin /home/admin/apigee-repos
ansible-galaxy install -r requirements.yml -f
- Kurulum yapılandırmasını güncelleyin:
main.yml
dosyasını düzenleyin:vi ~/apigee-repos/ansible-opdk-accelerator/setup/roles/apigee-opdk-setup-ansible-controller/tasks/main.yml
- GitHub erişimi gerektiren görevleri kaldırın:
- Yapılandırma depolarının Git SSH ile ödeme işlemi
- Yapılandırma depolarının Git HTTPS ile ödeme işlemi
- Kurulum başucu kitabını çalıştırın:
cd ~/apigee-repos/ansible-opdk-accelerator/setup
ansible-playbook setup.yml
- Apigee düğümlerinin SSH anahtarını kontrol düğümüne yükleyin:
scp -i CONTROL_SSH_PRIVATE_KEY_FILE APIGEE_NODE_SSH_PRIVATE_KEY_FILE admin@CONTROL_EXTERNAL_IP:/home/admin/.ssh/id_rsa
Burada:
- CONTROL_SSH_PRIVATE_KEY_FILE, kontrol düğümünüzün SSH özel anahtarını içeren dosyanın adıdır.
- APIGEE_NODE_SSH_PRIVATE_KEY_FILE, Apigee düğümünüzün SSH özel anahtarını içeren dosyanın adıdır.
- CONTROL_EXTERNAL_IP, kontrol düğümünün harici IP adresidir.
- Ansible envanter yapılandırma dosyasını oluşturun:
apigee/scripts/ansible/prod.cfg
dosyasının içeriğiniprod.cfg
dosyasına kopyalayın:vi ~/.ansible/multi-planet-configurations/prod.cfg
edge-dc1
klasörünü oluşturun veapigee/scripts/ansible/edge-dc1
dosyasının içeriğiniedge-dc1
dosyasına kopyalayın:mkdir ~/.ansible/inventory/prod
vi ~/.ansible/inventory/prod/edge-dc1
edge-dc1
içindeki Apigee düğümlerinin dahili IP adreslerini güncelleyin:apigee_000 ansible_host=APIGEE_NODE1_INTERNAL_IP
apigee_001 ansible_host=APIGEE_NODE2_INTERNAL_IP
apigee_002 ansible_host=APIGEE_NODE3_INTERNAL_IP
apigee_003 ansible_host=APIGEE_NODE4_INTERNAL_IP
apigee_004 ansible_host=APIGEE_NODE5_INTERNAL_IP
Burada APIGEE_NODE*_INTERNAL_IP değerleri, önceki bir adımda elde edilen Apigee düğümlerinin dahili IP adresleridir.
~/.apigee-secure/credentials.yml
dosyasını aşağıdaki değerlerle yapılandırın:- apigee_repo_user: 'APIGEE_REPO_USER'
- apigee_repo_password: 'APIGEE_REPO_PASSWORD'
- opdk_qpid_mgmt_username: 'OPDK_QPID_MGMT_USERNAME'
- opdk_qpid_mgmt_password: 'OPDK_QPID_MGMT_PASSWORD'
Burada:
- APIGEE_REPO_USER, Apigee deposunun kullanıcı adıdır.
- APIGEE_REPO_PASSWORD, Apigee deposunun şifresidir.
- OPDK_QPID_MGMT_USERNAME, Apigee QPID yönetim sunucusunun kullanıcı adıdır.
- OPDK_QPID_MGMT_PASSWORD, Apigee QPID yönetim sunucusunun şifresidir.
- Geçerli bir Apigee Edge Private Cloud lisans dosyası içeren bir lisans dosyası ekleyin. Dosyanın adı
license.txt
olmalıdır. ~/.apigee-secure/license.txt
dosyasının içeriğini, yeni oluşturduğunuzlicense.txt
dosyasına kopyalayın.~/.apigee/custom-properties.yml
dosyasında aşağıdaki değerleri yapılandırın:- opdk_version: 'OPDK_VERSION'
- apigee_repo_url: 'APIGEE_REPO_URL'
Burada:
- OPDK_VERSION, yüklemek istediğiniz Apigee Edge Private Cloud sürümüdür.
- APIGEE_REPO_URL, Apigee deposunun URL'sidir.
- Yapılandırma dosyasını ortam değişkeni olarak dışa aktarın:
export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg
- Uzak Git depolarını yerel dosyalarla değiştirin:
cd ~/apigee-repos/ansible-opdk-accelerator/installations/multi-node/
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
sed -i 's/\.git$//g' requirements.yml
- Ansible gereksinimlerini yükleyin:
ansible-galaxy install -r requirements.yml -f
- Ansible rollerini düzeltin:
sed -i 's/private_address/inventory_hostname/g' ~/.ansible/roles/apigee-opdk-settings-cassandra/tasks/main.yml
sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-server-self/tasks/main.yml
sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/tasks/main.yml
cat << EOF >> ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/templates/response-file-template.conf.j2 QPID_MGMT_USERNAME= opdk_qpid_mgmt_username QPID_MGMT_PASSWORD= opdk_qpid_mgmt_password EOF
sed -i 's/mode: 0700/mode: 0700\n recurse: yes/g' ~/.ansible/roles/apigee-opdk-setup-postgres-config/tasks/main.yml
install.yml
dosyasının içeriğiniapigee/scripts/ansible/install.yml
dosyasındaki içerikle değiştirin.- Apigee bileşenlerini yüklemek için playbook'u çalıştırın:
ansible-playbook install.yml
- Edge kullanıcı arayüzünde kullanıcının şifre sıfırlama bağlantısını devre dışı bırakın. GDC'de hava boşluklu Apigee, SMTP sunucusu içermez. Edge kullanıcı arayüzünde şifre sıfırlama bağlantısını devre dışı bırakma başlıklı makaledeki adımları uygulayın.
- GDC projesinde
dev-apigee
bir Harbor örneği oluşturmak için Create Harbor registry instances (Harbor kayıt defteri örnekleri oluşturma) başlıklı makaledeki talimatları uygulayın. -
Harbor projeleri oluşturma bölümündeki talimatları uygulayarak
apigee
adlı bir Harbor projesi oluşturun. - Harbor projesi için erişim denetimini ayarlamak üzere Erişim denetimini yapılandırma başlıklı makaledeki talimatları uygulayın.
- Docker kimlik doğrulamasını yapılandırmak için Docker ve Helm'de oturum açma bölümündeki talimatları uygulayın.
apigee/apigee_user_cluster.toml
dosyasındaki IP adreslerini gösterildiği gibi güncelleyin:mgmt-server-proxy = "APIGEE_NODE1_EXTERNAL_IP" router-proxy1 = "APIGEE_NODE2_EXTERNAL_IP" router-proxy2 = "APIGEE_NODE3_EXTERNAL_IP"
Burada:
- APIGEE_NODE1_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node1'in harici IP adresidir.
- APIGEE_NODE2_EXTERNAL_IP, önceki adımda elde edilen Apigee node2'nin harici IP adresidir.
- APIGEE_NODE3_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node3'ün harici IP adresidir.
- HTTPS'yi yapılandırmak için SSL sertifika dosyasını (
server.crt
) ve anahtar dosyasını (server.key
)apigee/mgmt-server-proxy
veapigee/router-proxy
klasörlerine yerleştirin.Kendinden imzalı sertifikalar oluşturmak için aşağıdaki komutu kullanın:
openssl req -newkey rsa:4096 -x509 -nodes -keyout server.key -new -out server.crt -subj "/CN=*.apigeetest.com" -sha256 -days 365
apigee/uploader/Dockerfile
dosyasındaki yükleyici kapsayıcısında kök kullanıcı içinSSH-PASSWORD
değerini güncelleyin:RUN echo 'root:SSH_PASSWORD' | chpasswd
- Kullanıcı kümesinin kimlik bilgilerini alın:
gdcloud clusters get-credentials USER_CLUSTER
Burada USER_CLUSTER, kullanıcı GKE kümesinin adıdır.
- Kapsülleri ve hizmetleri dağıtmak için dağıtım komut dosyasını çalıştırın:
source venv/bin/activate
python apigee/solution_deploy_user_cluster.py gdc-air-gapped
- Hizmetlerin harici IP adreslerini alın:
kubectl get svc -n $PROJECT_ID
SSH_PASSWORD
,root
veUPLOADER_EXTERNAL_IP
öğeleriapigee/helm/scripts/backup_setup.sh
hizmetinde güncellensin mi?sshpass -p SSH_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null apigee-backup* root@UPLOADER_EXTERNAL_IP:/temp/
Burada:
- SSH_PASSWORD, kök kullanıcının şifresidir.
- UPLOADER_EXTERNAL_IP, önceki bir adımda elde edilen yükleyici hizmetinin harici IP adresidir.
FLUENTBIT_EXTERNAL_IP
apigee/helm/scripts/apigee_setup.sh
hizmetinde güncellensin mi?export FLUENTBIT_EXTERNAL_IP=FLUENTBIT_EXTERNAL_IP
- Sanal makineleri durdurun:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
export PROJECT=dev-apigee
for i in 1 2 3 4 5; do gdcloud compute instances stop node$i --project $PROJECT done
- Helm grafiğini yeniden dağıtın:
python apigee/solution_deploy.py gdc-air-gapped
- Sanal makineleri başlatın:
for i in 1 2 3 4 5; do GDCloud compute instances start node$i --project $PROJECT done
apigee/scripts/apigee_org_setup.sh
içinde aşağıdaki değerleri gösterildiği gibi güncelleyin. Gerekirse diğer parametreleri güncelleyin.IP1=APIGEE_NODE1_INTERNAL_IP VHOST_ALIAS="APIGEE_NODE2_EXTERNAL_IP:9001 APIGEE_NODE3_EXTERNAL_IP:9001"
Burada:
- APIGEE_NODE1_INTERNAL_IP, önceki bir adımda elde edilen Apigee node1'in dahili IP adresidir.
- APIGEE_NODE2_EXTERNAL_IP, önceki adımda elde edilen Apigee node2'nin harici IP adresidir.
- APIGEE_NODE3_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node3'ün harici IP adresidir.
- Kuruluşu dahil etmek için komut dosyasını node1'de çalıştırın:
chmod a+x apigee_org_setup.sh
./apigee_org_setup.sh
apigee-elb
hizmetinin harici IP adresini alın:gdcloud clusters get-credentials USER_CLUSTER
export PROJECT=dev-apigee
kubectl get svc apigee-elb -n $PROJECT
Burada USER_CLUSTER, kullanıcı GKE kümesinin adıdır.
Bu hizmet, Edge kullanıcı arayüzü, Management API ve API proxy'si için uç nokta görevi görür.
- APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen
apigee-elb
hizmetinin harici IP adresidir. - ORG_NAME, Apigee kuruluşunun adıdır.
- ENV_NAME, Apigee ortamının adıdır.
- Edge kullanıcı arayüzüne giriş yapın.
- Yeni bir API proxy'si oluşturmak için API Proxies (API Proxy'leri) sayfasında Create'i (Oluştur) tıklayın.
- Proxy ayrıntıları sayfasında aşağıdaki değerleri girin:
- Proxy türü: Hedef yok'u seçin.
- Proxy adı:
ok
- Temel yol:
/ok
- Hedef:
http://APIGEE_ELB_EXTERNAL_IP:9001
- API proxy'sini oluşturmak için Oluştur'u tıklayın.
/ok
adresine bir HTTP isteği gönderin:curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
- Yanıtın
200 OK
olduğunu onaylayın. - Aşağıdaki değerlerle kendinden imzalı bir sertifika oluşturmak için Anahtar deposu/güven deposu ve takma ad oluşturma başlıklı makaledeki adımları uygulayın:
- KeyStore: myTestKeystore
- KeyAlias: myKeyAlias
- Ortak Ad: apigeetest.com
api.apigeetest.com
adlı sanal ana makineyi oluşturmak için bir API çağrısı yapın:curl -v -H "Content-Type:application/xml" \ -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e//virtualhosts" \ -d '<VirtualHost name="secure"> <HostAliases> <HostAlias>api.apigeetest.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>myTestKeystore</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>'
Burada:
- APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen
apigee-elb
hizmetinin harici IP adresidir. - ORG_NAME, Apigee kuruluşunun adıdır.
- ENV_NAME, sanal ana makinenin oluşturulması gereken Apigee ortamının adıdır.
- APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen
- Güvenli sanal ana makineyi kullanarak bir API proxy'si oluşturun.
- Yönlendiricilerde sanal ana makineler için DNS çözümlemesini yapılandırın:
echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
- Uç noktaya bir HTTPS isteği göndererek sanal ana makinelerin yerel olarak çalıştığını doğrulayın:
curl https://api.apigeetest.com:9005/ok -v -k
- Uç nokta için DNS çözümlemeyi yapılandırın:
echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts
Burada APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen
apigee-elb
hizmetinin harici IP adresidir. - Web tarayıcısında
https://apigeetest.com/ok
adresine gidin ve çalıştığını onaylayın. - SSL sertifika dosyasından ve anahtar dosyasından bir anahtar deposu dosyası oluşturun:
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out keystore.pkcs12
keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
- Anahtar deposu dosyasını node1'deki Apigee klasörünün altına yerleştirin:
scp -i SSH_PRIVATE_KEY_FILE keystore.jks admin@APIGEE_NODE1_EXTERNAL_IP:/home/admin/
Burada:
- SSH_PRIVATE_KEY_FILE, Apigee düğümünüzün SSH özel anahtarını içeren dosyanın adıdır.
- APIGEE_NODE1_EXTERNAL_IP, önceki bir adımda elde edilen Apigee node1'in harici IP adresidir.
- node1'e SSH ile bağlanın ve anahtar deposu dosyasını Apigee klasörüne taşıyın:
sudo mv keystore.jks /opt/apigee/customer/application/
- SSL yapılandırma dosyasını oluşturun:
sudo vi /tmp/sslConfigFile
KEY-PASS-PHRASE
değerini gösterildiği gibi güncelleyin:HTTPSPORT=9443 DISABLE_HTTP=n KEY_ALGO=JKS KEY_FILE_PATH=/opt/apigee/customer/application/keystore.jks KEY_PASS=KEY_PASS_PHRASE
- Yapılandırma dosyasını kullanarak SSL'yi yapılandırma:
sudo chown apigee:apigee /tmp/sslConfigFile
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f /tmp/sslConfigFile
- Edge kullanıcı arayüzü için DNS çözümlemesini yapılandırın:
echo 'APIGEE_ELB_EXTERNAL_IP ui.apigeetest.com' | sudo tee -a /etc/hosts
Burada APIGEE_ELB_EXTERNAL_IP, önceki bir adımda elde edilen
apigee-elb
hizmetinin harici IP adresidir. - Web tarayıcısında
https://ui.apigeetest.com:9443
adresine erişin ve çalıştığını onaylayın. Daha fazla bilgi için kılavuza bakın. - Anahtar deposu dosyasının sahibini yapılandırın (Edge kullanıcı arayüzüyle aynı sahibi kullanın):
sudo chown apigee:apigee /opt/apigee/customer/application/keystore.jks
- Özellikler dosyasını oluşturun:
sudo vi /opt/apigee/customer/application/management-server.properties
- Değişikliklerin geçerli olması için yönetim sunucusunu yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- HTTPS'nin yerel olarak çalıştığını onaylayın:
curl -u "opdk@apigee.com:Apigee123!" "https://localhost:8443/v1/users" -k
- Tarayıcıda https://apigeetest.com:8443/v1/users adresine istemciden erişin. Kimlik bilgilerinin doğru şekilde yapılandırıldığını onaylamak için yönetici kullanıcı adını ve şifresini girin.
GDC'de air-gapped roller ve izinler verme hakkında daha fazla bilgi edinmek için Erişim verme ve erişimi iptal etme başlıklı makaleyi inceleyin.
Sınırlamalar
GDC'de hava boşluklu Apigee için aşağıdaki sınırlamalar geçerlidir:
Gerekli dosyaları edinme
Yükleme dosyalarını almak için önce bağlı bir düğüm oluşturmanız, ardından dosyaları indirmeniz gerekir.
Bağlı düğüm oluşturma
Bağlı düğüm, yükleme dosyalarını indirmek için kullandığınız GDC dışındaki tek bir sanal makinedir. Bu sanal makine için internet erişimi gerekir ve yalnızca yükleme işlemi için kullanılır.
Bağlı düğüm için aşağıdaki kapasite ve yapılandırma gerekir:
Bağlı düğümü oluşturmak için Sanal makine örneği oluşturma ve başlatma bölümündeki talimatları uygulayın. Sanal makine oluşturulduktan sonra Linux sanal makinelerine bağlanma bölümündeki talimatları uygulayın. sanal makineye bağlanmak için. Desteklenen işletim sistemlerinin listesi için GDC destekli işletim sistemleri başlıklı makaleyi inceleyin.
Yükleme dosyalarını indirme
Yükleme dosyalarını indirmek için:
Depolama paketini ayarlama
Bu adımda, GDC operatörü GDC projesinde Apigee Edge for Private Cloud yedekleme dosyalarını depolamak için bir depolama alanı grubu oluşturur.
Storage paketi oluşturma
GDC projesinde depolama paketi oluşturmak için:
Paket erişimini yapılandırma
Depolama alanı paketine erişimi yapılandırmak için:
Depo düğümünü ayarlama
Bu adımda GDC operatörü, Apigee Edge for Private Cloud yansıtma deposunu barındırmak için bir depo düğümü oluşturur.
Depo düğümü oluşturma
Depo düğümü oluşturmak için:
Depo düğümü erişimini yapılandırma
Depo düğümüne erişimi yapılandırmak için:
Yükleme dosyalarını yükleme
Bu adımda, GDC operatörü aşağıdaki dosyaların en son sürümünü depo düğümüne yükler:
Yükleme dosyalarını yüklemek için:
Yansıtma deposunu yapılandırma
Yansıtma deposunu yapılandırmak için:
Apigee düğümlerini dağıtma
Bu adımda, GDC operatörü Apigee API yönetimi düğümlerini dağıtır.
Apigee düğümleri oluşturma
Apigee API yönetim düğümlerini oluşturmak için:
Apigee düğümü erişimini yapılandırma
Apigee API yönetimi düğümlerine erişimi yapılandırın:
Kontrol düğümünü ayarlama
Bu adımda, GDC operatörü Apigee yüklemelerini yönetmek için bir kontrol düğümü oluşturur.
Kontrol düğümü oluşturma
Kontrol düğümü oluşturmak için:
Denetim düğümü erişimini yapılandırma
Denetim düğümü erişimini yapılandırmak için:
Ansible'ı yapılandırma
Bu adımda, GDC operatörü kontrol düğümünde ortamını kurar.
Ansible ortamını yapılandırmak için:
Apigee bileşenlerini yükleme
Bu adımda, GDC operatörü Apigee bileşenlerini Ansible kullanarak yükler.
Apigee bileşenlerini yüklemek için:
Pod'ları ve hizmetleri dağıtma
Bu adımda, yükleyici, ters proxy, yük dengeleyici ve günlük kaydı bölmelerini ve hizmetlerini dağıtacaksınız.
Kapsülleri ve hizmetleri dağıtmak için:
Yükleyici ve Fluent Bit yönlendirici IP'lerini güncelleme
Bu adımda, yedekleme ve Apigee kurulum komut dosyalarındaki yükleyici ve Fluent Bit yönlendirici IP'lerini güncelleyeceksiniz.
Başlatma komut dosyasının güncellenmesi için Apigee düğümlerinin yeniden başlatılması gerekir. Düğümleri yeniden başlatmak için:
Apigee kuruluşuna ilk katılım
Bu adımda, GDC operatörü node1 üzerinde bir kurulum komut dosyası çalıştırarak Apigee kuruluşunu kullanıma alır.
Apigee kuruluşunu kullanmaya başlamak için:
HTTP bağlantısını test etme
Bu adımda, Management API ve API proxy'si için HTTP bağlantısını test edeceksiniz.
HTTP bağlantısını test etmek için:
Management API'yi test etme
Management API'yi test etmek için uç noktaya bir HTTP isteği gönderin:
curl -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e/ENV_NAME/provisioning/axstatus"
Burada:
API proxy'sini test etme
API proxy'sini test etmek için:
TLS'yi yapılandırma ve HTTPS'yi test etme
Bu adımda, GDC operatörü API proxy'si, Edge kullanıcı arayüzü ve Yönetim API'si için Taşıma Katmanı Güvenliği'ni (TLS) yapılandırır.
API proxy'si için TLS'yi yapılandırma
Edge kullanıcı arayüzü için TLS'yi yapılandırma
Edge kullanıcı arayüzü için TLS'yi yapılandırmak üzere:
Yönetim API'si için TLS'yi yapılandırma
Yönetim API'si için TLS'yi yapılandırmak üzere:
KEY_PASS_PHRASE
değerini, gösterildiği gibi keystore şifresiyle değiştirin:
conf_webserver_ssl.enabled=true # Leave conf_webserver_http.turn.off set to false # because many Edge internal calls use HTTP. conf_webserver_http.turn.off=false conf_webserver_ssl.port=8443 conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks # Enter the obfuscated keystore password below. conf_webserver_keystore.password=KEY_PASS_PHRASE