O agente de serviços da AWS expõe os serviços do AWS por meio do protocolo Open Service Broker (OSB). Estes documentos são baseados na documentação Agente de Serviços da AWS (em inglês). Este documento abrange duas instalações possíveis:
- Instalar o agente de serviços da AWS no cluster do Kf Kubernetes (recomendado)
- Instale o agente de serviços da AWS e exponha a API por meio de uma ponte VPC
Pré-requisitos
Além de 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 você usará a CLI kf
:
helm
: siga estas instruções (em inglês) para instalar a CLIhelm
.
Método 1: instalar no GKE
O agente de serviços da AWS é implantado por meio do gráfico do Helm do guia de primeiros passos do agente de serviços da AWS para Kubernetes.
Infraestrutura
O agente de serviços da AWS requer uma tabela DynamoDB e um usuário IAM para acessar a tabela. O método mais fácil é implantar o modelo fornecido do CloudFormation. Para instalação manual, consulte os documentos de pré-requisito.
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 sinalização --set deployNamespacedServiceBroker=true
, que registrará o agente no namespace implantado.
Uma lista completa de parâmetros de configuração pode ser encontrada na definição de values.yaml do modelo Helm.
Verificação
Depois que o gráfico do Helm é implantado, um recurso ClusterServiceBroker
precisa ser criado. Você pode verificar isso com 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, houve um problema. Alguns pontos a serem verificados durante a solução de problemas são:
- A infraestrutura do DynamoDB está ativa
- O usuário da AWS tem acesso à tabela 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 se registre com o catálogo de serviços. Depois que o agente for registrado, você poderá ver os serviços fornecidos com o comando kf marketplace
.
Método 2: instalar no AWS
A desvantagem da instalação do agente de serviços da AWS em um cluster do GKE é o uso obrigatório das 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 agente de serviços da AWS funcione com o Kf é o ClusterServiceBroker, supondo que a API do agente de serviços da AWS seja acessível pelo cluster do GKE.
Há dois métodos para a API expor o cluster do GKE:
- A API pode ser acessada por meio de uma ponte VPN entre o Google Cloud e a AWS
- A API é acessível 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
de ClusterServiceBroker
e de um Secret
do Kubernetes que contenha as credenciais para autorizar com o 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