O AWS Service Broker expõe os serviços da AWS pelo protocolo Open Service Broker (OSB). Estes documentos são baseados na documentação do AWS Service Broker. Este documento abrange duas instalações possíveis:
- Instalação do AWS Service Broker no cluster do Kubernetes para Kf (recomendado).
- Instalação do AWS Service Broker na AWS e exposição da API com uma ponte VPC.
Pré-requisitos
Além de ter um cluster do Kubernetes com o Kf e o catálogo de serviços instalados (consulte estas instruções), as ferramentas a seguir precisam ser instaladas na estação de trabalho em que a CLI do kf será usada:
helm: siga estas instruções para instalar a CLI dohelm.
Método 1: instalação no GKE
O AWS Service Broker é implantado pelo gráfico do Helm do guia para iniciantes do AWS Service Broker para Kubernetes.
Infraestrutura
O AWS Service Broker precisa de uma tabela do DynamoDB e de um usuário do IAM para acessá-la. O método mais fácil é implantar o modelo fornecido do CloudFormation. Para instalação manual, consulte as documentações de pré-requisitos.
Helm
Primeiro, adicione o repositório do Helm à máquina:
$ helm repo add aws-sb https://awsservicebroker.s3.amazonaws.com/charts
Em seguida, implante o gráfico do Helm, definindo a accesskeyid e a secretkey corretas da AWS:
$ helm install aws-sb/aws-servicebroker \
--name aws-servicebroker \
--namespace aws-sb \
--set aws.secretkey=REPLACEME \
--set aws.accesskeyid=REPLACEME
Se você não quiser que o agente seja instalado em todo o cluster, defina a flag --set deployNamespacedServiceBroker=true, que vai registrar o agente no namespace implantado.
Confira uma lista completa de parâmetros de configuração na definição de values.yaml do modelo do Helm.
Verificação
Depois que o gráfico do Helm é implantado, um recurso ClusterServiceBroker precisa ter sido criado. Para verificar, use 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 indicou que ele está pronto, aconteceu um problema. Verifique estes pontos durante a solução de problemas:
- A infraestrutura do DynamoDB está ativa.
- O usuário da AWS tem acesso à tabela do DynamoDB por política ou grupo.
- Os valores do gráfico do Helm foram definidos corretamente.
Pode levar vários minutos para que o agente
apareça e faça o registro no catálogo de serviços. Depois que o agente for registrado, use o comando kf marketplace para conferir os serviços fornecidos.
Método 2: instalação na AWS
A desvantagem de instalar o AWS Service Broker em um cluster do GKE é que você precisa usar as credenciais de usuário da AWS em vez de um papel da AWS. No entanto, o único recurso necessário do Kubernetes para que o AWS Service Broker funcione com o Kf é o ClusterServiceBroker, presumindo que a API do AWS Service Broker seja acessível pelo cluster do GKE.
Há dois métodos para expor a API ao cluster do GKE:
- A API pode ser acessada por uma ponte VPN entre o Google Cloud e a AWS
- A API pode ser acessada publicamente (não recomendado).
Em ambos os casos, é altamente recomendável proteger a API do Service Broker com um certificado TLS confiável e credenciais de acesso.
Quando a API estiver acessível, use kubectl apply para criar um ClusterServiceBroker e um Secret do Kubernetes que contenha as credenciais para a autorização do 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