O AWS Service Broker expõe os serviços AWS através do protocolo Open Service Broker (OSB). Estes documentos baseiam-se na documentação do Service Broker da AWS. Este documento abrange duas possíveis instalações:
- Instale o AWS Service Broker no cluster do Kf Kubernetes (recomendado)
- Instale o AWS Service Broker na AWS e exponha a API através de uma ponte de VPC
Pré-requisitos
Além de um cluster do Kubernetes com o Kf e o Service Catalog instalados (consulte estas instruções), as seguintes ferramentas têm de ser instaladas na estação de trabalho onde vai usar a CLI kf
:
helm
: siga estas instruções para instalar a CLIhelm
.
Método 1: instale no GKE
O AWS Service Broker é implementado através do gráfico Helm do guia de introdução do AWS Service Broker para o Kubernetes.
Infraestrutura
O Service Broker da AWS requer uma tabela do DynamoDB e um utilizador do IAM para aceder à tabela. O método mais fácil é implementar o modelo do CloudFormation fornecido. Para a instalação manual, consulte os documentos de pré-requisitos.
Leme
Primeiro, adicione o repositório Helm à sua máquina:
$ helm repo add aws-sb https://awsservicebroker.s3.amazonaws.com/charts
Em seguida, implemente o gráfico Helm, definindo os valores accesskeyid
e secretkey
da AWS corretos:
$ helm install aws-sb/aws-servicebroker \
--name aws-servicebroker \
--namespace aws-sb \
--set aws.secretkey=REPLACEME \
--set aws.accesskeyid=REPLACEME
Se não quiser que o agente instalado ao nível do cluster defina a flag --set deployNamespacedServiceBroker=true
, que regista o agente no espaço de nomes implementado.
Pode encontrar uma lista completa de parâmetros de configuração na definição values.yaml do modelo Helm.
Validação
Após a implementação do gráfico Helm, deve ter sido criada uma ClusterServiceBroker
resource. Pode verificar se tem o ícone com o 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 o STATUS
não estiver pronto, ocorreu um problema. Algumas questões a verificar durante a resolução de problemas:
- A infraestrutura do DynamoDB está operacional
- O utilizador da AWS tem acesso à tabela do DynamoDB através de uma política ou de um grupo
- Os valores do gráfico Helm foram definidos corretamente
Pode demorar vários minutos até que o seu agente seja apresentado e se registe no
catálogo de serviços. Depois de o agente estar registado, pode ver os serviços fornecidos com o comando kf marketplace
.
Método 2: instale no AWS
A desvantagem de instalar o AWS Service Broker num cluster do GKE é a utilização obrigatória de credenciais de utilizador da AWS em vez de uma função da AWS. No entanto, o único recurso do Kubernetes necessário para que o AWS Service Broker funcione com o Kf é o ClusterServiceBroker, partindo do princípio de que a API do AWS Service Broker é acessível a partir do cluster do GKE.
Existem dois métodos através dos quais a API pode ser exposta ao cluster do GKE:
- A API é acessível através de uma ponte VPN entre o Google Cloud e a AWS
- A API é acessível publicamente (não recomendado)
Em qualquer dos casos, recomendamos vivamente que proteja a API do Service Broker com um certificado TLS fidedigno e credenciais de acesso.
Assim que a API estiver acessível, kubectl apply
cria um ClusterServiceBroker
e um
Kubernetes Secret
que contém as credenciais para autorização com o
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