flink on k8s (flink-1.13.0 最新版本 application 部署方式)
flink on k8s (flink-1.13.0 最新版本 application 部署方式)run-application模式(此方式一劳永逸,节省资源+数据隔离,集群之间不会相互影响)①,将自己的项目jar包 和 flink镜像 打在一起生成新的镜像(默认jdk是1.8,如果有jdk版本要求可将jdk的home目录一起打进镜像,然后通过配置文件内添加参数 env.java.home: /o
·
flink on k8s (flink-1.13.0 最新版本 application 部署方式)
run-application模式
(此方式一劳永逸,节省资源+数据隔离,集群之间不会相互影响)
①,将自己的项目jar包 和 flink镜像 打在一起生成新的镜像
(默认jdk是1.8,如果有jdk版本要求可将jdk的home目录一起打进镜像,然后通过配置文件内添加参数 env.java.home: /opt/flink/jdk-11.0.10+0 来指定jdk )
Dockerfile:
FROM flink
RUN mkdir -p /opt/flink/usrlib
COPY matest.jar /opt/flink/usrlib/matest.jar
COPY jdk-11.0.10+0 /opt/flink/jdk-11.0.10+0
//RUN echo "env.java.home=/opt/flink/jdk-11.0.10+0" > /opt/flink/conf/flink-conf.yaml
②,构建镜像
docker build -t wordcount:1.0(你的镜像自定义名字) ./
③,如果有本地仓库的push到本地仓库,这样其他kubernetes的节点就不需要手动拷贝镜像了
docker tag wordcount:1.0 192.168.xx.xx:30002/gtcom/wordcount:1.0
docker push 192.168.xx.xx:30002/gtcom/wordcount:1.0
④,创建kubernets命名空间
kubectl create namespace flink-application-cluster
⑤,创建该空间的用户 flink (自定义)
kubectl create serviceaccount flink -n flink-application-cluster
⑥,给该用户赋权
(不创建用户和赋权启动时候会报 "权限"错)
kubectl create clusterrolebinding flink-role-binding-flink \
--clusterrole=edit \
--serviceaccount=flink-application-cluster:flink
⑦,到你服务器flink的home目录下,用flink命令 启动集群
bin/flink run-application --target kubernetes-application \
-Dkubernetes.cluster-id=gtcom-application-cluster(自定义任务名称,否则会自动创建) \
-Dkubernetes.namespace=flink-application-cluster \
-Dkubernetes.service-account=flink \
-Dkubernetes.container.image= 192.168.xx.xx:30002/gtcom/wordcount:1.0 \
local:///opt/flink/usrlib/gxxxxxxxx-2.3.0.jar --driverType AccessGovern --flow news --topicName flink-index --kafkaParallelism 3 --sinkParallelism 3
(从“–driverType” 开始是你的jar包需要传递的一些自定义参数)
图片
更多推荐
已为社区贡献1条内容
所有评论(0)