O agente de serviços da AWS expõe os serviços da AWS usando o protocolo Open Service Broker (OSB). Estes documentos são baseados na documentação do agente de serviços da AWS. Este documento abrange duas instalações possíveis:
- Instalação do agente de serviços da AWS no cluster do Kubernetes para Kf (recomendado).
- Instalação do agente de serviços da AWS 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 seguintes ferramentas precisam ser instaladas na estação de trabalho em que a CLI kf será usada:
helm: siga estas instruções para instalar a CLIhelm.
Método 1: instalação no GKE
O agente de serviços da AWS é implantado usando o gráfico do Helm do guia para iniciantes do agente de serviços da AWS para Kubernetes.
Infraestrutura
O agente de serviços da AWS precisa de uma tabela do DynamoDB e de um usuário do IAM para acessar essa tabela. O método mais fácil é implantar o modelo fornecido do CloudFormation. Para instalação manual, consulte os documentos 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 o accesskeyid e o secretkey corretos 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 deve ter sido criado. Você pode verificar usando 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. Alguns pontos a serem verificados durante a solução de problemas:
- A infraestrutura do DynamoDB está ativa.
- O usuário da AWS tem acesso à tabela do DynamoDB por meio da política ou do 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, confira os serviços fornecidos usando o comando kf marketplace.
Método 2: instalação na AWS
A desvantagem de instalar o agente de serviços da AWS em um cluster do GKE é que você precisa usar as credenciais de usuário da AWS em vez de um perfil da AWS. No entanto, o único recurso necessário do Kubernetes para que o agente de serviços da AWS funcione com o Kf é o ClusterServiceBroker, presumindo que a API do agente de serviços da AWS seja acessível no cluster do GKE.
Há dois métodos para expor a API ao cluster do GKE:
- A API pode ser acessada usando 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 agente de serviços com um certificado TLS confiável e credenciais de acesso.
Quando a API estiver acessível, kubectl apply um ClusterServiceBroker e um Secret do Kubernetes que contenha as credenciais para a autorização do agente de serviços.
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