Questo documento descrive la procedura dettagliata per installare Apigee hybrid v1.10 utilizzando i grafici Helm.
Versione
I grafici Helm di Apigee hybrid sono destinati all'utilizzo con Apigee hybrid v1.10.x. Consulta la cronologia delle release di Apigee hybrid per l'elenco delle release ibride.
Prerequisiti
- Apigee hybrid 1.10.5
- Helm 3.10 e versioni successive
-
Accedi al repository dei grafici Helm di Apigee hybrid all'indirizzo:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
- Interfaccia a riga di comando gcloud
- Un progetto Google Cloud per l'installazione ibrida di Apigee. Consulta Creazione e gestione dei progetti
- Un cluster Kubernetes per la tua installazione ibrida di Apigee. Consulta:
Ambito
- Questa release supporta solo Apigee hybrid versione 1.10.5.
-
Questa release supporta:
- Nuove installazioni ibride di Apigee.
- Upgrade delle installazioni ibride Apigee esistenti alla versione 1.10.5 e è migrata alla gestione Helm utilizzando la migrazione di Apigee ibrida di Helm lo strumento a riga di comando gcloud.
- Questa release supporta:
Piattaforme e versioni Kubernetes supportate
Piattaforma | Versioni |
---|---|
GKE | 1.24, 1.25, 1.26 |
AKS | 1,24, 1,25, 1,26 |
EKS | 1.24, 1.25, 1.26 |
OpenShift | 4.11, 4.12 |
Limitazioni
-
I grafici Helm non supportano completamente i CRD, pertanto utilizzeremo il comando
kubectl -k
per installarli e aggiornarli. Il nostro obiettivo è seguire le best practice della community e di Google relative a Kubernetes gestione dei dispositivi. Gli implementazioni di CRD tramite Helm non hanno ancora raggiunto un livello di supporto della community o richieste per un modello di questo tipo. Pertanto, la gestione dei CRD Apigee deve essere eseguita utilizzandokubectl
come menzionati in questo documento. -
In
apigeectl
, abbiamo utilizzato file in tuttooverrides.yaml
per gli account di servizio e i certificati. Tuttavia, Helm non supporta i riferimenti ai file esterni alla directory del grafico. Scegli una delle seguenti opzioni per i file dell'account di servizio e dei certificati:- Inserisci copie dei file pertinenti in ogni directory del grafico
-
Creare link simbolici all'interno di ogni directory del grafico per ogni file o per una
cartella. Helm seguirà i link simbolici fuori dalla directory del grafico, ma
restituirà un avviso simile al seguente:
apigee-operator/gsa -> ../gsa
-
Utilizza i secret di Kubernetes. Ad esempio, per gli account di servizio:
kubectl create secret generic SECRET_NAME \ --from-file="client_secret.json=CLOUD_IAM_FILE_NAME.json" \ -n apigee
-
Sostituisci quanto segue:
- SECRET_NAME con il nome del secret di Kubernetes che hai creato.
- CLOUD_IAM_FILE_NAME.json con il nome del scaricato il file JSON.
Piattaforma e versioni Kubernetes supportate
Per un elenco delle piattaforme supportate, consulta la colonna v1.10 nella tabella delle piattaforme supportate di Apigee Hybrid.
Autorizzazioni obbligatorie
Questa tabella elenca le risorse e le autorizzazioni necessarie per Kubernetes e Apigee.
Per filtrare questa tabella, esegui una o più delle seguenti operazioni: seleziona una categoria, digita un termine di ricerca o fai clic sull'intestazione di una colonna per ordinare.
Categoria | Risorsa | Tipo di risorsa | Autorizzazioni RBAC per Kubernetes |
---|---|---|---|
Datastore | apigeedatastores.apigee.cloud.google.com |
Apigee | create delete patch update |
Datastore | certificates.cert-manager.io |
Kubernetes | create delete patch update |
Datastore | cronjobs.batch |
Kubernetes | create delete patch update |
Datastore | jobs.batch |
Kubernetes | create delete patch update |
Datastore | secrets |
Kubernetes | create delete patch update |
Env | apigeeenvironments.apigee.cloud.google.com |
Apigee | create delete patch update |
Env | secrets |
Kubernetes | create delete patch update |
Env | serviceaccounts |
Kubernetes | create delete patch update |
Gestore Ingress | certificates.cert-manager.io |
Kubernetes | create delete patch update |
Gestore Ingress | configmaps |
Kubernetes | create delete patch update |
Gestore Ingress | deployments.apps |
Kubernetes | create get delete patch update |
Gestore Ingress | horizontalpodautoscalers.autoscaling |
Kubernetes | create delete patch update |
Gestore Ingress | issuers.cert-manager.io |
Kubernetes | create delete patch update |
Gestore Ingress | serviceaccounts |
Kubernetes | create delete patch update |
Gestore Ingress | services |
Kubernetes | create delete patch update |
Operatore | apigeedatastores.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeedatastores.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeedatastores.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | apigeedeployments.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeedeployments.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeedeployments.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | apigeeenvironments.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeeenvironments.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeeenvironments.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | apigeeissues.apigee.cloud.google.com |
Apigee | create delete get list watch |
Operatore | apigeeorganizations.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeeorganizations.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeeorganizations.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | apigeeredis.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeeredis.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeeredis.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | apigeerouteconfigs.apigee.cloud.google.com |
Apigee | get list |
Operatore | apigeeroutes.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeeroutes.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeeroutes.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | apigeetelemetries.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operatore | apigeetelemetries.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | apigeetelemetries.apigee.cloud.google.com/status |
Apigee | get list patch update |
Operatore | cassandradatareplications.apigee.cloud.google.com |
Apigee | get list patch update watch |
Operatore | cassandradatareplications.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operatore | cassandradatareplications.apigee.cloud.google.com/status |
Apigee | get patch update |
Operatore | *.networking.x.k8s.io |
Kubernetes | get list watch |
Operatore | apiservices.apiregistration.k8s.io |
Kubernetes | create delete get list patch update watch |
Operatore | certificates.cert-manager.io |
Kubernetes | create delete get list patch update watch |
Operatore | certificates.cert-manager.io/finalizers |
Kubernetes | create delete get list patch update watch |
Operatore | certificatesigningrequests.certificates.k8s.io |
Kubernetes | create delete get update watch |
Operatore | certificatesigningrequests.certificates.k8s.io/approval |
Kubernetes | create delete get update watch |
Operatore | certificatesigningrequests.certificates.k8s.io/status |
Kubernetes | create delete get update watch |
Operatore | clusterissuers.cert-manager.io |
Kubernetes | create get watch |
Operatore | clusterrolebindings.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operatore | clusterroles.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operatore | configmaps |
Kubernetes | create delete get list patch update watch |
Operatore | configmaps/status |
Kubernetes | get patch update |
Operatore | cronjobs.batch |
Kubernetes | create delete get list patch update watch |
Operatore | customresourcedefinitions.apiextensions.k8s.io |
Kubernetes | get list watch |
Operatore | daemonsets.apps |
Kubernetes | create delete get list patch update watch |
Operatore | deployments.apps |
Kubernetes | get list watch |
Operatore | deployments.extensions |
Kubernetes | get list watch |
Operatore | destinationrules.networking.istio.io |
Kubernetes | create delete get list patch update watch |
Operatore | endpoints |
Kubernetes | get list watch |
Operatore | endpointslices.discovery.k8s.io |
Kubernetes | get list watch |
Operatore | events |
Kubernetes | create delete get list patch update watch |
Operatore | gateways.networking.istio.io |
Kubernetes | create delete get list patch update watch |
Operatore | horizontalpodautoscalers.autoscaling |
Kubernetes | create delete get list patch update watch |
Operatore | ingressclasses.networking.k8s.io |
Kubernetes | get list watch |
Operatore | ingresses.networking.k8s.io/status |
Kubernetes | all verbs |
Operatore | issuers.cert-manager.io |
Kubernetes | create delete get list patch update watch |
Operatore | jobs.batch |
Kubernetes | create delete get list patch update watch |
Operatore | leases.coordination.k8s.io |
Kubernetes | create get list update |
Operatore | namespaces |
Kubernetes | create get list watch |
Operatore | nodes |
Kubernetes | get list watch |
Operatore | peerauthentications.security.istio.io |
Kubernetes | create delete get list patch update watch |
Operatore | persistentvolumeclaims |
Kubernetes | create delete get list patch update watch |
Operatore | persistentvolumes |
Kubernetes | get list watch |
Operatore | poddisruptionbudgets.policy |
Kubernetes | create delete get list patch update watch |
Operatore | pods |
Kubernetes | create delete get list patch update watch |
Operatore | pods/exec |
Kubernetes | create |
Operatore | replicasets.apps |
Kubernetes | create delete get list patch update watch |
Operatore | replicasets.extensions |
Kubernetes | get list watch |
Operatore | resourcequotas |
Kubernetes | create delete get list patch update watch |
Operatore | rolebindings.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operatore | roles.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operatore | secrets |
Kubernetes | batch create delete get list patch update watch |
Operatore | securitycontextconstraints.security.openshift.io |
Kubernetes | create get list |
Operatore | serviceaccounts |
Kubernetes | create delete get list patch update watch |
Operatore | services |
Kubernetes | batch create delete get list patch update watch |
Operatore | signers.certificates.k8s.io |
Kubernetes | approve |
Operatore | statefulsets.apps |
Kubernetes | create delete get list patch update watch |
Operatore | subjectaccessreviews.authorization.k8s.io |
Kubernetes | create get list |
Operatore | tokenreviews.authentication.k8s.io |
Kubernetes | create |
Operatore | virtualservices.networking.istio.io |
Kubernetes | create delete get list patch update watch |
Organizzazione | apigeeorganizations.apigee.cloud.google.com |
Apigee | create delete patch update |
Organizzazione | secrets |
Kubernetes | create delete patch update |
Organizzazione | serviceaccounts |
Kubernetes | create delete patch update |
Redis | apigeeredis.apigee.cloud.google.com |
Apigee | create delete patch update |
Redis | secrets |
Kubernetes | create delete patch update |
Telemetria | apigeetelemetry.apigee.cloud.google.com |
Apigee | create delete patch update |
Telemetria | secrets |
Kubernetes | create delete patch update |
Telemetria | serviceaccounts |
Kubernetes | create delete patch update |
Host virtuale | apigeerouteconfigs.apigee.cloud.google.com |
Apigee | create delete patch update |
Host virtuale | secrets |
Kubernetes | create delete patch update |
Vedi anche:
Prepararsi all'installazione
I grafici ibridi Apigee sono ospitati in Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Esegui il pull dei grafici Helm di Apigee
Utilizzando il comando pull
, copia tutti i grafici Helm hybrid di Apigee
nel tuo spazio di archiviazione locale con il seguente comando:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CHART_VERSION=1.10.5
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
Installa Apigee hybrid
Panoramica della sequenza di installazione
L'installazione dei componenti viene eseguita da sinistra a destra in sequenza, come mostrato nella figura seguente. Componenti che impilati verticalmente nella figura possono essere installati insieme e in qualsiasi ordine. Una volta installato un componente, puoi aggiornarlo individualmente e in qualsiasi momento; ad esempio replica, memoria, CPU e così via.
Preparati all'installazione di Apigee hybrid con i grafici Helm
-
Crea lo spazio dei nomi che verrà utilizzato per le risorse
apigee
. Deve corrispondere al campo dello spazio dei nomi inoverrides.yaml
. Se non è presente inoverrides.yaml
, il valore predefinito èapigee
.Controlla se lo spazio dei nomi esiste già:
kubectl get namespace apigee
Se lo spazio dei nomi esiste, l'output include:
NAME STATUS AGE apigee Active 1d
-
Se lo spazio dei nomi non esiste già, crealo:
kubectl create namespace apigee
-
Crea lo spazio dei nomi
apigee-system
utilizzato dalle risorse dell'operatore Apigee.Controlla se lo spazio dei nomi esiste già:
kubectl get namespace apigee-system
-
Se lo spazio dei nomi non esiste già, crealo:
kubectl create namespace apigee-system
-
Crea gli account di servizio e assegna i ruoli IAM appropriati a che li rappresentano. Apigee Hybrid utilizza i seguenti account di servizio:
Service account Ruoli IAM apigee-cassandra
Storage Object Admin apigee-logger
Logs Writer apigee-mart
Apigee Connect Agent apigee-metrics
Monitoring Metric Writer apigee-runtime
Nessun ruolo richiesto apigee-synchronizer
Gestore sincronizzatore Apigee apigee-udca
Apigee Analytics Agent apigee-watcher
Apigee Runtime Agent Apigee fornisce uno strumento,
create-service-account
, nella directoryapigee-operator/etc/tools
:APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Questo strumento crea gli account di servizio, assegna i ruoli IAM a ciascun account e scarica i file dei certificati in formato JSON per ciascun account.
- Crea la directory in cui vuoi scaricare l'account di servizio file cert. Lo specifichi nel seguente comando nella luogo di SERVICE_ACCOUNTS_PATH.
-
Puoi creare tutti gli account di servizio con un unico comando con
le seguenti opzioni:
APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --env prod --dir SERVICE_ACCOUNTS_PATH
- Elenca i nomi degli account di servizio per il file degli override:
ls service-accounts
my_project-apigee-cassandra.json my_project-apigee-runtime.json my_project-apigee-logger.json my_project-apigee-synchronizer.json my_project-apigee-mart.json my_project-apigee-udca.json my_project-apigee-metrics.json my_project-apigee-watcher.json
Per ulteriori informazioni consulti:
- Prima dell'installazione, controlla il file
overrides.yaml
per verificare le impostazioni:instanceID: UNIQUE_ID_TO_IDENTIFY_THIS_CLUSTER namespace: apigee # required for Helm charts installation # By default, logger and metrics are enabled and requires below details # Google Cloud project and cluster gcp: projectID: PROJECT_ID region: REGION k8sCluster: name: CLUSTER_NAME region: REGION org: ORG_NAME envs: - name: "ENV_NAME" serviceAccountPaths: runtime: "PATH_TO_RUNTIME_SVC_ACCOUNT" synchronizer: "PATH_TO_SYNCHRONIZER_SVC_ACCOUNT" udca: "PATH_TO_UDCA_SVC_ACCOUNT" ingressGateways: - name: GATEWAY_NAME # maximum 17 characters, eg: "ingress-1". See Known issue 243167389. replicaCountMin: 1 replicaCountMax: 2 svcType: LoadBalancer virtualhosts: - name: ENV_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: GATEWAY_NAME sslSecret: SECRET_NAME mart: serviceAccountPath: "PATH_TO_MART_SVC_ACCOUNT" logger: enabled: TRUE_FALSE # lowercase without quotes, eg: true serviceAccountPath: "PATH_TO_LOGGER_SVC_ACCOUNT" metrics: enabled: TRUE_FALSE # lowercase without quotes, eg: true serviceAccountPath: "PATH_TO_METRICS_SVC_ACCOUNT" udca: serviceAccountPath: "PATH_TO_UDCA_SVC_ACCOUNT" connectAgent: serviceAccountPath: "PATH_TO_MART_SVC_ACCOUNT" watcher: serviceAccountPath: "PATH_TO_WATCHER_SVC_ACCOUNT"
Si tratta della stessa configurazione delle sostituzioni che utilizzerai per questa installazione di Helm. Per ulteriori impostazioni, consulta la sezione Riferimento alle proprietà di configurazione.
Per altri esempi di file di override, consulta il passaggio 6: configurare il runtime ibrido.
- Abilita l'accesso al sincronizzatore. Questo è un prerequisito per l'installazione di Apigee hybrid.
-
Utilizza i comandi seguenti per verificare se l'accesso per la sincronizzazione è già abilitato:
export TOKEN=$(gcloud auth print-access-token)
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME:getSyncAuthorization" \ -d ''
L'output dovrebbe essere simile al seguente:
{ "identities":[ "serviceAccount:SYNCHRONIZER_SERVICE_ACCOUNT_ID" ], "etag":"BwWJgyS8I4w=" }
-
Se l'output non include l'ID account di servizio, attiva l'accesso al sincronizzatore. Per eseguire questa operazione, il tuo account deve disporre del ruolo IAM Amministratore organizzazione Apigee (
roles/apigee.admin
).curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:SYNCHRONIZER_SERVICE_ACCOUNT_ID"'"]}'
Per informazioni più dettagliate, consulta il Passaggio 7: attiva l'accesso al sincronizzatore nella documentazione di installazione di Apigee hybrid.
-
- Installa Cert Manager con il seguente comando:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
-
Installa i CRD Apigee:
-
Utilizza la funzionalità di prova di
kubectl
eseguendo il seguente comando:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
-
Dopo la convalida con il comando dry-run, esegui questo comando:
kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
- Convalida l'installazione con il comando
kubectl get crds
:kubectl get crds | grep apigee
Dovresti vedere un output simile al seguente:
apigeedatastores.apigee.cloud.google.com 2023-10-09T14:48:30Z apigeedeployments.apigee.cloud.google.com 2023-10-09T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2023-10-09T14:48:31Z apigeeissues.apigee.cloud.google.com 2023-10-09T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2023-10-09T14:48:32Z apigeeredis.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeeroutes.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2023-10-09T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2023-10-09T14:48:35Z
-
-
Controlla le etichette esistenti sui nodi del cluster. Per impostazione predefinita, Apigee pianifica i pod di dati sui nodi con l'etichetta
cloud.google.com/gke-nodepool=apigee-data
e pod di runtime sono pianificati su nodi con l'etichettacloud.google.com/gke-nodepool=apigee-runtime
. Puoi personalizza le etichette del pool di nodi nel fileoverrides.yaml
.Per ulteriori informazioni, consulta Configurare i pool di nodi dedicati.
Installa i grafici Helm di Apigee hybrid
Installa l'operatore/il controller Apigee:
helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f overrides.yaml
Verifica l'installazione di Apigee Operator:
helm ls -n apigee-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee-system 3 2023-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.10.5 1.10.5
Verifica che sia attivo e funzionante controllandone la disponibilità:
kubectl -n apigee-system get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
-
Installa il data store Apigee:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifica che
apigeedatastore
sia attivo controllandone lo stato:kubectl -n apigee get apigeedatastore default
NAME STATE AGE default running 2d
-
Installa la telemetria di Apigee:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifica che sia attivo e funzionante controllandone lo stato:
kubectl -n apigee get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
-
Installa Apigee Redis:
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifica che sia attivo e funzionante controllandone lo stato:
kubectl -n apigee get apigeeredis default
NAME STATE AGE default running 2d
-
Installa il gestore in entrata Apigee:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifica che sia attivo e funzionante controllandone la disponibilità:
kubectl -n apigee get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
-
Installa l'organizzazione Apigee:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifica che sia attivo e funzionante controllando lo stato dell'organizzazione corrispondente:
kubectl -n apigee get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
-
Installa l'ambiente.
Devi installare un ambiente alla volta. Specifica l'ambiente con
--set env=
ENV_NAME:helm upgrade apigee-env-ENV_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f overrides.yaml
Verifica che sia attivo e funzionante controllando lo stato del rispettivo ambiente:
kubectl -n apigee get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- Crea i certificati TLS. Devi fornire certificati TLS per il gateway in entrata del runtime nella tua configurazione ibrida Apigee.
-
Crea i certificati. In un ambiente di produzione, dovrai utilizzare certificati firmati. Puoi utilizzare una coppia di certificato e chiavi o un secret Kubernetes.
Per la dimostrazione e il test dell'installazione, il gateway di runtime può accettare credenziali autofirmate. Nell'esempio seguente, openssl viene utilizzato per generare le credenziali autofirmate:
openssl req -nodes -new -x509 \ -keyout PATH_TO_CERTS_DIRECTORY/keystore_ENV_GROUP_NAME.key \ -out PATH_TO_CERTS_DIRECTORY/keystore_ENV_GROUP_NAME.pem \ -subj '/CN='YOUR_DOMAIN'' -days 3650
Per ulteriori informazioni, consulta Passaggio 5: crea i certificati TLS.
-
Crea il secret di Kubernetes per fare riferimento ai certificati:
kubectl create secret generic NAME \ --from-file="cert=PATH_TO_CRT_FILE" \ --from-file="key=PATH_TO_KEY_FILE" \ -n apigee
-
-
Installa l'host virtuale.
Devi installare un gruppo di ambienti (virtualhost) alla volta. Specifica il gruppo di ambienti con
--set envgroup=
ENV_GROUP_NAME:# repeat the following command for each env group mentioned in the overrides.yaml file helm upgrade apigee-virtualhost-ENV_GROUP_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f overrides.yaml
Viene creato ApigeeRouteConfig (ARC), che internamente crea ApigeeRoute (AR) quando lo watcher di Apigee estrae i dettagli relativi al gruppo di ambienti dal piano di controllo. Pertanto, verifica che i valori corrispondenti Lo stato dell'AR è in esecuzione:
kubectl -n apigee get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n apigee get ar
NAME STATE AGE apigee-org1-dev-egroup-xxxxxx running 2d
Casi d'uso aggiuntivi per i grafici Helm con Apigee hybrid
Backup e ripristino di Cassandra
- Per attivare il backup:
-
Aggiorna i dettagli del backup Cassandra nel file
overrides.yaml
:cassandra: backup: enabled: true serviceAccountPath: PATH_TO_GSA_FILE dbStorageBucket: BUCKET_LINK schedule: "45 23 * * 6"
-
Esegui l'upgrade di Helm sul grafico
apigee-datastore
:helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
-
- Analogamente, per abilitare il ripristino:
-
Aggiorna i dettagli del ripristino di Cassandra nel file
overrides.yaml
:cassandra: restore: enabled: true snapshotTimestamp: TIMESTAMP serviceAccountPath: PATH_TO_GSA_FILE cloudProvider: "CSI"
-
Esegui l'upgrade di Helm sul grafico
apigee-datastore
:helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
-
Per ulteriori dettagli sul backup e sul ripristino di Cassandra, consulta la panoramica del backup di Cassandra.
Espansione multiregionale
La configurazione in più regioni con i grafici Helm richiede gli stessi prerequisiti del
attuali procedure apigeectl
. Per maggiori dettagli, vedi
Prerequisiti per i deployment multiregionali.
La procedura per configurare l'ibrido per più regioni è la stessa della procedura esistente fino alla procedura di configurazione dell'host seed multi-regione e della configurazione del contesto e del cluster Kubernetes.
Configura la prima regione
Segui questi passaggi per configurare la prima regione e prepararti alla configurazione della seconda:
- Segui i passaggi in Configura Apigee hybrid per più regioni per configurare l'host di origine multiregionale sulla tua piattaforma.
-
Per la prima regione creata, recupera i pod nello spazio dei nomi apigee:
kubectl get pods -o wide -n apigee
- Identifica l'indirizzo host del seme multiregione per Cassandra in questa regione, ad esempio
10.0.0.11
. -
Prepara il file
overrides.yaml
per la seconda regione e aggiungi l'indirizzo IP dell'host seed come segue:cassandra: multiRegionSeedHost: "SEED_HOST_IP_ADDRESS" datacenter: "DATACENTER_NAME" rack: "RACK_NAME" clusterName: CLUSTER_NAME hostNetwork: false
Sostituisci quanto segue:
- SEED_HOST_IP_ADDRESS con l'indirizzo IP dell'host iniziale, ad esempio
10.0.0.11
. - DATACENTER_NAME con il nome del data center, ad esempio
dc-2
. - RACK_NAME con il nome del rack, ad esempio
ra-1
. - CLUSTER_NAME con il nome del tuo cluster Apigee. Per impostazione predefinita,
è
apigeecluster
. Se utilizzi un nome di cluster diverso, devi specificare un per cassandra.clusterName. Questo valore deve essere lo stesso in tutte le regioni.
- SEED_HOST_IP_ADDRESS con l'indirizzo IP dell'host iniziale, ad esempio
Configura la seconda regione
Per configurare la nuova regione:
-
Installa
cert-manager
nella regione 2:kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
- Copia il certificato dal cluster esistente al nuovo cluster.
La nuova radice dell'autorità di certificazione viene utilizzata da Cassandra e da altri componenti ibridi per mTLS.
Pertanto, è essenziale disporre di certificati coerenti in tutto il cluster.
-
Imposta il contesto sullo spazio dei nomi originale:
kubectl config use-context ORIGINAL_CLUSTER_NAME
-
Esporta la configurazione attuale dello spazio dei nomi in un file:
kubectl get namespace apigee -o yaml > apigee-namespace.yaml
-
Esporta il secret
apigee-ca
in un file:kubectl -n cert-manager get secret apigee-ca -o yaml > apigee-ca.yaml
-
Imposta il contesto sul nome del cluster della nuova regione:
kubectl config use-context NEW_CLUSTER_NAME
-
Importa la configurazione dello spazio dei nomi nel nuovo cluster. Assicurati di aggiornare lo spazio dei nomi nel file se utilizzi uno spazio dei nomi diverso nella nuova regione:
kubectl apply -f apigee-namespace.yaml
-
Importa il secret nel nuovo cluster:
kubectl -n cert-manager apply -f apigee-ca.yaml
-
-
Ora utilizza i grafici Helm per installare Apigee hybrid nella nuova regione con i seguenti comandi di grafico Helm (come per la regione 1):
helm upgrade operator apigee-operator \ --install \ --namespace apigee-system \ --atomic -f overrides-DATACENTER_NAME.yaml
helm upgrade datastore apigee-datastore \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade telemetry apigee-telemetry \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade redis apigee-redis \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade ingress-manager apigee-ingress-manager \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade ORG_NAME apigee-org \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
# repeat the below command for each env mentioned on the overrideshelm upgrade apigee-env-ENV_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f overrides-DATACENTER_NAME.yaml
# repeat the below command for each env group mentioned on the overrideshelm upgrade apigee-virtualhost-ENV_GROUP_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f overrides-DATACENTER_NAME.yaml
- Una volta installati tutti i componenti, configura Cassandra su tutti i pod nei nuovi data center. Per istruzioni, consulta Configurare Apigee hybrid per più regioni, seleziona la tua piattaforma, scorri fino a Configurare la nuova regione e poi individua il passaggio 5.
- Una volta completata e verificata la replica dei dati, aggiorna gli host di seed:
-
Vuoi rimuovere
multiRegionSeedHost: 10.0.0.11
daoverrides-DATACENTER_NAME.yaml
?La voce
multiRegionSeedHost
non è più necessaria dopo l'impostazione della replica dei dati e gli IP dei pod dovrebbero cambiare nel tempo. -
Riapplica la modifica per aggiornare la RP del datastore apigee:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
-
Vuoi rimuovere
Hosting di immagini in privato
Anziché affidarti al repository pubblico di Google Cloud, puoi facoltativamente vuoi ospitare le immagini privatamente. Anziché sostituire ogni componente, puoi aggiungere dettagli dell'hub alle sostituzioni:
hub: PRIVATE_REPO
Ad esempio, se viene fornito il seguente hub, il percorso dell'immagine verrà risolto automaticamente:
hub: private-docker-host.com
come:
## an example of internal component vs 3rd party containers: - name: apigee-udca image: private-docker-host.com/apigee-udca:1.10.5 imagePullPolicy: IfNotPresent containers: - name: apigee-ingressgateway image: private-docker-host.com/apigee-asm-ingress:1.17.2-asm.8-distroless imagePullPolicy: IfNotPresent
Per visualizzare un elenco delle immagini Apigee ospitate nel repository Google Cloud sulla riga di comando:
./apigee-operator/etc/tools/apigee-pull-push.sh --list
Tolleranze
Per utilizzare
la funzionalità Incompatibilità e tolleranze di Kubernetes, devi definire
tolerations
proprietà di override per ogni componente ibrido Apigee.
I seguenti componenti supportano la definizione delle tolleranze:
ao
apigeeIngressGateway
cassandra
cassandraSchemaSetup
cassandraSchemaValidation
cassandraUserSetup
connectAgent
istiod
logger
mart
metrics
mintTaskScheduler
redis
runtime
synchronizer
udca
Watcher
Per ulteriori informazioni su questi componenti, consulta la sezione Riferimento alle proprietà di configurazione.
Ad esempio, per applicare le tolleranze al deployment dell'operatore Apigee:
ao: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" tolerationSeconds: 3600
Per applicare le tolleranze a Cassandra StatefulSet:
cassandra: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" tolerationSeconds: 3600
Disinstallare Apigee hybrid con Helm
Per disinstallare un aggiornamento o una release specifici, puoi utilizzare il comando helm [uninstall/delete] RELEASE-NAME -n NAMESPACE
.
Segui questi passaggi per disinstallare completamente Apigee Hybrid dal cluster:
- Elimina i virtualhost. Esegui questo comando per ogni virtualhost:
helm -n apigee delete VIRTUALHOST_RELEASE-NAME
- Elimina gli ambienti. Esegui questo comando per ogni env:
helm -n apigee delete ENV_RELEASE-NAME
- Elimina l'organizzazione Apigee:
helm -n apigee delete ORG_RELEASE-NAME
- elimina telemetria:
helm -n apigee delete TELEMETRY_RELEASE-NAME
- Elimina Redis:
helm -n apigee delete REDIS_RELEASE-NAME
- Elimina il gestore di ingressi:
helm -n apigee delete INGRESS_MANAGER_RELEASE-NAME
- Elimina il datastore:
helm -n apigee delete DATASTORE_RELEASE-NAME
- Operatore eliminato.
- Assicurati che tutte le RP vengano eliminate prima di:
kubectl -n apigee get apigeeds, apigeetelemetry, apigeeorg, apigreeenv, arc, apigeeredis
- Elimina l'operatore Apigee:
helm -n apigee-system delete OPERATOR_RELEASE-NAME
- Assicurati che tutte le RP vengano eliminate prima di:
- Elimina i CRD ibridi di Apigee:
kubectl delete -k apigee-operator/etc/crds/default/