kubernets 部署
v1.25.5
这里我选择的是kubeadm方式部署
虚拟机数量:4
centos发行版本:CentOS Linux release 7.9.2009 (Core)
内核版本:Linux hadoop101 5.4.225-1.el7.elrepo.x86_64
部署过程我参考的是https://zhuanlan.zhihu.com/p/558014199
写的非常详细,参照着一步一步来即可
这里提一个容易踩坑的地方
kubeadm init的可选参数别设置错,特别是和ip相关的
–control-plane-endpoint :这个就填master节点的ip
–apiserver-advertise-address:这个填DNS名称或者用来做负载均衡的机器的ip,因为我没有额外的机器作这个,所以填的是master节点ip
如果后面初始化失败,然后提示kubelet状态有问题,那么就需要检查上面列的两个选项,看有没填错。
flink on k8s
flink version 1.14.6
这里我用的native session模式
创建namespace
kubectl create ns flink
创建serviceaccount
kubectl create serviceaccount flink-service-account -n flink
用户授权
kubectl create clusterrolebinding flink-role-binding-flink --clusterrole=edit --serviceaccount=flink:flink-service-account
native-session模式启动
./bin/kubernetes-session.sh
-Dkubernetes.cluster-id=my-first-flink-cluster
-Dkubernetes.container.image=flink:1.14.6-scala_2.12-java8
-Dkubernetes.namespace=flink
-Dkubernetes.jobmanager.service-account=flink-service-account
-Dkubernetes.rest-service.exposed.type=NodePort
这里提一下,用官方文档中的示例启动,flink pod会启动失败,错误信息如下:
MountVolume.SetUp failed for volume “flink-config-volume” : configmap “flink-config-my-first-flink-cluster” not found
Back-off restarting failed container
原因没有找到,如果有知道的希望能告知以下。
临时解决方法,在启动flink时用kubernetes.container.image参数指定容器镜像,就可以正常启动Flink集群
不过这里启动后pod只有一个,不知道是不是正常?
提交任务
./bin/flink run
–target kubernetes-session
-Dkubernetes.cluster-id=my-first-flink-cluster
-Dkubernetes.namespace=flink
-Dkubernetes.jobmanager.service-account=flink-service-account
./examples/streaming/TopSpeedWindowing.jar
./bin/flink run
–target kubernetes-session
-Dkubernetes.cluster-id=my-first-flink-cluster
-Dkubernetes.namespace=flink
-Dkubernetes.jobmanager.service-account=flink-service-account
./examples/streaming/WordCount.jar
删除flink集群
kubectl delete deployment/my-first-flink-cluster -n flink
kubectl delete ns flink --force