AWS Service Broker espone i servizi AWS tramite il protocollo Open Service Broker (OSB). Queste documentazioni si basano sulla documentazione di AWS Service Broker. Questo documento illustra due possibili installazioni:
- Installa AWS Service Broker nel cluster Kubernetes Kf (opzione consigliata)
- Installa AWS Service Broker in AWS ed esponi l'API tramite un bridge VPC
Prerequisiti
Oltre a un cluster Kubernetes con Kf e catalogo dei servizi 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
AWS Service Broker viene dispiegato utilizzando il grafico Helm riportato nella 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 modello CloudFormation fornito. 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
Poi esegui il deployment del grafico Helm impostando accesskeyid
e secretkey
AWS 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 venga installato a livello di cluster, imposta il flag--set deployNamespacedServiceBroker=true
che registrerà il broker 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 controllare durante la risoluzione dei problemi:
- L'infrastruttura DynamoDB è attiva
- L'utente AWS ha accesso alla tabella DynamoDB tramite criteri 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 è l'uso obbligatorio delle credenziali utente AWS anziché di 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 ponte VPN tra Google Cloud e AWS
- L'API è accessibile pubblicamente (non consigliata)
In entrambi i casi, è vivamente consigliato proteggere l'API di Service Broker con un certificato TLS attendibile e le credenziali di accesso.
Una volta che l'API è accessibile, kubectl apply
un ClusterServiceBroker
e un
Secret
Kubernetes che contengono le credenziali per l'autorizzazione con il
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