官网镇楼
参考
参考
参考

一、原理

image.png

二、步骤

1、创建namespace(flink-session-cluster)

  1. kubectl create namespace flink-session-cluster

image.png

2、创建serviceaccount(flink)

  1. kubectl create serviceaccount flink -n flink-session-cluster

image.png

3、serviceaccount和角色的绑定

  1. kubectl create clusterrolebinding flink-role-binding-flink \
  2. --clusterrole=edit \
  3. --serviceaccount=flink-session-cluster:flink

4、创建session集群

  1. ./bin/kubernetes-session.sh \
  2. -Dkubernetes.namespace=flink-session-cluster \
  3. -Dkubernetes.jobmanager.service-account=flink \
  4. -Dkubernetes.cluster-id=session001 \
  5. -Dtaskmanager.memory.process.size=8192m \
  6. -Dkubernetes.taskmanager.cpu=1 \
  7. -Dtaskmanager.numberOfTaskSlots=4 \
  8. -Dresourcemanager.taskmanager-timeout=3600000

5、常用命令

5.1、查看集群服务

  1. kubectl get services -n flink-session-cluster

image.png

  • 访问flink-web
    1. http://192.168.5.239:30022/#/overview
    image.png

    5.2、查看集群部署

    1. kubectl get deployments -n flink-session-cluster
    image.png

    5.3、查看pods情况

    1. kubectl get pods -n flink-session-cluster
    image.png

    5.4、查看node情况

    1. kubectl get node -n flink-session-cluster
    image.png

    5.5、查看events情况

    1. kubectl get events -n flink-session-cluster

    5.6、详细查看某个pod

    1. kubectl describe pod kubectl describe pod session001-6f8987b4f8-qr6lp -n flink-cluster

    5.7、查看集群服务

    1. kubectl get services -n flink-session-cluster
    image.png

    5.8、查看具体的容器详情

    1. kubectl describe pod 容器name --namespace=name空间
    image.png
    1. kubectl describe pod session001-6f8987b4f8-9q45n --namespace=flink-session-cluster

    image.png

6、本地提交任务

  1. ./bin/flink run -d \
  2. -e kubernetes-session \
  3. -Dkubernetes.namespace=flink-session-cluster \
  4. -Dkubernetes.cluster-id=session001 \
  5. examples/streaming/WindowJoin.jar

7、flink-web界面提交任务

image.png

8、停止flink集群

  1. echo 'stop' | \
  2. ./bin/kubernetes-session.sh \
  3. -Dkubernetes.namespace=flink-session-cluster \
  4. -Dkubernetes.cluster-id=session001 \
  5. -Dexecution.attached=true

9、在kubernetes节点清理service、clusterrolebinding、serviceaccount、namespace

  1. kubectl delete service session001 -n flink-session-cluster
  2. kubectl delete clusterrolebinding flink-role-binding-flink
  3. kubectl delete serviceaccount flink -n flink-session-cluster
  4. kubectl delete namespace flink-session-cluster