Introdução ao Kubernetes nativo do Flink para Amazon em EMR EKS - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Introdução ao Kubernetes nativo do Flink para Amazon em EMR EKS

O Amazon EMR 6.13.0 e versões superiores oferecem suporte ao Flink Native Kubernetes para executar aplicativos do Flink em um cluster da Amazon. EKS Para executar uma aplicação do Flink, siga estas etapas:

  1. Antes de executar uma aplicação do Flink com o comando do Kubernetes nativo para Flink, conclua as etapas em Configurando o Flink Native Kubernetes para a Amazon em EMR EKS.

  2. Baixe e instale o Flink.

  3. Defina os valores para as variáveis ​​de ambiente a seguir.

    #Export the FLINK_HOME environment variable to your local installation of Flink export FLINK_HOME=/usr/local/bin/flink #Will vary depending on your installation export NAMESPACE=flink export CLUSTER_ID=flink-application-cluster export IMAGE=<123456789012.dkr.ecr.sample-Região da AWS-.amazonaws.com/flink/emr-6.13.0-flink:latest> export FLINK_SERVICE_ACCOUNT=emr-containers-sa-flink export FLINK_CLUSTER_ROLE_BINDING=emr-containers-crb-flink
  4. Crie uma conta de serviço para gerenciar os recursos do Kubernetes.

    kubectl create serviceaccount $FLINK_SERVICE_ACCOUNT -n $NAMESPACE kubectl create clusterrolebinding $FLINK_CLUSTER_ROLE_BINDING --clusterrole=edit --serviceaccount=$NAMESPACE:$FLINK_SERVICE_ACCOUNT
  5. Execute o comando run-application CLI.

    $FLINK_HOME/bin/flink run-application \ --target kubernetes-application \ -Dkubernetes.namespace=$NAMESPACE \ -Dkubernetes.cluster-id=$CLUSTER_ID \ -Dkubernetes.container.image.ref=$IMAGE \ -Dkubernetes.service-account=$FLINK_SERVICE_ACCOUNT \ local:///opt/flink/examples/streaming/Iteration.jar 2022-12-29 21:13:06,947 INFO org.apache.flink.kubernetes.utils.KubernetesUtils [] - Kubernetes deployment requires a fixed port. Configuration blob.server.port will be set to 6124 2022-12-29 21:13:06,948 INFO org.apache.flink.kubernetes.utils.KubernetesUtils [] - Kubernetes deployment requires a fixed port. Configuration taskmanager.rpc.port will be set to 6122 2022-12-29 21:13:07,861 WARN org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Please note that Flink client operations(e.g. cancel, list, stop, savepoint, etc.) won't work from outside the Kubernetes cluster since 'kubernetes.rest-service.exposed.type' has been set to ClusterIP. 2022-12-29 21:13:07,868 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Create flink application cluster flink-application-cluster successfully, JobManager Web Interface: http://flink-application-cluster-rest.flink:8081
  6. Examine os recursos do Kubernetes criados.

    kubectl get all -n <namespace> NAME READY STATUS RESTARTS AGE pod/flink-application-cluster-546687cb47-w2p2z 1/1 Running 0 3m37s pod/flink-application-cluster-taskmanager-1-1 1/1 Running 0 3m24s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/flink-application-cluster ClusterIP None <none> 6123/TCP,6124/TCP 3m38s service/flink-application-cluster-rest ClusterIP 10.100.132.158 <none> 8081/TCP 3m38s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/flink-application-cluster 1/1 1 1 3m38s NAME DESIRED CURRENT READY AGE replicaset.apps/flink-application-cluster-546687cb47 1 1 1 3m38s
  7. Encaminhe a porta para 8081.

    kubectl port-forward service/flink-application-cluster-rest 8081 -n <namespace> Forwarding from 127.0.0.1:8081 -> 8081
  8. Acesse localmente a interface do usuário do Flink.

    Acesse a interface do usuário do Flink.
  9. Exclua a aplicação do Flink.

    kubectl delete deployment.apps/flink-application-cluster -n <namespace> deployment.apps "flink-application-cluster" deleted

Para obter mais informações sobre o envio de aplicações para o Flink, consulte Native Kubernetes na documentação do Apache Flink.