SlideShare a Scribd company logo
1 of 78
Agenda
Easy Peasy, Right?
Shared or Local Storage?
DaemonSet Option
StatefulSet Option
Upgrades
Security
Conclusion
Easy Peasy, Right?
Provisioning team vs. Kafka team
Hi Kafka team, you’re using
the old provisioning system.
Please move Kafka to
Kubernetes.
We’d love to. How do we get
started?
Provisioning team vs. Kafka team
Here’s an example of a app,
just copy it.
We got a problem, data
keeps getting lost on each
deploy. What do we do?
Provisioning team vs. Kafka team
Doesn’t Kafka have
replication features?
Provisioning team vs. Kafka team
Mmmmmmmmmmmaaahhh!
Yeh, but we’ve got terabytes
of data to copy for each
node, it’ll take days to do
updates.
Benefits
Common Operating System provisioning system:
Security upgrades
Logs and metrics
Containerization:
Developer control of software dependencies
Automated deploys
Why Kubernetes?
Kafka is a “reliability tool”
Move data without lossiness
High stakes usage
Why Kafka?
Observability Data
Event Streaming
DB
Change Data Capture
DB
DB
DB DB
Availability
Durability
Latency and Throughput
Cost
Key Objectives
Deploy multiple brokers
Restart one replica at a time
Clients reconnect to new leaders
Availability
Restarted brokers pick up existing data
Data must match broker id
In case of volume loss, replicate to new volume
Durability
Use page cache as much as possible
Low latency disks
Low overhead network
Latency and Throughput
Shared or Local Storage?
How much?
1GB/
sec
** Representative number for
calculation sake. Not our actual load.
How much?
Retention: 4 Days
How much?
345.6 TB
How much? - With 3x replication
1 PB
Options - AWS
EBS vs. Instance Store
EBS Option
Monthly Cost for 1PB
End-to-End Latency P99
Consume and Produce
IO1 20k IOPS $372k 9ms
IO1 10k IOPS $256k 11ms
GP2 $111k 12ms
ST1 $50k 22ms
EBS Option Compute
m5a.2xlarge
32GB of RAM
$47k for 173 Nodes, 6TB each
EBS Option
Monthly Cost for 1PB
with Compute
End-to-End Latency P99
Consume and Produce
IO1 20k IOPS $419k 9ms
IO1 10k IOPS $303k 11ms
GP2 $158k 12ms
ST1 $97k 22ms
EBS: Can we reduce replication?
# Brokers Availability Prediction w/ EBS1
One 91.6%
Two 99.82%
Three 99.99%
1. https://bit.ly/2llzyFZ
Instance Store Option
d2.xlarge
2TB 2TB 2TB
Also known as “Ephemeral Volumes”
Instance Store Option
d2.xlarge


6TB
2TB 2TB 2TB
RAID0
Instance Store: Looking better
Monthly Cost for 1PB
End-to-End Latency P99
Consume and Produce
IO1 20k IOPS $419k 9ms
IO1 10k IOPS $303k 11ms
GP2 $158k 12ms
ST1 $97k 22ms
d2.xlarge $83k 14ms
i3.4xlarge $241k 8ms
Instance Store and K8s
Not as easy as EBS
Kafka container must re-schedule on same node
Recycle broker ids
Reschedule on same node
Active Broker 0 Active Broker 1 Active Broker 2 Idle K8s Node
Reschedule on same node
Active Broker 0
kafka-v2.2
Active Broker 1
kafka-v2.2
Active Broker 2
kafka-v2.2
Idle K8s Node
Reschedule on same node
Active Broker 0
kafka-v2.2
Active Broker 1
kafka-v2.2
Active Broker 2
kafka-v2.2
Idle K8s Node
Reschedule on same node
Active Broker 0
kafka-v2.2
Active Broker 1
kafka-v2.2
Active Broker 2
kafka-v2.2
Active Broker 0
kafka-v2.3
Reschedule on same node
Idle K8s Node Active Broker 1
kafka-v2.2
Active Broker 2
kafka-v2.2
Active Broker 0
kafka-v2.3
Wait up-to 24 hours for replication
Reschedule on same node
Idle K8s Node Active Broker 1
kafka-v2.2
Active Broker 2
kafka-v2.2
Active Broker 0
kafka-v2.3
Reschedule on same node
Active Broker 1
kafka-v2.3
Active Broker 1
kafka-v2.2
Active Broker 2
kafka-v2.2
Active Broker 0
kafka-v2.3
Reschedule on same node
Active Broker 1
kafka-v2.3
Idle K8s Node Active Broker 2
kafka-v2.2
Active Broker 0
kafka-v2.3
Wait up-to 24 hours for replication
Reschedule on same node
Active Broker 1
kafka-v2.3
Idle K8s Node Active Broker 2
kafka-v2.2
Active Broker 0
kafka-v2.3
Wait up-to 24 hours for replication
Several Solutions
DaemonSet
StatefulSet w/ PLV on K8s 1.14+
Local PVs using OpenEBS on K8s 1.12+
Local Path Provisioner on K8s 1.12+
DaemonSet Option
Kafka as a DaemonSet
DaemonSet declares:
Each broker is placed on every K8s node
Static id assigned to K8s node
Ids mounted into broker container
Only Kafka scheduled on K8s cluster
Kafka as a DaemonSet
Terraform
resource "aws_instance" "kubelet" { count = x … }
1
Kafka Id
1
Kafka Id
2
2
Kafka Id
3
3
Kubelet 1 Kubelet 2 Kubelet 3
Kafka Network Architecture
Client 1 Client 2
Kafka Node 1
Bootstrap Server - Load Balancer or Round-robin DNS
Kafka Node 2 Kafka Node 3
Talk to node 1, 2, and 3
Talk to node 1, 2, and 3 Talk to node 1, 2, and 3
Kubernetes Network w/ DaemonSet
Kafka Id
1
Kafka Id
2
Kafka Id
3
Kubelet 1 Kubelet 2 Kubelet 3
HostPort: 9093 HostPort: 9093 HostPort: 9093
Client 1 Client 2
Load Balancer or Round-robin DNS
hostNetwork:
true
StatefulSet Option
Kafka as a StatefulSet
StatefulSet declares:
Kafka pod is pinned to specific local disk
StatefulSet id follows broker
Nodes labeled to have only Kafka
Kafka as a StatefulSet
Terraform
resource "aws_autoscaling_group" "kubelet" { min-size = x }
Kafka Id
1
Kubelet
Stateful
Set Id 1
Kafka Id
2
Kubelet
Stateful
Set Id 2
Kafka Id
3
Kubelet
Stateful
Set Id 3
Hot spare or other
Pods
Kubelet
Kubernetes StatefulSet w/ kube-proxy
Kafka Id
1
Kafka Id
2
Kafka Id
3
Kubelet 1 Kubelet 2 Kubelet 3
Client 1 Client 2
ClusterIP
w/ Iptables
kube-proxy
ClusterIP
w/ Iptables
kube-proxy
ClusterIP
w/ Iptables
kube-proxy
Kubernetes Network: amazon-vpc-cni-k8s1
Kafka Id
1
Kafka Id
2
Kafka Id
3
Kubelet 1 Kubelet 2 Kubelet 3
Client 1 Client 2
ENI: eth0
Kafka Container IP:
1.1.2.11

Kublet IP: 10.1.1.11
veth0
Kafka Container IP:
1.1.2.11
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
ENI: eth0
Kafka Container IP:
1.1.2.12

Kublet IP: 10.1.1.12
veth0
Kafka Container IP:
1.1.2.12
ENI: eth0
Kafka Container IP:
1.1.2.13

Kublet IP: 10.1.1.13
veth0
Kafka Container IP:
1.1.2.13
1. https://github.com/aws/amazon-vpc-cni-k8s
Kubernetes Network: cni-ipvlan-vpc-k8s1
Kafka Id
1
Kafka Id
2
Kafka Id
3
Kubelet 1 Kubelet 2 Kubelet 3
Client 1 Client 2
ENI:
eth0 - mac:
01-23-45-67-89-11
Kafka Container IP: 1.1.2.11

Kublet IP: 10.1.1.11
ipv1 - mac:
01-23-45-67-89-11
IP: 1.1.2.11
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
ENI:
eth0 - mac:
01-23-45-67-89-12
Kafka Container IP: 1.1.2.12

Kublet IP: 10.1.1.12
ipv1 - mac: 01-23-45-67-89-12
IP: 1.1.2.12
ENI:
eth0 - mac:
01-23-45-67-89-13
Kafka Container IP: 1.1.2.13

Kublet IP: 10.1.1.13
ipv1 - mac: 01-23-45-67-89-13
IP: 1.1.2.13
1. https://github.com/lyft/cni-ipvlan-vpc-k8s
Node Death Problem
Manual intervention is required for
StatefulSet


kubectl delete <plv-name>
Scale Down
Evacuate partitions *before* delete
Upgrades
Health Check For Rolling Upgrade
Check URP
Watch jmx agent utilization
RollingUpgrade by AZ
Ideal:
Upgrade one AZ at a time
Requires creating a custom controller
Immutable Infrastructure Upgrade
Active Kubelet: 30 days old Active Kubelet: 30 days old
POD A POD B
POD C POD D
POD E POD F
POD G POD H
Immutable Infrastructure Upgrade
Active Kubelet: 30 days old Active Kubelet: 30 days old
POD A POD B
POD C POD D
POD E POD F
POD G POD H
New Kubelet: 0 days old
Immutable Infrastructure Upgrade
Deleting Kubelet: 30 days
old
Active Kubelet: 30 days old
POD E POD F
POD G POD H
Active Kubelet: 0 days old
POD A POD B
POD C POD D
Immutable Infrastructure Upgrade
Deleting Kubelet: 30 days
old
Active Kubelet: 30 days old
POD E POD F
POD G POD H
Active Kubelet: 0 days old
POD A POD B
POD C POD D
Immutable Infrastructure Upgrade
Active Kubelet: 30 days old
POD E POD F
POD G POD H
Active Kubelet: 0 days old
POD A POD B
POD C POD D
New Kubelet: 0 days old
Immutable Infrastructure Upgrade
Deleting Kubelet: 30 days
old
POD E POD F
POD G POD H
Active Kubelet: 0 days old
POD A POD B
POD C POD D
New Kubelet: 0 days old
Immutable Infrastructure Upgrade
POD E POD F
POD G POD H
Active Kubelet: 0 days old
POD A POD B
POD C POD D
New Kubelet: 0 days old
Immutable Infrastructure Upgrade
Recall the problem with state transfer
Killed Broker 0 Active Broker 1
kafka-v2.3
Active Broker 2
kafka-v2.3
Updated Broker 0
kafka-v2.3
Wait up-to 24 hours for replication
Mutable Infrastructure Upgrade
Option 1: Do Rolling Reboots
Kubelet
Kafka Node 2
KubeletKubelet
Kafka Node 1 Kafka Node 3
SSH:
Upgrade and
Reboot
Mutable Infrastructure Upgrade
Option 1: Do Rolling Reboots
Kubelet
Kafka Node 2
KubeletKubelet
Kafka Node 1 Kafka Node 3
SSH: Wait for
URP == 0
Mutable Infrastructure Upgrade
Option 1: Do Rolling Reboots
Kubelet
Kafka Node 2
KubeletKubelet
Kafka Node 1 Kafka Node 3
SSH: Upgrade
and Reboot
Mutable Infrastructure Upgrade
Option 1: Do Rolling Reboots
Kubelet
Kafka Node 2
KubeletKubelet
Kafka Node 1 Kafka Node 3
SSH: Wait for
URP == 0
Mutable Infrastructure Upgrade
Option 2: Decentralized Rolling Reboots
Kubelet
Kafka Node 1
Zookeeper or
ETCD
# cron
1. Upgrade
2. If new
kernel -
invoke
restarter
Restarter
Kubelet
Kafka Node 2
# cron
1. Upgrade
2. If new
kernel -
invoke
restarter
Restarter
Kubelet
Kafka Node 3
# cron
1. Upgrade
2. If new
kernel -
invoke
restarter
Restarter
Take and wait
for locks
Mutable Infrastructure Upgrade
Option 2: Decentralized Rolling Reboots
Kubelet
Kafka Node 1
Zookeeper or
ETCD
# cron
1. Upgrade
2. If new
kernel -
invoke
restarter
Restarter
Kubelet
Kafka Node 2
# cron
1. Upgrade
2. If new
kernel -
invoke
restarter
Restarter
Kubelet
Kafka Node 3
# cron
1. Upgrade
2. If new
kernel -
invoke
restarter
Restarter
az-1 az-2 az-3
Restart one AZ or
“rack” at a time
Security
Encryption in Transit
Challenges:
TLS for clients to Kafka

Don’t use wild-card certs
MTLS for inter-broker communications
Don’t check your private certs into VCS
Encryption in Transit
KIAM w/ ACM-PCA
# On start:

keytool -genkeypair ...
keytool -certreq ...
aws acm-pca issue-certificate ...

aws acm-pca get-certificate ...

keytool -import ...
Kubelet
Client
Private-ca in truststore
KIAM
Agent
KIAM
Server
Fetch
AWS
ACM-PCA
AWS DNS-
Route53
External-
DNS
ENI
Kafka Node
1
TLS Connection
AWS
IAM Allow Kafka IAM
role
Encryption at Rest
On AWS:
Instance Store and EBS both offer
encryption
Encrypt before produce and decrypt on
consume
Conclusion
StatefulSets preferred, DaemonSet good back up option
Newer versions of Kubernetes support ephemeral disks better
Use AWS VPC Kubernetes CNI driver using IPvlan
With ephemeral disks, do mutable upgrades
Takeaways
Summary
K8s Adjustment Reliability Wins Monthly Cost Savings Per 100 nodes
Mutable Upgrades Increased availability+durability $4k
Ephemeral Volumes Improved tail latency $8k-$120k better than EBS
CNI driver using IPvlan Improved throughput+latency $0
Resolve Node Death Increased availability+durability $0
Rolling restarts by AZ in K8s
Remove need to intervene with StatefulSet on
node death
Publish comprehensive benchmarks
Other cloud provider benchmarks
Future Work
github.com/devtagare
Dev Tagare <dtagare@lyft.com>
linkedin.com/in/andrey-falko/
Thank You
Thank you!

More Related Content

What's hot

High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseAltinity Ltd
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkFlink Forward
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compactionMIJIN AN
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOI Goo Lee
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxNeoClova
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAltinity Ltd
 
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...confluent
 
Data Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectData Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectKaufman Ng
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Flink Forward
 
MirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael MaisonMirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael MaisonHostedbyConfluent
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafkaconfluent
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Victor Iglesias
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
 
GitOps A/B testing with Istio and Helm
GitOps A/B testing with Istio and HelmGitOps A/B testing with Istio and Helm
GitOps A/B testing with Istio and HelmWeaveworks
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017 Karan Singh
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in KubernetesRafał Leszko
 
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...confluent
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveTakanori Sejima
 

What's hot (20)

High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
 
TiDB Introduction
TiDB IntroductionTiDB Introduction
TiDB Introduction
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compaction
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIO
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdf
 
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
 
Data Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectData Pipelines with Kafka Connect
Data Pipelines with Kafka Connect
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
 
MirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael MaisonMirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael Maison
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafka
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
GitOps A/B testing with Istio and Helm
GitOps A/B testing with Istio and HelmGitOps A/B testing with Istio and Helm
GitOps A/B testing with Istio and Helm
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in Kubernetes
 
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
 

Similar to Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF 2019

Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsLightbend
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackBoden Russell
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupLaure Vergeron
 
Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introductionDongwon Kim
 
An Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery FundamentalsAn Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery FundamentalsAll Things Open
 
Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck   Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck Daliya Spasova
 
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaILMigrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaILNatan Silnitsky
 
PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...
PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...
PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...Equnix Business Solutions
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKel Cecil
 
Bitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesBitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesNathan Burrell
 
Containers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes LeoContainers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes LeoLéopold Gault
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsNarayanan Krishnamurthy
 
Data weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clustersData weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clustersChris Adkin
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discoveryDocker, Inc.
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetesTed Jung
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewLei (Harry) Zhang
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshoploodse
 
Nynog-K8s-networking-101.pptx
Nynog-K8s-networking-101.pptxNynog-K8s-networking-101.pptx
Nynog-K8s-networking-101.pptxDanielHertzberg4
 

Similar to Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF 2019 (20)

Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStack
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
 
Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introduction
 
An Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery FundamentalsAn Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery Fundamentals
 
Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck   Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck
 
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaILMigrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
 
PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...
PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...
PGConf.ASIA 2019 Bali - Building PostgreSQL as a Service with Kubernetes - Ta...
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Bitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesBitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by Kubernetes
 
Containers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes LeoContainers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes Leo
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes Applications
 
Data weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clustersData weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clusters
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discovery
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetes
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical View
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Nynog-K8s-networking-101.pptx
Nynog-K8s-networking-101.pptxNynog-K8s-networking-101.pptx
Nynog-K8s-networking-101.pptx
 

More from confluent

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 

More from confluent (20)

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 

Recently uploaded

Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 

Recently uploaded (20)

Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 

Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF 2019

  • 1. Agenda Easy Peasy, Right? Shared or Local Storage? DaemonSet Option StatefulSet Option Upgrades Security Conclusion
  • 3. Provisioning team vs. Kafka team Hi Kafka team, you’re using the old provisioning system. Please move Kafka to Kubernetes. We’d love to. How do we get started?
  • 4. Provisioning team vs. Kafka team Here’s an example of a app, just copy it. We got a problem, data keeps getting lost on each deploy. What do we do?
  • 5. Provisioning team vs. Kafka team Doesn’t Kafka have replication features?
  • 6. Provisioning team vs. Kafka team Mmmmmmmmmmmaaahhh! Yeh, but we’ve got terabytes of data to copy for each node, it’ll take days to do updates.
  • 7. Benefits Common Operating System provisioning system: Security upgrades Logs and metrics Containerization: Developer control of software dependencies Automated deploys Why Kubernetes?
  • 8. Kafka is a “reliability tool” Move data without lossiness High stakes usage Why Kafka?
  • 13. Deploy multiple brokers Restart one replica at a time Clients reconnect to new leaders Availability
  • 14. Restarted brokers pick up existing data Data must match broker id In case of volume loss, replicate to new volume Durability
  • 15. Use page cache as much as possible Low latency disks Low overhead network Latency and Throughput
  • 16. Shared or Local Storage?
  • 17. How much? 1GB/ sec ** Representative number for calculation sake. Not our actual load.
  • 20. How much? - With 3x replication 1 PB
  • 21. Options - AWS EBS vs. Instance Store
  • 22. EBS Option Monthly Cost for 1PB End-to-End Latency P99 Consume and Produce IO1 20k IOPS $372k 9ms IO1 10k IOPS $256k 11ms GP2 $111k 12ms ST1 $50k 22ms
  • 23. EBS Option Compute m5a.2xlarge 32GB of RAM $47k for 173 Nodes, 6TB each
  • 24. EBS Option Monthly Cost for 1PB with Compute End-to-End Latency P99 Consume and Produce IO1 20k IOPS $419k 9ms IO1 10k IOPS $303k 11ms GP2 $158k 12ms ST1 $97k 22ms
  • 25. EBS: Can we reduce replication? # Brokers Availability Prediction w/ EBS1 One 91.6% Two 99.82% Three 99.99% 1. https://bit.ly/2llzyFZ
  • 26. Instance Store Option d2.xlarge 2TB 2TB 2TB Also known as “Ephemeral Volumes”
  • 28. Instance Store: Looking better Monthly Cost for 1PB End-to-End Latency P99 Consume and Produce IO1 20k IOPS $419k 9ms IO1 10k IOPS $303k 11ms GP2 $158k 12ms ST1 $97k 22ms d2.xlarge $83k 14ms i3.4xlarge $241k 8ms
  • 29. Instance Store and K8s Not as easy as EBS Kafka container must re-schedule on same node Recycle broker ids
  • 30. Reschedule on same node Active Broker 0 Active Broker 1 Active Broker 2 Idle K8s Node
  • 31. Reschedule on same node Active Broker 0 kafka-v2.2 Active Broker 1 kafka-v2.2 Active Broker 2 kafka-v2.2 Idle K8s Node
  • 32. Reschedule on same node Active Broker 0 kafka-v2.2 Active Broker 1 kafka-v2.2 Active Broker 2 kafka-v2.2 Idle K8s Node
  • 33. Reschedule on same node Active Broker 0 kafka-v2.2 Active Broker 1 kafka-v2.2 Active Broker 2 kafka-v2.2 Active Broker 0 kafka-v2.3
  • 34. Reschedule on same node Idle K8s Node Active Broker 1 kafka-v2.2 Active Broker 2 kafka-v2.2 Active Broker 0 kafka-v2.3 Wait up-to 24 hours for replication
  • 35. Reschedule on same node Idle K8s Node Active Broker 1 kafka-v2.2 Active Broker 2 kafka-v2.2 Active Broker 0 kafka-v2.3
  • 36. Reschedule on same node Active Broker 1 kafka-v2.3 Active Broker 1 kafka-v2.2 Active Broker 2 kafka-v2.2 Active Broker 0 kafka-v2.3
  • 37. Reschedule on same node Active Broker 1 kafka-v2.3 Idle K8s Node Active Broker 2 kafka-v2.2 Active Broker 0 kafka-v2.3 Wait up-to 24 hours for replication
  • 38. Reschedule on same node Active Broker 1 kafka-v2.3 Idle K8s Node Active Broker 2 kafka-v2.2 Active Broker 0 kafka-v2.3 Wait up-to 24 hours for replication
  • 39. Several Solutions DaemonSet StatefulSet w/ PLV on K8s 1.14+ Local PVs using OpenEBS on K8s 1.12+ Local Path Provisioner on K8s 1.12+
  • 41. Kafka as a DaemonSet DaemonSet declares: Each broker is placed on every K8s node Static id assigned to K8s node Ids mounted into broker container Only Kafka scheduled on K8s cluster
  • 42. Kafka as a DaemonSet Terraform resource "aws_instance" "kubelet" { count = x … } 1 Kafka Id 1 Kafka Id 2 2 Kafka Id 3 3 Kubelet 1 Kubelet 2 Kubelet 3
  • 43. Kafka Network Architecture Client 1 Client 2 Kafka Node 1 Bootstrap Server - Load Balancer or Round-robin DNS Kafka Node 2 Kafka Node 3 Talk to node 1, 2, and 3 Talk to node 1, 2, and 3 Talk to node 1, 2, and 3
  • 44. Kubernetes Network w/ DaemonSet Kafka Id 1 Kafka Id 2 Kafka Id 3 Kubelet 1 Kubelet 2 Kubelet 3 HostPort: 9093 HostPort: 9093 HostPort: 9093 Client 1 Client 2 Load Balancer or Round-robin DNS hostNetwork: true
  • 46. Kafka as a StatefulSet StatefulSet declares: Kafka pod is pinned to specific local disk StatefulSet id follows broker Nodes labeled to have only Kafka
  • 47. Kafka as a StatefulSet Terraform resource "aws_autoscaling_group" "kubelet" { min-size = x } Kafka Id 1 Kubelet Stateful Set Id 1 Kafka Id 2 Kubelet Stateful Set Id 2 Kafka Id 3 Kubelet Stateful Set Id 3 Hot spare or other Pods Kubelet
  • 48. Kubernetes StatefulSet w/ kube-proxy Kafka Id 1 Kafka Id 2 Kafka Id 3 Kubelet 1 Kubelet 2 Kubelet 3 Client 1 Client 2 ClusterIP w/ Iptables kube-proxy ClusterIP w/ Iptables kube-proxy ClusterIP w/ Iptables kube-proxy
  • 49. Kubernetes Network: amazon-vpc-cni-k8s1 Kafka Id 1 Kafka Id 2 Kafka Id 3 Kubelet 1 Kubelet 2 Kubelet 3 Client 1 Client 2 ENI: eth0 Kafka Container IP: 1.1.2.11
 Kublet IP: 10.1.1.11 veth0 Kafka Container IP: 1.1.2.11 service.beta.kubernetes.io/aws-load-balancer-type: "nlb" ENI: eth0 Kafka Container IP: 1.1.2.12
 Kublet IP: 10.1.1.12 veth0 Kafka Container IP: 1.1.2.12 ENI: eth0 Kafka Container IP: 1.1.2.13
 Kublet IP: 10.1.1.13 veth0 Kafka Container IP: 1.1.2.13 1. https://github.com/aws/amazon-vpc-cni-k8s
  • 50. Kubernetes Network: cni-ipvlan-vpc-k8s1 Kafka Id 1 Kafka Id 2 Kafka Id 3 Kubelet 1 Kubelet 2 Kubelet 3 Client 1 Client 2 ENI: eth0 - mac: 01-23-45-67-89-11 Kafka Container IP: 1.1.2.11
 Kublet IP: 10.1.1.11 ipv1 - mac: 01-23-45-67-89-11 IP: 1.1.2.11 service.beta.kubernetes.io/aws-load-balancer-type: "nlb" ENI: eth0 - mac: 01-23-45-67-89-12 Kafka Container IP: 1.1.2.12
 Kublet IP: 10.1.1.12 ipv1 - mac: 01-23-45-67-89-12 IP: 1.1.2.12 ENI: eth0 - mac: 01-23-45-67-89-13 Kafka Container IP: 1.1.2.13
 Kublet IP: 10.1.1.13 ipv1 - mac: 01-23-45-67-89-13 IP: 1.1.2.13 1. https://github.com/lyft/cni-ipvlan-vpc-k8s
  • 51. Node Death Problem Manual intervention is required for StatefulSet 
 kubectl delete <plv-name>
  • 54. Health Check For Rolling Upgrade Check URP Watch jmx agent utilization
  • 55. RollingUpgrade by AZ Ideal: Upgrade one AZ at a time Requires creating a custom controller
  • 56. Immutable Infrastructure Upgrade Active Kubelet: 30 days old Active Kubelet: 30 days old POD A POD B POD C POD D POD E POD F POD G POD H
  • 57. Immutable Infrastructure Upgrade Active Kubelet: 30 days old Active Kubelet: 30 days old POD A POD B POD C POD D POD E POD F POD G POD H New Kubelet: 0 days old
  • 58. Immutable Infrastructure Upgrade Deleting Kubelet: 30 days old Active Kubelet: 30 days old POD E POD F POD G POD H Active Kubelet: 0 days old POD A POD B POD C POD D
  • 59. Immutable Infrastructure Upgrade Deleting Kubelet: 30 days old Active Kubelet: 30 days old POD E POD F POD G POD H Active Kubelet: 0 days old POD A POD B POD C POD D
  • 60. Immutable Infrastructure Upgrade Active Kubelet: 30 days old POD E POD F POD G POD H Active Kubelet: 0 days old POD A POD B POD C POD D New Kubelet: 0 days old
  • 61. Immutable Infrastructure Upgrade Deleting Kubelet: 30 days old POD E POD F POD G POD H Active Kubelet: 0 days old POD A POD B POD C POD D New Kubelet: 0 days old
  • 62. Immutable Infrastructure Upgrade POD E POD F POD G POD H Active Kubelet: 0 days old POD A POD B POD C POD D New Kubelet: 0 days old
  • 63. Immutable Infrastructure Upgrade Recall the problem with state transfer Killed Broker 0 Active Broker 1 kafka-v2.3 Active Broker 2 kafka-v2.3 Updated Broker 0 kafka-v2.3 Wait up-to 24 hours for replication
  • 64. Mutable Infrastructure Upgrade Option 1: Do Rolling Reboots Kubelet Kafka Node 2 KubeletKubelet Kafka Node 1 Kafka Node 3 SSH: Upgrade and Reboot
  • 65. Mutable Infrastructure Upgrade Option 1: Do Rolling Reboots Kubelet Kafka Node 2 KubeletKubelet Kafka Node 1 Kafka Node 3 SSH: Wait for URP == 0
  • 66. Mutable Infrastructure Upgrade Option 1: Do Rolling Reboots Kubelet Kafka Node 2 KubeletKubelet Kafka Node 1 Kafka Node 3 SSH: Upgrade and Reboot
  • 67. Mutable Infrastructure Upgrade Option 1: Do Rolling Reboots Kubelet Kafka Node 2 KubeletKubelet Kafka Node 1 Kafka Node 3 SSH: Wait for URP == 0
  • 68. Mutable Infrastructure Upgrade Option 2: Decentralized Rolling Reboots Kubelet Kafka Node 1 Zookeeper or ETCD # cron 1. Upgrade 2. If new kernel - invoke restarter Restarter Kubelet Kafka Node 2 # cron 1. Upgrade 2. If new kernel - invoke restarter Restarter Kubelet Kafka Node 3 # cron 1. Upgrade 2. If new kernel - invoke restarter Restarter Take and wait for locks
  • 69. Mutable Infrastructure Upgrade Option 2: Decentralized Rolling Reboots Kubelet Kafka Node 1 Zookeeper or ETCD # cron 1. Upgrade 2. If new kernel - invoke restarter Restarter Kubelet Kafka Node 2 # cron 1. Upgrade 2. If new kernel - invoke restarter Restarter Kubelet Kafka Node 3 # cron 1. Upgrade 2. If new kernel - invoke restarter Restarter az-1 az-2 az-3 Restart one AZ or “rack” at a time
  • 71. Encryption in Transit Challenges: TLS for clients to Kafka
 Don’t use wild-card certs MTLS for inter-broker communications Don’t check your private certs into VCS
  • 72. Encryption in Transit KIAM w/ ACM-PCA # On start:
 keytool -genkeypair ... keytool -certreq ... aws acm-pca issue-certificate ...
 aws acm-pca get-certificate ...
 keytool -import ... Kubelet Client Private-ca in truststore KIAM Agent KIAM Server Fetch AWS ACM-PCA AWS DNS- Route53 External- DNS ENI Kafka Node 1 TLS Connection AWS IAM Allow Kafka IAM role
  • 73. Encryption at Rest On AWS: Instance Store and EBS both offer encryption Encrypt before produce and decrypt on consume
  • 75. StatefulSets preferred, DaemonSet good back up option Newer versions of Kubernetes support ephemeral disks better Use AWS VPC Kubernetes CNI driver using IPvlan With ephemeral disks, do mutable upgrades Takeaways
  • 76. Summary K8s Adjustment Reliability Wins Monthly Cost Savings Per 100 nodes Mutable Upgrades Increased availability+durability $4k Ephemeral Volumes Improved tail latency $8k-$120k better than EBS CNI driver using IPvlan Improved throughput+latency $0 Resolve Node Death Increased availability+durability $0
  • 77. Rolling restarts by AZ in K8s Remove need to intervene with StatefulSet on node death Publish comprehensive benchmarks Other cloud provider benchmarks Future Work