SlideShare a Scribd company logo
Flink on

Kubernetes operator
SK telecom
Eui Heo
Outline
• Background
• Flink operator
• Use case
• Future works
Kubernetes
“Kubernetes is a portable, extensible, open-source platform for
managing containerized workloads and services, that facilitates
both declarative configuration and automation.”
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
• Declarative configurations
• Automation of operation
• Extensible platform
Kubernetes

control loop
Desired state or actual state
Is updated?
Diff the two
Act if the two is not equal
Observed actual state Act to change the state
Control loop
(declarative configuration)
Desired state
Kubernetes architecture
K8s
Nodes
K8s Master
Kubernetes architecture
apiVersion: core/v1

kind: Deployment

metadata:

    name: flink-jm

spec:

    replicas: 1

    template:

…

image: flink:1.9.3
API server
K8s
Nodes
Persist
Cache
Submit spec
Deployment
Deployment
Deployment
Deployment
etcd
K8s Master
Kubernetes architecture
apiVersion: core/v1

kind: Deployment

metadata:

    name: flink-jm

spec:

    replicas: 1

    template:

…

image: flink:1.9.3
API server
K8s
Nodes
Controller manager
(control loops for each objects)
ReplicaSet
Persist
Cache
Submit spec
Deployment
Deployment
Deployment
Deployment
etcd
Pod
Create pods
K8s Master
Kubernetes architecture
apiVersion: core/v1

kind: Deployment

metadata:

    name: flink-jm

spec:

    replicas: 1

    template:

…

image: flink:1.9.3
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
ReplicaSet
Persist
Cache
Submit spec
Scheduler
Kubelet Kubelet
Deployment
Deployment
Deployment
Deployment
etcd
Pod
Create pods
K8s Master
Kubernetes architecture
apiVersion: core/v1

kind: Deployment

metadata:

    name: flink-jm

spec:

    replicas: 1

    template:

…

image: flink:1.9.3
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
ReplicaSet
Persist
Cache
Submit spec
Scheduler
Kubelet Kubelet
Deployment
Deployment
Deployment
Deployment
etcd
Pod
<job manager>

Pod
Update deploy status
Outline
• Background
• Flink operator
• Use case
• Future works
K8s Master
Flink deploy with manifests
Job manager
Deployment
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
submit
manifests
Scheduler
Kubelet Kubelet
etcd
Task manager
Deployment
ConfigMap
Job manager
Service
kubectl apply –f manifest.yaml
K8s Master
Flink native Kubernetes support
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
Scheduler
Kubelet Kubelet
etcd
K8s Master
Flink native Kubernetes support
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
Scheduler
Kubelet Kubelet
etcd
Job manager
Deployment
Flink CLI
submits
manifests
Task manager
Deployment
ConfigMap
Job manager
Service
X
<JobManager>

Deployment
ConfigMap Service
$ ./bin/kubernetes-session.sh …
K8s Master
Flink native Kubernetes support
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
Scheduler
Kubelet Kubelet
etcd
<job manager>
Pod
Job manager
Deployment
Flink CLI
submits
manifests
Task manager
Deployment
ConfigMap
Job manager
Service
X
<JobManager>

Deployment
ConfigMap Service
Service
$ ./bin/kubernetes-session.sh …
K8s Master
Flink native Kubernetes support
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
Scheduler
Kubelet Kubelet
etcd
<job manager>
Pod
Job manager
Deployment
Flink CLI
submits
manifests
Task manager
Deployment
ConfigMap
Job manager
Service
X
Flink CLI
submits
job
Create
taskmanager pod
on demand
<JobManager>

Deployment
ConfigMap Service
Pod
<task
manager>
Pod
Service
$ ./bin/kubernetes-session.sh …
$ ./bin/flink run -d …
K8s Master
Flink native Kubernetes support
API server
Kubelet
K8s
Nodes
Controller manager
(control loops for each objects)
Scheduler
Kubelet Kubelet
etcd
<job manager>
Pod
Job manager
Deployment
Flink CLI
submits
manifests
Task manager
Deployment
ConfigMap
Job manager
Service
X
Flink CLI
submits
job
Create
taskmanager pod
on demand
<task manager>
Pod
<task manager>
Pod
<JobManager>

Deployment
ConfigMap Service
Pod
<task
manager>
Pod
Service
$ ./bin/kubernetes-session.sh …
$ ./bin/flink run -d …
Kubernetes operator
• Operator pattern
• Operators are software extensions to Kubernetes
• Make use of custom resources to manage applications
• Operators follow Kubernetes principles, notably the control loop.
• Motivation
• Capture the key aim of a human operator
• Automation to take care of repeatable tasks
Note: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
K8s Master
Flink operator (GoogleCloudPlatform/flink-on-k8s-operator)
API server
K8s
Nodes
Controller manager
(control loops for each objects)
etcd
FlinkCluster
controller
Scheduler
Kubelet Kubelet Kubelet
FlinkCluster
FlinkCluster CRD
kind: FlinkCluster
metadata:
name: wordcount
spec:
image:
name: flink:1.9.2
taskManager:
replicas: 2
K8s Master
Flink operator (GoogleCloudPlatform/flink-on-k8s-operator)
API server
K8s
Nodes
Controller manager
(control loops for each objects)
etcd
FlinkCluster
controller
FlinkCluster
Scheduler
Kubelet Kubelet Kubelet
FlinkCluster
FlinkCluster CRD
kind: FlinkCluster
metadata:
name: wordcount
spec:
image:
name: flink:1.9.2
taskManager:
replicas: 2
K8s Master
Flink operator (GoogleCloudPlatform/flink-on-k8s-operator)
API server
K8s
Nodes
Controller manager
(control loops for each objects)
etcd
FlinkCluster
controller
FlinkCluster
Scheduler
Kubelet Kubelet Kubelet
Deployment Deployment ConfigMap Service Job
FlinkCluster
FlinkCluster CRD
kind: FlinkCluster
metadata:
name: wordcount
spec:
image:
name: flink:1.9.2
taskManager:
replicas: 2
K8s Master
Flink operator (GoogleCloudPlatform/flink-on-k8s-operator)
API server
K8s
Nodes
Controller manager
(control loops for each objects)
etcd
FlinkCluster
controller
FlinkCluster
Scheduler
Kubelet Kubelet Kubelet
Deployment Deployment ConfigMap Service Job
FlinkCluster
<job manager>
Pod
<task manager>
Pod
<task manager>
Pod
FlinkCluster CRD
kind: FlinkCluster
metadata:
name: wordcount
spec:
image:
name: flink:1.9.2
taskManager:
replicas: 2
K8s Master
Flink operator (GoogleCloudPlatform/flink-on-k8s-operator)
API server
K8s
Nodes
Controller manager
(control loops for each objects)
etcd
FlinkCluster
controller
FlinkCluster
Scheduler
Kubelet Kubelet Kubelet
Deployment Deployment ConfigMap Service Job
FlinkCluster
user
program
Java
Python
Javascript
Go
… <job manager>
Pod
<task manager>
Pod
<task manager>
Pod
FlinkCluster CRD
kind: FlinkCluster
metadata:
name: wordcount
spec:
image:
name: flink:1.9.2
taskManager:
replicas: 2
Flink operator features
• Replay job from savepoint
• Take savepoint periodically
• Update Flink job program
• Update Flink cluster (e.g, Flink version)
• Recover job from Fink cluster failure
• Manage FlinkCluster revision history
• Re-scaling
• Rollback FlinkCluster to specific revision
• Auto-scaling
• Support Apache Beam on Flink per-job cluster
FlinkCluster custom resource
apiVersion: flinkoperator.k8s.io/v1beta1
kind: FlinkCluster
metadata:
name: wordcount
spec:
image:
name: flink:1.9.2
jobManager:
resources:
limits:
memory: "1024Mi"
cpu: "200m"
taskManager:
replicas: 2
job:
jarFile: ./examples/streaming/WordCount.jar
className: org.apache.flink.streaming.examples.wordcount.WordCount
args: ["--input", "./README.txt"]
parallelism: 2
fromSavepoint: /savepoints/savepoint-d299f1-9bd71f023b4a
autoSavepointSeconds: 30
flinkProperties:
taskmanager.numberOfTaskSlots: "1"
Outline
• Background
• Flink operator
• Use case
• Future works
Outline
• Background
• Flink operator
• Use case
• Future works
Use case
Kafka
topic
Stream manager
Flink real tiem job
Real-time
data stream
Kafka
topic
Druid
Kafka management
Druid management
Flink job management
Kubernetes cluster
Flink operator
FlinkCluster
specs
Deep
storage
Metatron Grandview
Request Flink jobs for new assets
Outline
• Background
• Flink operator
• Use case
• Future works
• Integrate Flink native Kubernetes support
• Auto scaling
• Apache beam support

More Related Content

What's hot

An introduction to terraform
An introduction to terraformAn introduction to terraform
An introduction to terraform
Julien Pivotto
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
if kakao
 
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
Amazon Web Services Korea
 
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon Web Services Korea
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Amazon Web Services
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
Animesh Singh
 
Ansible
AnsibleAnsible
Ansible
Kamil Lelonek
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
Amazon Web Services Korea
 
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
Amazon Web Services Korea
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?
Kai Wähner
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overview
Wyn B. Van Devanter
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
Amazon Web Services Korea
 
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
Amazon Web Services
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
Seung-Hoon Baek
 
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentUsing the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Flink Forward
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
Kohei Tokunaga
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
Ji-Woong Choi
 
Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018
Anton Babenko
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
J On The Beach
 

What's hot (20)

An introduction to terraform
An introduction to terraformAn introduction to terraform
An introduction to terraform
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
 
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
 
Ansible
AnsibleAnsible
Ansible
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 
Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overview
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
 
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentUsing the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
 

Similar to Flink on Kubernetes operator

Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang WangVirtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Flink Forward
 
Kubernetes day 2 Operations
Kubernetes day 2 OperationsKubernetes day 2 Operations
Kubernetes day 2 Operations
Paul Czarkowski
 
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
Athens Big Data
 
Kubermatic.pdf
Kubermatic.pdfKubermatic.pdf
Kubermatic.pdf
LibbySchulze
 
Kubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdfKubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdf
LibbySchulze
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
Docker, Inc.
 
AKS: k8s e azure
AKS: k8s e azureAKS: k8s e azure
AKS: k8s e azure
Alessandro Melchiori
 
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container SchedulingKubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeAcademy
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
Kel Cecil
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Tobias Schneck
 
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes ClustersFrom Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
Matthew Barker
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
Lee Calcote
 
How to build a tool for operating Flink on Kubernetes
How to build a tool for operating Flink on KubernetesHow to build a tool for operating Flink on Kubernetes
How to build a tool for operating Flink on Kubernetes
AndreaMedeghini
 
Running kubernetes
Running kubernetesRunning kubernetes
Running kubernetes
Mustafa Kırımlı
 
Demystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in dockerDemystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in docker
Docker, Inc.
 
Demystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker PlatformDemystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker Platform
Nicola Kabar
 
Aks: k8s e azure
Aks:  k8s e azureAks:  k8s e azure
Aks: k8s e azure
Alessandro Melchiori
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Bob Killen
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
Terry Cho
 
Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)
Shift Conference
 

Similar to Flink on Kubernetes operator (20)

Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang WangVirtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
 
Kubernetes day 2 Operations
Kubernetes day 2 OperationsKubernetes day 2 Operations
Kubernetes day 2 Operations
 
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
 
Kubermatic.pdf
Kubermatic.pdfKubermatic.pdf
Kubermatic.pdf
 
Kubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdfKubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdf
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
AKS: k8s e azure
AKS: k8s e azureAKS: k8s e azure
AKS: k8s e azure
 
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container SchedulingKubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container Scheduling
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
 
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes ClustersFrom Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
 
How to build a tool for operating Flink on Kubernetes
How to build a tool for operating Flink on KubernetesHow to build a tool for operating Flink on Kubernetes
How to build a tool for operating Flink on Kubernetes
 
Running kubernetes
Running kubernetesRunning kubernetes
Running kubernetes
 
Demystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in dockerDemystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in docker
 
Demystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker PlatformDemystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker Platform
 
Aks: k8s e azure
Aks:  k8s e azureAks:  k8s e azure
Aks: k8s e azure
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)
 

Recently uploaded

06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
Timothy Spann
 
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
z6osjkqvd
 
Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......
Sachin Paul
 
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
nyfuhyz
 
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
taqyea
 
一比一原版(CU毕业证)卡尔顿大学毕业证如何办理
一比一原版(CU毕业证)卡尔顿大学毕业证如何办理一比一原版(CU毕业证)卡尔顿大学毕业证如何办理
一比一原版(CU毕业证)卡尔顿大学毕业证如何办理
bmucuha
 
Intelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicineIntelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicine
AndrzejJarynowski
 
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
sameer shah
 
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCAModule 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
yuvarajkumar334
 
UofT毕业证如何办理
UofT毕业证如何办理UofT毕业证如何办理
UofT毕业证如何办理
exukyp
 
The Ipsos - AI - Monitor 2024 Report.pdf
The  Ipsos - AI - Monitor 2024 Report.pdfThe  Ipsos - AI - Monitor 2024 Report.pdf
The Ipsos - AI - Monitor 2024 Report.pdf
Social Samosa
 
DSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelinesDSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelines
Timothy Spann
 
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
wyddcwye1
 
End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024
Lars Albertsson
 
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docxDATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
SaffaIbrahim1
 
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
bopyb
 
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
Walaa Eldin Moustafa
 
A presentation that explain the Power BI Licensing
A presentation that explain the Power BI LicensingA presentation that explain the Power BI Licensing
A presentation that explain the Power BI Licensing
AlessioFois2
 
Experts live - Improving user adoption with AI
Experts live - Improving user adoption with AIExperts live - Improving user adoption with AI
Experts live - Improving user adoption with AI
jitskeb
 
University of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma TranscriptUniversity of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma Transcript
soxrziqu
 

Recently uploaded (20)

06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
 
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
 
Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......
 
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
 
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
 
一比一原版(CU毕业证)卡尔顿大学毕业证如何办理
一比一原版(CU毕业证)卡尔顿大学毕业证如何办理一比一原版(CU毕业证)卡尔顿大学毕业证如何办理
一比一原版(CU毕业证)卡尔顿大学毕业证如何办理
 
Intelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicineIntelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicine
 
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
 
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCAModule 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
 
UofT毕业证如何办理
UofT毕业证如何办理UofT毕业证如何办理
UofT毕业证如何办理
 
The Ipsos - AI - Monitor 2024 Report.pdf
The  Ipsos - AI - Monitor 2024 Report.pdfThe  Ipsos - AI - Monitor 2024 Report.pdf
The Ipsos - AI - Monitor 2024 Report.pdf
 
DSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelinesDSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelines
 
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
 
End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024
 
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docxDATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
 
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
 
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
 
A presentation that explain the Power BI Licensing
A presentation that explain the Power BI LicensingA presentation that explain the Power BI Licensing
A presentation that explain the Power BI Licensing
 
Experts live - Improving user adoption with AI
Experts live - Improving user adoption with AIExperts live - Improving user adoption with AI
Experts live - Improving user adoption with AI
 
University of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma TranscriptUniversity of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma Transcript
 

Flink on Kubernetes operator

  • 2. Outline • Background • Flink operator • Use case • Future works
  • 3. Kubernetes “Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation.” https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ • Declarative configurations • Automation of operation • Extensible platform
  • 4. Kubernetes
 control loop Desired state or actual state Is updated? Diff the two Act if the two is not equal Observed actual state Act to change the state Control loop (declarative configuration) Desired state
  • 6. K8s Master Kubernetes architecture apiVersion: core/v1
 kind: Deployment
 metadata:
     name: flink-jm
 spec:
     replicas: 1
     template:
 …
 image: flink:1.9.3 API server K8s Nodes Persist Cache Submit spec Deployment Deployment Deployment Deployment etcd
  • 7. K8s Master Kubernetes architecture apiVersion: core/v1
 kind: Deployment
 metadata:
     name: flink-jm
 spec:
     replicas: 1
     template:
 …
 image: flink:1.9.3 API server K8s Nodes Controller manager (control loops for each objects) ReplicaSet Persist Cache Submit spec Deployment Deployment Deployment Deployment etcd Pod Create pods
  • 8. K8s Master Kubernetes architecture apiVersion: core/v1
 kind: Deployment
 metadata:
     name: flink-jm
 spec:
     replicas: 1
     template:
 …
 image: flink:1.9.3 API server Kubelet K8s Nodes Controller manager (control loops for each objects) ReplicaSet Persist Cache Submit spec Scheduler Kubelet Kubelet Deployment Deployment Deployment Deployment etcd Pod Create pods
  • 9. K8s Master Kubernetes architecture apiVersion: core/v1
 kind: Deployment
 metadata:
     name: flink-jm
 spec:
     replicas: 1
     template:
 …
 image: flink:1.9.3 API server Kubelet K8s Nodes Controller manager (control loops for each objects) ReplicaSet Persist Cache Submit spec Scheduler Kubelet Kubelet Deployment Deployment Deployment Deployment etcd Pod <job manager>
 Pod Update deploy status
  • 10. Outline • Background • Flink operator • Use case • Future works
  • 11. K8s Master Flink deploy with manifests Job manager Deployment API server Kubelet K8s Nodes Controller manager (control loops for each objects) submit manifests Scheduler Kubelet Kubelet etcd Task manager Deployment ConfigMap Job manager Service kubectl apply –f manifest.yaml
  • 12. K8s Master Flink native Kubernetes support API server Kubelet K8s Nodes Controller manager (control loops for each objects) Scheduler Kubelet Kubelet etcd
  • 13. K8s Master Flink native Kubernetes support API server Kubelet K8s Nodes Controller manager (control loops for each objects) Scheduler Kubelet Kubelet etcd Job manager Deployment Flink CLI submits manifests Task manager Deployment ConfigMap Job manager Service X <JobManager>
 Deployment ConfigMap Service $ ./bin/kubernetes-session.sh …
  • 14. K8s Master Flink native Kubernetes support API server Kubelet K8s Nodes Controller manager (control loops for each objects) Scheduler Kubelet Kubelet etcd <job manager> Pod Job manager Deployment Flink CLI submits manifests Task manager Deployment ConfigMap Job manager Service X <JobManager>
 Deployment ConfigMap Service Service $ ./bin/kubernetes-session.sh …
  • 15. K8s Master Flink native Kubernetes support API server Kubelet K8s Nodes Controller manager (control loops for each objects) Scheduler Kubelet Kubelet etcd <job manager> Pod Job manager Deployment Flink CLI submits manifests Task manager Deployment ConfigMap Job manager Service X Flink CLI submits job Create taskmanager pod on demand <JobManager>
 Deployment ConfigMap Service Pod <task manager> Pod Service $ ./bin/kubernetes-session.sh … $ ./bin/flink run -d …
  • 16. K8s Master Flink native Kubernetes support API server Kubelet K8s Nodes Controller manager (control loops for each objects) Scheduler Kubelet Kubelet etcd <job manager> Pod Job manager Deployment Flink CLI submits manifests Task manager Deployment ConfigMap Job manager Service X Flink CLI submits job Create taskmanager pod on demand <task manager> Pod <task manager> Pod <JobManager>
 Deployment ConfigMap Service Pod <task manager> Pod Service $ ./bin/kubernetes-session.sh … $ ./bin/flink run -d …
  • 17. Kubernetes operator • Operator pattern • Operators are software extensions to Kubernetes • Make use of custom resources to manage applications • Operators follow Kubernetes principles, notably the control loop. • Motivation • Capture the key aim of a human operator • Automation to take care of repeatable tasks Note: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
  • 18. K8s Master Flink operator (GoogleCloudPlatform/flink-on-k8s-operator) API server K8s Nodes Controller manager (control loops for each objects) etcd FlinkCluster controller Scheduler Kubelet Kubelet Kubelet FlinkCluster FlinkCluster CRD kind: FlinkCluster metadata: name: wordcount spec: image: name: flink:1.9.2 taskManager: replicas: 2
  • 19. K8s Master Flink operator (GoogleCloudPlatform/flink-on-k8s-operator) API server K8s Nodes Controller manager (control loops for each objects) etcd FlinkCluster controller FlinkCluster Scheduler Kubelet Kubelet Kubelet FlinkCluster FlinkCluster CRD kind: FlinkCluster metadata: name: wordcount spec: image: name: flink:1.9.2 taskManager: replicas: 2
  • 20. K8s Master Flink operator (GoogleCloudPlatform/flink-on-k8s-operator) API server K8s Nodes Controller manager (control loops for each objects) etcd FlinkCluster controller FlinkCluster Scheduler Kubelet Kubelet Kubelet Deployment Deployment ConfigMap Service Job FlinkCluster FlinkCluster CRD kind: FlinkCluster metadata: name: wordcount spec: image: name: flink:1.9.2 taskManager: replicas: 2
  • 21. K8s Master Flink operator (GoogleCloudPlatform/flink-on-k8s-operator) API server K8s Nodes Controller manager (control loops for each objects) etcd FlinkCluster controller FlinkCluster Scheduler Kubelet Kubelet Kubelet Deployment Deployment ConfigMap Service Job FlinkCluster <job manager> Pod <task manager> Pod <task manager> Pod FlinkCluster CRD kind: FlinkCluster metadata: name: wordcount spec: image: name: flink:1.9.2 taskManager: replicas: 2
  • 22. K8s Master Flink operator (GoogleCloudPlatform/flink-on-k8s-operator) API server K8s Nodes Controller manager (control loops for each objects) etcd FlinkCluster controller FlinkCluster Scheduler Kubelet Kubelet Kubelet Deployment Deployment ConfigMap Service Job FlinkCluster user program Java Python Javascript Go … <job manager> Pod <task manager> Pod <task manager> Pod FlinkCluster CRD kind: FlinkCluster metadata: name: wordcount spec: image: name: flink:1.9.2 taskManager: replicas: 2
  • 23. Flink operator features • Replay job from savepoint • Take savepoint periodically • Update Flink job program • Update Flink cluster (e.g, Flink version) • Recover job from Fink cluster failure • Manage FlinkCluster revision history • Re-scaling • Rollback FlinkCluster to specific revision • Auto-scaling • Support Apache Beam on Flink per-job cluster
  • 24. FlinkCluster custom resource apiVersion: flinkoperator.k8s.io/v1beta1 kind: FlinkCluster metadata: name: wordcount spec: image: name: flink:1.9.2 jobManager: resources: limits: memory: "1024Mi" cpu: "200m" taskManager: replicas: 2 job: jarFile: ./examples/streaming/WordCount.jar className: org.apache.flink.streaming.examples.wordcount.WordCount args: ["--input", "./README.txt"] parallelism: 2 fromSavepoint: /savepoints/savepoint-d299f1-9bd71f023b4a autoSavepointSeconds: 30 flinkProperties: taskmanager.numberOfTaskSlots: "1"
  • 25. Outline • Background • Flink operator • Use case • Future works
  • 26. Outline • Background • Flink operator • Use case • Future works Use case Kafka topic Stream manager Flink real tiem job Real-time data stream Kafka topic Druid Kafka management Druid management Flink job management Kubernetes cluster Flink operator FlinkCluster specs Deep storage Metatron Grandview Request Flink jobs for new assets
  • 27. Outline • Background • Flink operator • Use case • Future works
  • 28. • Integrate Flink native Kubernetes support • Auto scaling • Apache beam support