Il service broker AWS espone i servizi AWS tramite il protocollo Open Service Broker (OSB). Questi documenti si basano sulla documentazione di AWS Service Broker. Questo documento riguarda due possibili installazioni:
- Installa il Service Broker AWS in Kf Kubernetes Cluster (consigliato)
- Installa AWS Service Broker in AWS ed esponi l'API tramite un bridge VPC
Prerequisiti
Oltre a un cluster Kubernetes con Kf e Service Catalog installati (consulta
queste istruzioni), sulla
workstation in cui utilizzerai la CLI kf
devono essere installati i seguenti strumenti:
helm
: segui queste istruzioni per installare l'interfaccia a riga di comandohelm
.
Metodo 1: installazione in GKE
Il deployment di AWS Service Broker viene eseguito utilizzando il grafico Helm dal Guida introduttiva di AWS Service Broker per Kubernetes.
Infrastruttura
AWS Service Broker richiede una tabella DynamoDB e un utente IAM per accedere alla tabella. Il metodo più semplice è eseguire il deployment del CloudFormation fornito modello. Per l'installazione manuale, consulta la documentazione sui prerequisiti.
Helm
Innanzitutto, aggiungi il repository Helm alla tua macchina:
$ helm repo add aws-sb https://awsservicebroker.s3.amazonaws.com/charts
Quindi esegui il deployment del grafico Helm, impostando i valori AWS accesskeyid
e secretkey
corretti:
$ helm install aws-sb/aws-servicebroker \
--name aws-servicebroker \
--namespace aws-sb \
--set aws.secretkey=REPLACEME \
--set aws.accesskeyid=REPLACEME
Se non vuoi che il broker abbia installato il flag a livello di cluster, imposta il flag
--set deployNamespacedServiceBroker=true
che registrerà il broker in
nello spazio dei nomi di cui è stato eseguito il deployment.
Un elenco completo dei parametri di configurazione è disponibile nella definizione values.yaml del modello Helm.
Verifica
Dopo il deployment del grafico Helm, dovrebbe essere stata creata una risorsa ClusterServiceBroker
. Puoi controllare con kubectl
:
$ kubectl get ClusterServiceBroker aws-servicebroker
NAME URL STATUS AGE
aws-servicebroker https://aws-servicebroker-aws-servicebroker.aws-sb.svc.cluster.local Ready 3d
Se STATUS
non è pronto, si è verificato un problema. Ecco alcuni aspetti da verificare durante la risoluzione dei problemi:
- L'infrastruttura DynamoDB è attiva
- L'utente AWS ha accesso alla tabella DynamoDB tramite criterio o gruppo
- I valori del grafico Helm sono stati impostati correttamente
Potrebbero essere necessari diversi minuti prima che il tuo broker venga visualizzato e si registri nel Catalogo dei servizi. Una volta registrato il broker, puoi visualizzare i servizi forniti con il comando kf marketplace
.
Metodo 2: installazione in AWS
Lo svantaggio dell'installazione di AWS Service Broker in un cluster GKE è richiesto l'utilizzo delle credenziali utente AWS anziché un ruolo AWS. Tuttavia, l'unica risorsa Kubernetes richiesta per il funzionamento di AWS Service Broker con Kf è ClusterServiceBroker, supponendo che l'API di AWS Service Broker sia raggiungibile dal cluster GKE.
Esistono due metodi per esporre l'API al cluster GKE:
- L'API è accessibile tramite un bridge VPN tra Google Cloud e AWS
- L'API è accessibile pubblicamente (non consigliata)
In ogni caso, ti consigliamo vivamente di proteggere l'API del service broker con un certificato TLS attendibile e con credenziali di accesso.
Una volta che l'API è accessibile, kubectl apply
a ClusterServiceBroker
e a
Kubernetes Secret
che contiene le credenziali per l'autorizzazione con
Service broker.
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ClusterServiceBroker
metadata:
name: aws-sb
spec:
# For all configuration options, look at the service catalog's
# type definitions:
# https://github.com/kubernetes-sigs/service-catalog/blob/master/pkg/apis/servicecatalog/v1beta1/types.go#L185
url: https://replace.with.url.to.service.broker
insecureSkipTLSVerify: false # use a trusted TLS certificate
authInfo:
bearer: # or basic
secretRef:
namespace: some-namespace
name: some-secret-name