Kubernetes is a container orchestration system.
A basic Flink cluster deployment in Kubernetes has three components:
Using the [resource definitions found below](#simple-kubernetes-flink-cluster- resources), launch the cluster with the kubectl command:
kubectl create -f jobmanager-deployment.yaml kubectl create -f taskmanager-deployment.yaml kubectl create -f jobmanager-service.yaml
You can then access the Flink UI via kubectl proxy:
kubectl proxy in a terminalAgain, use kubectl to delete the cluster:
kubectl delete -f jobmanager-deployment.yaml kubectl delete -f taskmanager-deployment.yaml kubectl delete -f jobmanager-service.yaml
An early version of a [Flink Helm chart](https://github.com/docker-flink/ examples) is available on GitHub.
jobmanager-deployment.yaml {% highlight yaml %} apiVersion: extensions/v1beta1 kind: Deployment metadata: name: flink-jobmanager spec: replicas: 1 template: metadata: labels: app: flink component: jobmanager spec: containers: - name: jobmanager image: flink:latest args: - jobmanager ports: - containerPort: 6123 name: rpc - containerPort: 6124 name: blob - containerPort: 6125 name: query - containerPort: 8081 name: ui env: - name: JOB_MANAGER_RPC_ADDRESS value: flink-jobmanager {% endhighlight %}
taskmanager-deployment.yaml {% highlight yaml %} apiVersion: extensions/v1beta1 kind: Deployment metadata: name: flink-taskmanager spec: replicas: 2 template: metadata: labels: app: flink component: taskmanager spec: containers: - name: taskmanager image: flink:latest args: - taskmanager ports: - containerPort: 6121 name: data - containerPort: 6122 name: rpc - containerPort: 6125 name: query env: - name: JOB_MANAGER_RPC_ADDRESS value: flink-jobmanager {% endhighlight %}
jobmanager-service.yaml {% highlight yaml %} apiVersion: v1 kind: Service metadata: name: flink-jobmanager spec: ports:
{% top %}