Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Personnalisation des images Docker pour Flink et FluentD
Procédez comme suit pour personnaliser les images Docker pour Amazon EMR sur EKS avec des images Apache Flink ou FluentD. Il s'agit notamment de conseils techniques pour obtenir une image de base, la personnaliser, la publier et soumettre une charge de travail.
Rubriques
Prérequis
Avant de personnaliser votre image Docker, assurez-vous de remplir les conditions préalables suivantes :
-
Vous avez terminé les étapes de configuration de l'opérateur Flink Kubernetes pour Amazon EMR sur EKS.
-
Docker installé dans votre environnement. Pour plus d'informations, consultez Obtenir Docker
.
Étape 1 : récupérer une image de base depuis Amazon Elastic Container Registry
L'image de base contient le moteur d'exécution Amazon EMR et les connecteurs dont vous avez besoin pour accéder à d'autres. Services AWS Si vous utilisez Amazon EMR sur EKS avec la version 6.14.0 ou supérieure de Flink, vous pouvez obtenir les images de base depuis la galerie publique Amazon ECR. Parcourez la galerie pour trouver le lien de l'image et extrayez l'image dans votre espace de travail local. Par exemple, pour la version 6.14.0 d'Amazon EMR, la docker pull
commande suivante renvoie la dernière image de base standard. emr-6.14.0:latest
Remplacez-le par la version finale que vous souhaitez.
docker pull public.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink:latest
Voici les liens vers l'image de la galerie Flink et l'image de la galerie Fluentd :
Étape 2 : Personnaliser une image de base
Les étapes suivantes décrivent comment personnaliser l'image de base que vous avez extraite d'Amazon ECR.
-
Créez un nouveau espace de travail
Dockerfile
sur votre espace de travail local. -
Modifiez le contenu
Dockerfile
et ajoutez-y le contenu suivant. CelaDockerfile
utilise l'image du conteneur que vous avez extraitepublic.ecr.aws/emr-on-eks/flink/emr-7.7.0-flink:latest
.FROM public.ecr.aws/emr-on-eks/flink/emr-7.7.0-flink:latest USER root ### Add customization commands here #### USER hadoop:hadoop
Utilisez la configuration suivante si vous utilisez
Fluentd
.FROM public.ecr.aws/emr-on-eks/fluentd/emr-7.7.0:latest USER root ### Add customization commands here #### USER hadoop:hadoop
-
Ajoutez des commandes dans le
Dockerfile
pour personnaliser l'image de base. La commande suivante montre comment installer des bibliothèques Python.FROM public.ecr.aws/emr-on-eks/flink/emr-7.7.0-flink:latest USER root RUN pip3 install --upgrade boto3 pandas numpy // For python 3 USER hadoop:hadoop
-
Dans le répertoire où vous l'avez créée
DockerFile
, exécutez la commande suivante pour créer l'image Docker. Le champ que vous fournissez après le-t
drapeau est le nom personnalisé de l'image.docker build -t <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
>
Étape 3 : Publiez votre image personnalisée
Vous pouvez désormais publier la nouvelle image Docker dans votre registre Amazon ECR.
-
Exécutez la commande suivante pour créer un référentiel Amazon ECR afin de stocker votre image Docker. Donnez un nom à votre référentiel, par exemple
emr_custom_repo.
Pour plus d'informations, consultez Créer un référentiel dans le guide de l'utilisateur d'Amazon Elastic Container Registry.aws ecr create-repository \ --repository-name emr_custom_repo \ --image-scanning-configuration scanOnPush=true \ --region <AWS_REGION>
-
Exécutez la commande suivante pour vous authentifier dans votre registre par défaut. Pour plus d'informations, consultez Authentifier auprès de votre registre par défaut dans le guide de l'utilisateur d'Amazon Elastic Container Registry.
aws ecr get-login-password --region <
AWS_REGION
> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com -
Transmettez l'image. Pour plus d'informations, consultez la section Envoyer une image vers Amazon ECR dans le guide de l'utilisateur d'Amazon Elastic Container Registry.
docker push <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
>
Étape 4 : Soumettre une charge de travail Flink dans Amazon EMR à l'aide d'une image personnalisée
Apportez les modifications suivantes à vos FlinkDeployment
spécifications pour utiliser une image personnalisée. Pour ce faire, entrez votre propre image dans la spec.image
ligne de votre spécification de déploiement.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: flinkVersion: v1_18 image: <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
> imagePullPolicy: Always flinkConfiguration: taskmanager.numberOfTaskSlots: "1"
Pour utiliser une image personnalisée pour votre tâche Fluentd, entrez votre propre image dans la monitoringConfiguration.image
ligne de votre spécification de déploiement.
monitoringConfiguration: image: <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
> cloudWatchMonitoringConfiguration: logGroupName: flink-log-group logStreamNamePrefix: custom-fluentd