AWS Service Broker

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:

  1. Instalação do AWS Service Broker no cluster do Kubernetes para Kf (recomendado).
  2. 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:

  1. helm: siga estas instruções para instalar a CLI do helm.

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:

  1. A API pode ser acessada por uma ponte VPN entre o Google Cloud e a AWS
  2. 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