α αααΆαα ααααααα αα αααα»αα’αααααααα Banzai Cloud α αααααααα§ααΆα αααα’αααΈαααααααα§αααααααααΆαααααα½αααααααΆα’αΆα ααααΌαααΆαααααΎααΎααααΈααααΎα±αα Kafka ααΆααααα½αααααΎαα αααα»α Kubernetes α ααΆαααααΆαααΆαααααααααα αΆαααΈαααααααα’αααα’αΆα αααααααα αααααα’αααααΎαααα αααααΆαα ααΆααααααααααααα’ααα αα·αααααααα ααΆαααααααα Kafka αααα½αααΆααΎααααΈαααααα ααΆαααΌαααα αΌααααααααΌαααΆαα
Apache Kafka ααΊααΆαααα·ααΆααααααΈαα
ααα
αΆααααααΆαααααααΎαααααααααααααΆαααΆααααααααΆααΆααααααααααα’αΆα
αα»αα
α·αααααΆα ααααΎααΆαααααααΆα αα·αααααΎαααΆααααααα αααααααΆααα½αα±ααα
αΆααα’αΆααααααααααααΆα’αΆα
ααααΌαααΆααααααΈααααααααΎ Kubernetes α αααααΆααααΏααααααΎαααΆααααααΎα
ααΆααααα Supertubes αααα»ααααα»αααααα’αααα
curl https://getsupertubes.sh | sh ΠΈ supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>
α¬ααααΆαααααα
α―αααΆα . α’αααααα’αΆα α’αΆαα’αααΈαααααααΆααα½αα ααα½ααααα Kafka αααααΆααΆαααΆααααααααΎαααΆααααααααααααααααα·αααααααΎ Supertubes αα·α Kafka operatorα ααΎαααΆααααααα’αααΈαα½ααααα½α α αΎααα ααΎαααααα
α’αΌβαα! ααααα·ααααα·αα Kafka αα½ααααααααααααααΆαα Kubernetes ;αααα½ααα·αα·ααα αα·αααααΎαααΆα Kafka αααααα’ααααΎαααααΆαα Prometheus ;Kafka rack ααΆααααααΉααα ααΎ Kubernetes ;αααα»αααααΎαααΆα Apache Kafka ααΎ Istio - ααα ;α’αααααααΎααααΆααααΆααααααααααΆαα αα·αα αΌαααααΎα ααααααααααΆααααααααααααΆαα½αααααα·ααααα·αα Kafka ;ααΆαααααΎα±αααααααΎαααΆααα·α Kafka αα·αααΆαααααααα ααΆααααααααααΆααααααα ααΎ Kubernetes ;ααααααα·ααΈααΆααααααα·ααααααΆαα Kafka, meshed .
αα αααα’ααααααααα α α·αααααΆαααααααΆα Kafka cluster αα ααΎ Kubernetes α’αααααααααΆααΉαααααααα»αααΉααααα αΆααααααααα»αααΆααααααααα αααααα’αααααΎαααα αααααΆαα ααΆααααααααααΌαααααΆα αα·ααααααΌαααΆααααα»αααΆαααααααα½αααΆαααααααα ααΆαααααααα Kafka ααααα’αααα±ααααΆαααα’ ααΎααααΈαααααααΆααααααΌαααΆαααααααΎαααΆαα ααααΎαααΆαα’αα·ααααΆαααααααα½ααααααΆαααΈαα½ααααααΌαααΆαααααααααααααΎαααΆααααααΆαααΆαα»α αααααΆαα ααΆααααααααααΌαααααΆα ααΌα ααΆα’αααα αα αΆα αα½αααααΆα ααααΏαααΈα ααααα·ααααααΌααααααΆαααΆααΎαα
ααΆαα§ααααααα· ααΆαααααααα ααΆαααααααααααααααα½ααααααΆααα½αααααΆαααΌα αααααΆαα»α αααααΆαα ααΆααααααααααΆααα’ααααααΌαααΆαααααΎααΎααααΈαααααααΆαα’αα·ααααΆαααααα½αααα ααααααΆαααΆααααααα αααα»αααΈαα·ααα·αααΆααααα ααααααΊαααα»αααααΆαααΆααα ααΆααααααΆα’αααααααΎααααΆααααΉαααααααα ααΆαααααααααααα½ααααααΆαααΎααααΈαααααΎαααΆαααααΎααααΆαααααΆαααΆααα½α α¬ααΈα (ααΆα α’αααα αα αΆα α¬αα½αααααΆα)α αα·ααΆαααΆααΌαα αααα½ααααααΆααααα αΆαααααα·ααααα·ααΆαα’αα·ααααΆαα ααααααααΆαααααααα ααΆααααααααααααααΆα’αα»ααααΆαα±ααααααΎαααΆαααΆαα»ααΊααααα»ααααα»αααααα·ααααααααααα»αα αα·ααΈαααααΎαα’αΆα ααα½αααΆααααα·αααα»αααααααα»αααααααα½ααααααΆαααααΆααα’αΆα αααααααΆαααΆαα
ααΆαααααΉααααΈ ααΎαααα’αΆα αααΆαααααααΆαα ααα½ααααα½ααααααΆααααααααΌαααΆαααΎααααΈαααααααΆαααααα»ααααααΆααααααα±ααα ααααααΆαααΆααααα αα αααα»αααΆαα’αα»ααααααΆααααααΎαααααΆαααααααα ααΆααααααααααΆα αααΎααα ααααα·αααααααααααΆ αααααΆααΆααΆαααααΆαααααΆααααΆαα (ααααα·αααΎαα·αα’αΆα αα αα½α ) ααΎααααΈααΆααααααααΆαα’αα»αααααααααΆαα»ααααααΆαααααααα ααΆααααααααααΆααααΆααααΆαα½αα αααααΆααα·αααα ααΆααΆααΆαααααΆαααααΆααααΆαααααα»αααΆααααα ααααααΆαααααααα ααΆαααααααααααααα’ααααΎααΆαα’αα»αααααααααΆααααααα±αααα½αα ααα½αα
αααααΆααα’αααααααΎααααΆαα Supertubes ααΆααααααΆααΎααααααΆαααααα·ααΈααΆαααααααΌα ααΆααααααα ααΎαα αΆααααααΎαααΆαα½αααΉαααΆαααααααα ααΆαααααααααα½αα ααα½α (α αααααΆαα ααΆαααααααα + ααΆαααααα) αααααΆααααααΆαααααααααααΎαααΆαααααααΆ αααααααΌαααΆαααααααααα½ααααααΆα αα·αααααΎαααΆααααααααα ααΆααΎαα‘αΎααα αΌαααααααΆαααΆαα»ααΊααααα»αααα αααααΆαα ααΆααααααααααααΌαααΆαααααΎααααΆααααααααα
αα αααα»ααα·ααΈααα ααΎαααα½αααΆααααα·αααΆααααα αααΆααα’αααΈα ααα½ααααα½ααααααΆααα½ααααα»ααααααααΌαααΆαααΎααααΈαααααααΆαααααα»αααΆααααΆαααα½α (α ααα½ααααα½ααααααΆαααα’αΆαααααααΎαααααΆααααααααααααα ααΌα ααΆα ααα½αα’αααααααΆααααΆαα ααααααΆα ααΎααααΈααΆααΆααΆαααα α ααα½αααΆαααΆαα α’αααααΉαααΆαααΆααΎα) α ααΎαααΈααα ααΎαααα½αααΆαααΆααααααΉαα’αααΈαααΆαααΆαα»α αααααΆαα ααΆαααααααααααααΆαααΆαααΆαααααΎααΆαααααααΆααααααα
α’ααααααααααΉααα·ααΆαα’αααΈααα αΆααααααΎαααααΎααΎααααΈααα½αααΆαα
αααΎααααα»αααΈαααΆαααΆαα»ααΊααααα»ααααα»αααΆαααααααα
ααΆααααααααααααΌα αα·αααΆαααααααααα αΌαααα
ααααα Kafka α ααΆαβαααααβαα
ααΆααααααααβαααβαααααβαααααΌαβα±ααβααΆαβαααα½αβαααααΆαβαααΆαβα αα
βααΆααβααΈβααΆααβαααβαααα»αβααα (min.insync.replicas=3
) ααααΌαααΆαα
ααα
αΆααα
ααΌααΆαααααααααΆαααΆααααα½αα
ααα½αααΈαααααααααΆα ααΎααααΈααααααα
ααΆαααααααα ααααΎααΆαααααααΆα αα·ααααα½ααα·αα·αααα αααααΆαα
ααΆαααααααα Kubernetes ααΎαααααΎαααα·ααΆααααααααααα»αααΊαααααααΆαααααα½αααααααΎααααααΆαααααα
αααα»α -
αααα·αααΎα αααααΆαα ααΆααααααααα ααααα Kafka αα·αααΆαααααααα ααΆαααααααα
αααααΆααα§ααΆα αααααΆαααααα ααΎαααΆαααααΎαααΎα AWS ααΆα’ααααααααααααΆααα αα·α EKS ααΆααΆαα
ααα
αΆα Kubernetes α ααΆαααααααα
ααΆααααααααααααααααααΆα’αΆα
ααααΌαααΆαα’αα»αααααααααααΎ
ααΆα
αααα»αα αα»α Amazon αααααααΌαααααααααααΆ
ααααααα§ααΆα ααα
ααΆαα’αα»αααααααα Kafka ααΊααΉαααα’αααααΆαααααΆαααα
ααΎααααΆαααααααΆαααααααααααααααααααααααα·ααααα·ααΆα ααΌα
ααααααΎαααααΌαααΆαααααα»αααααΆαα’αααα
αα
αΆααααααααααΆαααααααΆαααααα½ααααααΆα (JVM) αα·αααααΆαααααααΆαααααααα α§ c5.2x αα - ααΆαα
αΆααααααΎαααααα’αααααααΆααΆαα’αααα
αα
αΆα 16 GB αα·α
αααααΆα
ααα αΌααααααααΆαααααΌαααααΆαααα αααααααααΎαααααααααα ααΉαααααΎαααΆααααα VM instance αα·α disk ααΎαα·αααΌα αααααααααααΆαααΉαααΆααααα αΆα αααα»αααααΈααααααΎαα ααα»α αααααΆαααααααΆα c5.4x αα ααΆααααααααΏααα αΌαααα 10 Gb/s ααααααααααΆα I/O ααΆαααα VM instance α
ααΆαααΆαααααααΆααααα½ααααααΆα
αααα½ααααααΆααα½αααααααΌαααΆαααΆααα±ααααααΎααααΆαα (ααΆααααααααααα αααα»α Kubernetes) αα ααΉαααααΆααααααα·αααααααΉααααααααΎααααΈαααααΆαααΆαααααα½αααααααααΆαα½αααΉαααααΎαααΆααααααααααααααΆαα CPU, memory, network, and disk resourcesα
αααα Java
αααααΎαα‘αΌααΈααααΊ Java 11 αααααααΆααααΌαααααΆααΆαα½α Docker αααα»ααααααΆ JVM ααααααααΆαααααΉαααααΌαααΌα processors αα·α memory αααααΆααα
αααα»ααα»αααΊαααααααααα½ααααααΆααααα»αααααΎαααΆαα αααααΉαααΆααααααααααααααααΎαααΆαααΆαααΆααααααΆαα JVM αααααα
ααα½ααααααααα‘αΆα GC αα·ααααααααα‘αΆα JIT αααααααααααααΆααΆαα ααΎαααΆαααααΎααΌαααΆα Kafka banzaicloud/kafka:2.13-2.4.0
ααααα½ααααα
αΌα Kafka αααα 2.4.0 (Scala 2.13) αα
ααΎ Java 11 α
ααααα·αααΎα’αααα ααααααααααααααααα’αααΈ Java/JVM αα ααΎ Kubernetes ααΌααα·αα·αααααΎαααΆααααα ααααΆααααααααααααΎαα
ααΆαααααααααααΌααΈαααααααα½ααααααΆα
ααΆααα·αααααΆαααααΆααααΈααααα»αααΆαααααααα
ααΆααααααααα’αααα
αα
αΆααααα½ααααααΆαα ααΆαααααααααααΆαα JVM αα·ααααααΆαααα Kubernetes α ααααααααα’αααα
αα
αΆααααααΆαααααααααααΆααααααααΌαααααααΆαααα αα’αα·ααααΆ ααΌα
αααα JVM ααΆααααααααααααΆαα Java metaspace ααααααα·ααα
αααα»αα’αααα
αα
αΆαααααααΆααααΆαα αα·ααααααΆααααααΆαααααααΆαααααααααααααααααααα·ααααα·ααΆαααα Kafka ααααΎαααΆααααααα αα
αααα»αααΆαααααΎαααααααααααΎαααΎαααΆαααΎαααααΎαααΆααααα½ααααααΆα Kafka ααΆαα½αααΉααααΆαααΆαααααα -Xmx4G -Xms2G
α αΎαααααααααααααΆαα
αα
αΆααααααΆααααααΊ 10 Gi
. ααΌαα
αααΆαααΆααΆααααααα’αααα
αα
αΆααααααΆαα JVM α’αΆα
ααα½αααΆααααααααααααααααα·αααααααΎ -XX:MaxRAMPercentage
ΠΈ -X:MinRAMPercentage
αααααα’ααααΎααααααααααααΆαα
αα
αΆααααααΆααααα
ααΆααααααααααΎαααΆααααααααα½ααααααΆα
αα·ααΆαααΆααΌαα
α’αααα’αΆα
ααααΎα±αααααααΎαα‘αΎαααΌαααΆαα’αα»αααααααααΆααααααΎαααΆαααααααααΆαααααΆααααααΎαα
ααα½ααααααααα‘αΆααααααααΎααα Kafka α ααααΎαααΆαααΆααααα
αααΎααααααΆααααααΆαα Kafka ααΆαααααααααΎαα αα
αααα»αααΆαααααΎαααααααααααΎα ααΎαααΆαα
αΆααααααΎαααΆαα½αααΉααααααααααα 6 processors α αΎαααααα·α
ααααα (ααΆααααααΆαααααΎααααααα) ααΆααααααΎαα
ααα½ααααααα½αααααα 15α ααΎαααΈααα ααΎαααααα num.network.threads=12
αα
αααα»αααΆαααααααααα½ααααααΆα ααΎααααΈαααααΎαα
ααα½ααααααααα‘αΆααααααα½ααα·ααααααααΈαααααΆα α αΎααααααΌαααΆα αααβααΉαβααααΆααβααΆβαααα½αβαααααΆαβαααβααΆαβαα·αβα’αΆα
βααα½αβααΆαβα
ααααβααΆαβααΏαβαααααααααΆααβαααβαα½αααβααΆαβααΎαβα‘αΎα num.replica.fetchers
ααα 4 ααΎααααΈαααααΎαααααΏαααααααα½ααααααΆαα
ααααααΆαααΈα’αααααΉαααΆαα
αααα»αα§ααααααααααΎα
α’ααααα½αααααΆααΆααΆαααΆαααΈαααααΎααααα»ααααααΆαααααΎαααΎααα·αα’αααααααααΆα αα»αααααααα ααααα Kafka (ααααααα»αααααΌαααΆααααααΆαα) ααΆααααααΆααααα»αα’αα·ααααΆααααααΆα αααααΆααα·αααα ααΆα αΆαααΆα ααααα»αααΆαααααΎααΆαααΆαααααααααα’αααΈαααααααΆαααααα§ααααααααααΎαααααα»α α αΎαααααΎαααΎαααααααα§ααΆα ααααααααΆααααΆααΆαα½αααΉαα ααα½α processor αα·αα’αααα αα αΆααααααααααΆααα αααα»αααααΈααα α§αααααααααααΎαααΉαααα·αααααα»αα αααΎαααΆαα ααααα Kafka α’αΆα αααααααΆαααΆαα αααααΆααααΈααΆααα·αααααααΆα αααΎα ααΎαααΆααααααααΆαααΎα αααΆααα ααααα ααα½αααΈ c5.4x αααααααΈαα½ααααΆααααΆαααΈαααααΎααααα»αααααΎαααΆαα
ααΆαααΆαααα·αααα»
ααΆαααΆαααααααΆαα’αα»ααααααΊααΆααααΎαααΆααααααααααα½αααΆαααααΆααααΆαααΌα ααΆααααααα
- ααΆααααα αα αααααΆαα ααΆαααααααα (α ααααα EKS, α ααααα Kafka, α§ααααααααααΎαααααα»α ααααΌα ααΆ Prometheus αα·α Grafana);
- αααααΎαααααα»ααααααΆααααααααααΆααααΆαααα½α ααΎααααΈαααααααααΆαα ααααααα αααα»αααΌα ααΆααααΆαα’αα»αααααααααΆααααααΌαα
- ααΆααααααααΌαα αααααΆαα ααΆαααααααα αα·αααΆαααααααα ααΆαααααααααααααααα½ααααααΆααααααα’ααααΎααΌα ααΆααααΆαα’αα»αααααααααΆαα’αααααα
- ααααΎαααΆαααααααααα αΌααααααααα·ααααααααΌαααΆαααααα αΌαα ααααα Kafka ααααΌαααΆααααααα α αααα»ααααααΆαα½αααααΆααα ααΆααααΌαααα’αΆα ααα·αα‘αΎααα·αααΆαααΆααααΆαα αα·ααααα αΆαααΈααΆααααααααα½ααα·α αα½α αααα»ααααα»αααΆααααααΌαα
ααααααααααΆαααα·αααααΆα’αααΈααα αΆααααααααΌαααΆαα’αα»ααααααα‘α»ααααααααΎαααΆαααααααα·αααα»αααα»αααΆαααααα
α§ααααα
α§αααααααΆααααααααααΌαααΆαααααΎααΎααααΈααΆαααααααΆαααΆαααααααα ααΆααααααααααΌαααααΆααααΆαααΆαααα αα αααααΎαααααα»α αα·αααΆαααααααΆαα’αα»ααααα
-
Banzai Cloud Pipeline αααααΆααααΆααααα α EKS cluster ααΈ Amazon cPrometheus (ααΎααααΈαααααΌα Kafka αα·αααΆαααααααΆαα αααααΆαα ααΆαααααααα) αα·αα αααααααΆααΆ (ααΎααααΈαααααααΎαααααααααΆααααα) α ααΎαααΆαααΆααααααααααα αα½ααααα αΌαααααΆ Π²ααααααααα αΌα ααααΆααααααααααααααΌαααΆααααα½ααα·αα·ααααα ααααα ααΆααααααΌααααααα ααα»αααααΆα ααΆααααααααΆαααΆαααααααα ααΆαααααααααααααααα αααααΆα αα»ααααα·ααΆαααααα·ααα ααααΆα αα·αα αααΎααααα -
Sangrenel - α§ααααααααααΆαααααα»αααΆαααααα ααααα Kafka α - ααααΆααααααααααα Grafana αααααΆααααΆαααΎαααΎααααααα Kafka αα·αα αααααΆαα
ααΆααααααααα
Kubernetes Kafka ,α’αααααΆαα ααααααΆαα . - Supertubes CLI αααααΆαααα·ααΈααΆααααα½ααααα»ααααα»αααΆαααα‘αΎααααα»α Kafka αα
ααΎ Kubernetes α Zookeeper, Kafka operator, Envoy αα·ααααΆαααΆαααΆα
αααΎααααααααΌαααΆαααα‘αΎα αα·αααααααα
ααΆαααααααααααΆαααααΉαααααΌαααΎααααΈααααΎαααΆααααα»α Kafka αααααααααα½α
ααΆααααα
ααα·ααα
ααΎ Kubernetes α
- ααΎααααΈααα‘αΎα supertubes CLI ααααΎααΆαααααΆααααααΆααααααα±αα
αα ααΈααα .
- ααΎααααΈααα‘αΎα supertubes CLI ααααΎααΆαααααΆααααααΆααααααα±αα
α ααααα EKS
αααα αα ααααα EKS ααΆαα½αααΉαααααΆαααααααααα·ααα c5.4x αα αα αααα»αααααααααα’αΆα ααααΆαααααααααααΆαααααΆααααααΆαα½ααααα½ααααααΆα Kafka ααααΌα ααΆααααΆαααααα§αααα·ααααααΆαααααΆαααΈαααααΎααααα»α αα·αα αααααΆαα ααΆαααααααααααα½ααα·αα·αααα
banzai cluster create -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/cluster_eks_202001.json
αα
αααααα EKS cluster ααααΎαααΆαα αΎα ααΌαααΎαααΆααα½ααααα
αΌαααααααΆα
αααΆαααΆαα»αααααααααα Kafka
ααα‘αΎααααΆαααΆαα»αααααααα Kafka (Zookeeper, kafka-operator) αα αααα»α EKS αααααααΎ supertubes CLIα
supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>
α ααααα Kafka
ααΆαααααΆαααΎα EKS ααααΎααα·ααΆα EBS αααααααα gp2ααΌα αααα α’αααααααΌααααααΎαααααΆαααααα»αααΆα ααααα‘αα αααααα’ααααΎααΆα io1 αααααΆαααααα»α Kafkaα
kubectl create -f - <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
type: io1
iopsPerGB: "50"
fsType: ext4
volumeBindingMode: WaitForFirstConsumer
EOF
ααααααααΆαααΆαααααααααααΆαααααα½ααααααΆα min.insync.replicas=3
αα·αααΆαααααααΆα pods αααα½ααααααΆααα
ααΎααααΆαααα
αααα»αααααααααααΆαα
ααα½αααΈαααααααααΆα
supertubes cluster create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/kafka_202001_3brokers.yaml --wait --timeout 600
αααααΆααα
ααΎαααΆαααααΎαααΆαα§ααΆα ααααααΆαααΈαααααΎααααα»αα ααα½αααΈααααααααΆα αα½αααααααΆαααααααααα αααααΆααααααααααα½α αααααΊααΎαααααΌαααΆααααααΆαααααα»αα ααα½αααΈα
supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
name: perftest1
spec:
name: perftest1
partitions: 12
replicationFactor: 3
retention.ms: '28800000'
cleanup.policy: delete
EOF
supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
name: perftest2
spec:
name: perftest2
partitions: 12
replicationFactor: 3
retention.ms: '28800000'
cleanup.policy: delete
EOF
supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
name: perftest3
spec:
name: perftest3
partitions: 12
replicationFactor: 3
retention.ms: '28800000'
cleanup.policy: delete
EOF
αααααΆαααααααΆαααααΈαα½αα αααααΆα ααααααΊ 3 - αααααα’αααααααΆαααααΆαααααΆααααααΆααααααααααααα·ααααααααααΆαααααα·ααααααα
αααα»αα§ααααααααααΎα
ααΎαααΆαααΎαααααΎαααΆαα αααΆααα ααααα ααα½αααΈαααααΆαααΈαααααΎααααα»α (ααΈαα½ααααΆαααααααα αααα»ααααααΆαααααΆα ααααα‘αα) α αααααΆααααΆααααα»ααααααααααΆαααΈαααααΎα α’αααααααΌααααααααΆααααα·αααααααΆαααααααααΆαα ααΌα αααααα½αααΆααααΌαααΆααααααααααααα ααΎααααΆαααααααΆααααα αααααααΆαααα½αααΆααα»αααααα
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: loadtest
name: perf-load1
namespace: kafka
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: loadtest
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: loadtest
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: nodepool.banzaicloud.io/name
operator: In
values:
- loadgen
containers:
- args:
- -brokers=kafka-0:29092,kafka-1:29092,kafka-2:29092,kafka-3:29092
- -topic=perftest1
- -required-acks=all
- -message-size=512
- -workers=20
image: banzaicloud/perfload:0.1.0-blog
imagePullPolicy: Always
name: sangrenel
resources:
limits:
cpu: 2
memory: 1Gi
requests:
cpu: 2
memory: 1Gi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
α ααα»α αα½αα ααα½ααααααααΌαααααααααΆααα
- αααΆαααΈααααααΎαααααα»ααααααΎαααΆααααααΆααααααα 512 αα α αΎααααααααΆαααΆαα Kafka ααΆααΆα ααα 500 ααΆαα
- αααααααΎα’αΆαα»ααααα
-required-acks=all
ααΆαααααα»αααααααΆαααααΌαααΆαα αΆαααα»αααΆααα½αααΆααααααααα ααααααααΆαα ααααααΆααααααΆαααααΎααααΆαααααααΆααα’ααααααΌαααΆαααα½α αα·ααααααΆααααααααα½ααααααΆα Kafka α αααααΆααααααΆ αα αααα»αααΆααΆαααα ααΎαααΆαααΆαααα·αααααΉαααααααΏαααα’αααααΉαααΆαααα½αααΆαααα»ααααααα ααα»αααααααααΆααα’αααααΎαααΆααα½αααα ααααααΆααααααα αααααααααααΆαααααΎααααααααααΊαα·ααααααΎααααΈααΆααααααααααΏαα’αΆαααααα’αα·αα·αααααααα (α’αααααααΎααααΆαα) ααααΈααααααΆαααα½αααΆαααααα ααααΆααα αααα»αααααΆαααααααΆαααααααααααααααααααα·ααααα·ααΆα αα·αααΆαααααααααααααααΆααΆαα½αααΉαααααΏαα’αΆαααΆαααααααα»ααα ααΎααΆαα - αααΆαααΈαααααΎαααααΎαααΆα 20 ααααααααααααααΆ (
-workers=20
) αααααααα·αα½ααααΆαα’αααααα·α 5 ααΆαααααα αααααααααααΆαααααααααααααααααα ααΉααααα»α Kafka α ααΆαααααααααΆαααΈαααααΎαααΈαα½ααααΆαα’αααααα·α 100 ααΆαα α αΎααα½αααααΆααα’ααααααΎααΆααα ααΆααα ααααα Kafka α
ααΆαααΆααα»αααΆαααααα ααααα
ααα‘α»ααααααααΎααααααααα»αααααα»αααα ααααα Kafka ααΎαααααΆααααα½ααα·αα·ααααα»αααΆαααααααΆααααα ααΎααααΈααΆααΆααΆαα·αααΆαααΆαα αΆααααααΎα pod α‘αΎααα·α ααααΆαααΆαα ααααα ααααΈααΆαααααΎααααΆααααα αα·αααα αΌαα’αα·ααααΆααΆαα½αααΉαααΆααααααααα½ααα·α αα½α αααα»αα
- αααΆαααΈααααααΎαααααα»αααααααααα·αα·αααααααΆαα’αααΈα
ααα½αααΆααααααΆαααααα»ααα αα·αα’ααααΆααα α»αα α’ααααΆααα α»ααα½ααααα
αααα
0,00%
. -
αααα½αβαα·αα·αααβαααβααΎααα αααααΆαααααααΆαααα kafka-operator αααααααΌαααααΆααααααααααα αααααΎαααα’αΆα αααα½ααα·αα·αααααααΆαααΆαααα αααααααΆααααααα ααΎααααΈααΎαααααααααααααΎαsupertubes cluster cruisecontrol show -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file>
- ααααα·α ISR (α ααα½αααααΆαα αααα "αα αααα»αααααΆααααα") ααααα½α αα·ααααααΈαααΊααααΎααΉα 0 α
ααααααααΆααααα
3 αααα½ααααααΆα ααα αααΆα - 512 αα
ααΆαα½αααΉαααΆαααΆαα ααα αΆαααααΎαααααΆαα ααΌααΆαααααα½ααααααΆαα ααα½αααΈ ααΎαα’αΆα αααααα ααΆαααΌαααΆαα’αα»αααα ~ 500 Mb/s (αααα αα 990 ααΆααααΆααααα»ααα½ααα·ααΆααΈ):
ααΆαααααΎααααΆααα’αααα
αα
αΆααααααααΆαααΈααα·αααα·α JVM αα·αααΎαααΈ 2 GBα
ααα αΌαααααΈαααΆαααΆααααααααα·ααααααΌαα’αα·ααααΆ I/O node ααΎααααΈααΆααααΈααααααα½ααααααΆααααα»αααααΎαααΆαα
ααΈαα·ααααααααΎααΆαααααΎααααΆααα’αααα
αα
αΆααααααααΆαα ααΆααααΎααΆαααΆααΆαααααααα’αΆαααααααααααα αα·αααααΆαααααααΆααααΆααα ~ 10-15 GBα
3 αααα½ααααααΆα ααα αααΆα - 100 αα
αα ααααααααα αααΆαααα α»α ααα αΌαα αΌαααααΆααα α»ααααα αα 15-20%α αααααααΆαααααΆαα αααΆααααα»αααααΎαααΆαααΆαααΈαα½αααααααΆαααααααΆα ααΎαααΈααααααααΆααααα»ααααααα½αααααΆαααΆαααΎαα‘αΎαααααΎαααααααααα
αααααΆαααααΆαααααα½ααααααΆααα
ααααΆαααααΌαααααα·αααΆαααααΎ ααΆαα’αα»ααααα’αΆα
ααααΌαααΆααααααα’αααααΆαααααΆααααααΌαααΆαααααααα
ααΆαααααααα Kafka α ααααα·ααααααΆαα·α
αα
ααΆαααΆααααα½αααααα ααΌα
ααααααΎααααΈαααααΎαααΆααααααΌα ααΆααΆααΆααααααΎααααα»αααΆαααααΎααΆαααΆαα½αααΆαααααΆαα
4 αααα½ααααααΆα ααα αααΆα - 512 αα
α’αααα’αΆα αααααΎαααΆαα’αα»ααααααα ααααα Kafka ααΆααααΆαααΆααααα½ααααααααΆαααααααααααααα½ααααααΆαααααΈ αα·ααααααΆαα»αααααΆαααααΆαααΆα (αααααΆααΆααΆααααα»αααααΌαααΆαα ααα αΆαααααΎαααααΆαααΆααααα½ααααααΆα)α αααα»αααααΈααααααΎα αααααΆααααΈαααααααααα½ααααααΆα ααα αΌαααα αααααααΆαααΎαα‘αΎαααα ~580 Mb/s (~1,1 ααΆαααΆααααα»ααα½ααα·ααΆααΈ). ααααΎααααααΆααααααα ααΆαα·α ααΆαααΆαααααΉααα»α: αααααααΌαααΆαααααααααΆα αααααααα’αα»αααααΆαααααΆαααΆα (αα·αααααααα½ααααααΆαααΆααα’ααααααΎααΆααα ααααα·αααααΌααααααααααΆααααααα½ααααα)α
ααΆαααααΎααααΆααα’αααα
αα
αΆααααααααΆαααΈα JVM αα
ααααΆαααΆα 2 GBα
ααΆαααΆααααααααα½ααααααΆααααααΆαααααΆαααααΌαααΆααααααααααΆαααααα’αα»αααααΆαααααΆαααΆα:
ααΆαααααΎα
αα·ααΈααΆαααααααααααααααΆααααα αΆαααΆαααΎα’αΆα ααααΌαααΆααααααΈαααΎααααΈααααααααααααΎααααΆααΈαααΌαααα»αααααααΆαααααααααααααααΆαααααααααΉαα’αααααααΎααααΆααααΆααααααΆαα ααΆααααα ααα‘αΎααα·α ααΆαα’αΆααααααααα·α ααΆαα αΆααααααΎαααα‘αΎααα·αααα ααΆααα’αααααα’αα»ααααΆαα±ααααΎαααΆαααααααααααααααααααααααΆαααααα ααααα Kafka αααα»ααααααααααααααα αααααααΆαααΆααααΆαααα αααα»αααααα·ααααα·ααΆαααααααΆ αα·αααααααααα·ααΈααΎααααΈααααα»ααααααααΆααααΉααα½αααα
ααΎααα ααΆ Supertubes ααΎααααΈααΆαααααααΆαα ααααααααΆαααΆααααα½α αα·ααα αα ααααααα ααΆααααααααααΆ αααααα/αα»ααααα½ααααααΆα αα·ααααααΆααα ααααΎααααα ααΉαααΆαααΌαααααΉα αα·αααΆααΆααΆ Kafka ααΆααΌαα ααααΎαααΆαααΆαααααΉαααααΌααα ααΎ Kubernetes α ααααα ααααααΎαααΊααΎααααΈαα½αα’ααααααααααΎαα·α αα ααΆαα αααα ("αααααΎα" αα·α "ααααΎααααΆαα" ααΆα Kafka) α αΎααα»αααΆααα·αααααααΉααααααααΆααα’αααα Supertubes αα·αααααα·ααααα·αα Kafka α
ααααα·αααΎα’αααα
αΆααα’αΆααααααααΎαα
αα
αααα·ααααΆ Banzai Cloud αα·ααααααα Open Source ααΌαα
α»ααααααααΆαα½ααααα»αα αα»ααα
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
ααΏααα½αααΆαα½αααααα·ααααα·αα Redis αα αααα»α K8s αα·αααΆααα·αα·αααα‘αΎααα·αααααΆαααΌα α’αααΈα§αααααααααΎααααΆαααααααΆααααΆααα·ααΆααα·ααααααααΈααΌαααααΆααα·ααααααααα Β» - Β«
ααΆαααααΎα αααΆααααα»αααααααΌααα RabbitMQ αα Kubernetes Β» - Β«
zetcd ααΈ CoreOSα ααΆααααα½α ZooKeeper ααΆαα½αααΉα...etcd storage "α
ααααα: www.habr.com