目录
- 背景
- 第一部分 部署准备
- 第二部分 验证
- 总结
- 参考文献及资料
背景
第一部分 部署准备
首先当然需要部署minikube集群。启动minikube集群:
1 | minikube start |
上面的回显表明minikube已经启动成功。执行下面网络配置:
1 | minikube ssh 'sudo ip link set docker0 promisc on' |
第二部分 部署Flink集群
一个基本的Flink集群运行在minikube需要三个组件:
- Deployment/Job:运行 JobManager
- Deployment for a pool of TaskManagers
- Service exposing the JobManager’s REST and UI ports
1.1 创建命名空间
1 | kubectl create -f namespace.yaml |
其中namespace.yaml文件为:
1 | kind: Namespace |
查询minikube集群的的命名空间:
1 | kubectl get namespaces |
1.2 集群组件资源定义
1.2.1 启动flink-jobmanager组件
Job Manager 服务是Flink集群的主服务,使用jobmanager-deployment.yaml创建。
1 | apiVersion: extensions/v1beta1 |
1.2.2 启动flink-taskmanager组件
使用taskmanager-deployment.yaml创建。
1 | apiVersion: extensions/v1beta1 |
1.2.3 启用flink服务
使用jobmanager-service.yaml创建服务,并且将端口映射到minikube主机响应端口。
1 | apiVersion: v1 |
1.3 端口映射到虚拟机主机
minikube虚拟机停止的情况下的端口转发命令如下:
1 | VBoxManage modifyvm "minikube" --natpf1 "30123_6123,tcp,,6123,,30123" |
格式说明:vboxmanage modifyvm 宿主机名称 natpf<1-n> “映射别名,tcp,,本机端口,,虚拟机端口” 1-n>
minikube虚拟机运行的情况下的端口转发命令如下:
1 | VBoxManage controlvm "minikube" --natpf1 "30123_6123,tcp,,6123,,30123" |
格式说明:vboxmanage controlvm 宿主机名称 natpf<1-n> “映射别名,tcp,,本机端口,,宿主机端口” 1-n>
另外如果要删除上面转发规则:
vboxmanage controlvm 宿主机名称 natpf<1-n> delete 映射别名1-n>
vboxmanage modifyvm 宿主机名称 natpf<1-n> delete 映射别名1-n>
第三部分 验证
3.1 minikube控制台界面
为了是主机局域网类服务器都能访问minikube控制台,需要将端口映射出去。
1 |
3.2 Flink控制台
总结
(1)部署前提前拉取镜像到本地镜像库。
(2)需要将服务端口映射到本地机器端口,供局域网服务访问,为后续访问Flink提供方便。
参考文献
1、Kubernetes Setup :https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/kubernetes.html
2、How to Deploy Flink Cluster & Flink-exporter in Kubernetes Cluster:https://medium.com/pharos-production/how-to-deploy-flink-cluster-flink-exporter-in-kubernetes-cluster-48e24b440446
3、melentye/flink-kubernetes https://github.com/melentye/flink-kubernetes
4、Set up Ingress on Minikube with the NGINX Ingress Controller https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/