L'agent de service AWS expose les services AWS via le protocole Open Service Broker (OSB). Ces documents sont basés sur la documentation de l'agent de service AWS. Ce document couvre deux installations possibles :
- Installer l'agent de service AWS dans le cluster Kubernetes Kf (recommandé)
- Installer l'agent de service AWS dans AWS et exposer l'API via un pont VPC
Prérequis
En plus d'un cluster Kubernetes sur lequel Kf et Service Catalog sont installés (consultez ces instructions), les outils suivants doivent être installés sur le poste de travail sur lequel vous utiliserez la CLI kf
:
helm
: Suivez ces instructions pour installer la CLIhelm
.
Méthode 1 : Installer dans GKE
Vous pouvez déployer l'agent de service AWS à l'aide du chart Helm du guide de démarrage de l'agent de service AWS pour Kubernetes.
Infrastructure
L'agent de service AWS nécessite une table DynamoDB et un utilisateur IAM pour y accéder. La méthode la plus simple consiste à déployer le modèle CloudFormation fourni. Pour une installation manuelle, consultez la documentation sur les conditions préalables.
Helm
Commencez par ajouter le dépôt Helm à votre ordinateur :
$ helm repo add aws-sb https://awsservicebroker.s3.amazonaws.com/charts
Déployez ensuite le chart Helm en définissant les paramètres AWS accesskeyid
et secretkey
appropriés :
$ helm install aws-sb/aws-servicebroker \
--name aws-servicebroker \
--namespace aws-sb \
--set aws.secretkey=REPLACEME \
--set aws.accesskeyid=REPLACEME
Si vous ne souhaitez pas que l'agent soit installé à l'échelle du cluster, définissez l'option --set deployNamespacedServiceBroker=true
, qui enregistrera l'agent dans l'espace de noms déployé.
La liste complète des paramètres de configuration est disponible dans la définition du fichier values.yaml du modèle Helm.
Validation
Une fois le chart Helm déployé, une ressource ClusterServiceBroker
a dû être créée. Vous pouvez vérifier à l'aide de la commande kubectl
:
$ kubectl get ClusterServiceBroker aws-servicebroker
NAME URL STATUS AGE
aws-servicebroker https://aws-servicebroker-aws-servicebroker.aws-sb.svc.cluster.local Ready 3d
Si l'état (STATUS
) n'est pas prêt, un problème est survenu. Voici quelques éléments à vérifier lors du dépannage :
- L'infrastructure DynamoDB est opérationnelle
- L'utilisateur AWS a accès à la table DynamoDB via une règle ou un groupe
- Les valeurs du chert Helm ont été définies correctement
Plusieurs minutes peuvent s'écouler avant que votre agent ne parvienne à s'enregistrer auprès de Service Catalog. Une fois l'agent enregistré, vous pouvez afficher les services fournis avec la commande kf marketplace
.
Méthode 2 : Installer dans AWS
L'inconvénient de l'installation de l'agent de service AWS dans un cluster GKE est l'utilisation obligatoire des identifiants utilisateur AWS au lieu d'un rôle AWS. Cependant, la seule ressource Kubernetes requise pour que l'agent de service AWS fonctionne avec Kf est ClusterServiceBroker, en supposant que l'API de l'agent de service AWS soit accessible depuis le cluster GKE.
Il existe deux méthodes pour que l'API puisse être exposée au cluster GKE :
- L'API est accessible via un pont VPN entre Google Cloud et AWS.
- L'API est accessible au public (déconseillé)
Dans les deux cas, il est fortement recommandé de sécuriser l'API de l'agent de service avec un certificat TLS de confiance et des identifiants d'accès.
Une fois l'API accessible, kubectl apply
un ClusterServiceBroker
et un Secret
Kubernetes contenant les identifiants pour l'autorisation auprès de l'agent de service.
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