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 il Service Broker AWS in Kf Kubernetes Cluster (consigliato)
- Installare il service broker AWS in AWS ed esporre l'API tramite un VPC ponte
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
AWS Service Broker viene dispiegato utilizzando il grafico Helm riportato nella guida introduttiva di AWS Service Broker per Kubernetes.
Infrastruttura
Il Service Broker AWS richiede una tabella DynamoDB e un utente IAM per accedere al 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 documentazione del modello Helm Definizione di values.yaml.
Verifica
Dopo il deployment del grafico Helm, una risorsa ClusterServiceBroker
dovrebbe avere
un'istanza di blocco note. 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 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 l'intermediario, 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 cui l'API può essere esposta 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