目录
- 背景
 - 第一部分 部署准备
 - 第二部分 验证
 - 总结
 - 参考文献及资料
 
背景
第一部分 部署准备
首先当然需要部署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/
