文章目录
kubernetes 是目前非常流行的容器编排系统,在其之上可以运行 web 服务、大数据处理等各类应用。这些应用被打包在非常轻量的容器中,我们通过声明的方式来告知 kubernetes 要如何部署和扩容这些程序,并对外提供服务。flink on kubernetes 可以得到一个健壮和高可扩的数据处理应用,并且能够更安全的和其他服务共享一个 kubernetes 集群。
本文将记录使用 kubernetes 部署 flink 应用的步骤。
1. Mac 安装 Docker
Docker Desktop 下载地址:Docker 官网
注册 DockerID 并登录。
安装 docker 命令行:
$ brew install docker
2. Minikube 搭建 Kubernetes 实验环境
可以参考:Kubernetes 官网
- 校验 MacOS 是否支持虚拟化,运行如下命令出现 ‘VMX’:
$ sysctl -a | grep -E --color 'machdep.cpu.features|VMX'
- 安装 kubectl 命令
$ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
或者直接使用 Homebrew 安装:
$ brew install kubectl
$ brew install kubernetes-cli
查看是否安装成功:
$ kubectl version --client
Client Version: version.Info{
Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"darwin/amd64"}
-
安装 VirtualBox
VirtualBox 下载地址:VirtualBox 官网
-
安装 minikube
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && chmod +x minikube
$ sudo mv minikube /usr/local/bin
或者直接使用 Homebrew 安装:
$ brew install minikube
- 执行 minikube start
该命令会下载 kubelet 和 kubeadm 程序,并构建一个完整的 k8s 集群。
$ minikube start
- 查看 k8s pods
Minikube 已经将命令 kubectl 指向虚拟机中的 k8s 集群了。
$ kubectl get pods -A
kube-system coredns-f9fd979d6-xjht6 1/1 Running 0 5h14m
kube-system etcd-minikube 1/1 Running 0 5h14m
kube-system kube-apiserver-minikube 1/1 Running 0 5h14m
kube-system kube-controller-manager-minikube 1/1 Running 0 5h14m
kube-system kube-proxy-ff8m8 1/1 Running 0 5h14m
kube-system kube-scheduler-minikube 1/1 Running 0 5h14m
kube-system storage-provisioner 1/1 Running 0 5h14m
3. Flink 实时处理 demo
我们可以编写一个简单的实时处理脚本,该脚本会从某个端口中读取文本,分割为单词,并且每 5 秒钟打印一次每个单词出现的次数。