ืืขืจื. ืชืจืืื: ืืืืืจ ืื, Banzai Cloud ืืืืง ืืืืื ืืืฆื ื ืืชื ืืืฉืชืืฉ ืืืืื ืืืืชืืืื ืืืฉืืช ืฉืื ืืื ืืืคืื ืืช ืงืคืงื ืืงื ืืืชืจ ืืฉืืืืฉ ืืชืื Kubernetes. ืืืืจืืืช ืืืืืช ืืืืืฉืืช ืืืฆื ืชืืื ืืงืืืข ืืช ืืืืื ืืืืคืืืืื ืฉื ืืชืฉืชืืช ืฉืื ืืืืืืืจ ืืช ืงืคืงื ืขืฆืื ืืื ืืืฉืื ืืช ืืชืคืืงื ืื ืืจืฉืช.
Apache Kafka ืืื ืคืืืคืืจืืช ืกืืจืืืื ื ืืืืืจืช ืืืฆืืจืช ืืขืจืืืช ืกืืจืืืื ื ืืืื ืืืช ืืืื ืืช, ื ืืชื ืืช ืืืจืืื ืืืขืืืช ืืืฆืืขืื ืืืืืื. ื ืืชื ืืืจืืื ืืช ืืืืืืืช ืืืจืฉืืืืช ืฉืื ืืืืฆืขืืช Kubernetes. ืืฉืืื ืื ืคืืชืื ื
ื ืกื ืืช Supertubes ืืืฉืืื ืฉืื:
curl https://getsupertubes.sh | sh ะธ supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>
ืื ืืืฆืืจ ืงืฉืจ
ืชืืขืื . ื ืืชื ืื ืืงืจืื ืขื ืืืง ืืืืืืืืช ืฉื ืงืคืงื, ืฉืืขืืืื ืืืชื ืืืืืืืืช ืืืืฆืขืืช Supertubes ืืืืคืจืืืจ ืงืคืงื. ืืืจ ืืชืื ื ืขืืืื ืืืืื:
ืืื ืื! ืขืื ืืคืขืื ืงืคืงื ืขืืืจ Kubernetes ;ืืคืงื ืืืืคืขืื ืืช ืงืคืงื ืขื ืืกืืก ืืืื ืคืจืืืชืืืก ;ืืืืขืืช ืืชืื ืงืคืงื ื-Kubernetes ;ืืคืขืืช ืืคืืฆ'ื ืงืคืงื ืขื ืืืกืืื - ืจืฃ ;ืืืืืช ืืฉืชืืฉ ืืืืฉื ืืืฉืืืืืช ืขื ืืคืขืื ืงืคืงื ;ืฉืืจืื ืืชืืืื ืฉื ืงืคืงื ืืชืฆืืจื ืืื ืืืช ื-Kubernetes ;ืืกื ื ืคืจืืืืงืื ืฉืืื ืืงืคืงื, ืืจืืฉืช .
ืืืฉืจ ืชืืืื ืืคืจืืก ืืฉืืื ืงืคืงื ื-Kubernetes, ืกืืืจ ืืื ืื ืฉืชืขืืื ืืคื ื ืืืชืืจ ืฉื ืงืืืขืช ืืืืื ืืืืคืืืืื ืฉื ืืชืฉืชืืช ืืืกืืกืืช ืืืฆืืจื ืืืืื ื ืขืืื ืืช ืชืฆืืจืช ืงืคืงื ืฉืื ืืื ืืขืืื ืืืจืืฉืืช ืืชืคืืงื. ืืืืฆืืขืื ืืืงืกืืืืืื ืฉื ืื ืืจืืงืจ ื ืงืืขืื ืขื ืคื ืืืืฆืืขืื ืฉื ืจืืืื ืืชืฉืชืืช ืืืกืืกืืื, ืืืื ืืืืจืื, ืืขืื, ืืืืจืืช ืืืกืง, ืจืืื ืคืก ืจืฉืช ืืื'.
ืืืืคื ืืืืืืื, ืชืฆืืจืช ืืืชืืื ืฆืจืืื ืืืืืช ืืื ืฉืื ืจืืืื ืืชืฉืชืืช ืืฉืืฉื ืืช ืืืืืืืช ืืืงืกืืืืืืช ืฉืืื. ืขื ืืืช, ืืืืื ืืืืืชืืื ืืืืจื ืื ืืืจืืืช ืืืื. ืกืืืจ ืืืชืจ ืฉืืฉืชืืฉืื ืืืืืจื ืืชืืืืื ืืื ืืืงืกื ืืช ืืฉืืืืฉ ืืจืืื ืืื ืื ืฉื ืืื (ืืืกืง, ืืืืจืื ืื ืืขืื). ืืืืคื ืืืื, ืืจืืงืจ ืืฆืื ืืืฆืืขืื ืืงืกืืืืืื ืืืฉืจ ืืชืฆืืจื ืฉืื ืืืคืฉืจืช ืืืฉืชืืฉ ืืจืืื ืืืืื ืืืืชืจ ืืืืืื. ืื ื ืืื ืืงืื ืืืฉื ืืก ืขื ืืขืืืก ืฉืืจืืงืจ ืืื ืืืื ืืืชืืืื ืืืชื.
ืชืืืืจืืืช, ืื ื ืืืืืื ืื ืืืขืจืื ืืช ืืกืคืจ ืืืชืืืืื ืื ืืจืฉืื ืืืืคืื ืืขืืืก ื ืชืื. ืขื ืืืช, ืืคืืขื ืืฉ ืื ืื ืืจืื ืืคืฉืจืืืืช ืชืฆืืจื ืืจืืืช ืฉืื ืืช ืฉืงืฉื ืืืื (ืื ืื ืืืชื ืืคืฉืจื) ืืืขืจืื ืืช ืืืืฆืืขืื ืืคืืื ืฆืืืืืื ืฉื ืชืฆืืจื ืืกืืืืช. ืืืืืื ืืืจืืช, ืงืฉื ืืืื ืืชืื ื ืชืฆืืจื ืืืืืกืกืช ืขื ืืืฆืืขืื ืืกืืืืื.
ืขืืืจ ืืฉืชืืฉื Supertubes, ืื ืื ื ืืืจื ืืื ื ืืงืืื ืืืืฉื ืืืื: ืื ืื ื ืืชืืืืื ืขื ืชืฆืืจื ืืืฉืื (ืชืฉืชืืช + ืืืืจืืช), ืืื ืืืืืื ืืช ืืืืฆืืขืื ืฉืื, ืืชืงื ืื ืืช ืืืืจืืช ืืืจืืงืจ ืืืืืจืื ืขื ืืชืืืื ืฉืื. ืื ืงืืจื ืขื ืฉืืจืืื ืืืืื ืืืืชืจ ืฉื ืืชืฉืชืืช ืื ืืฆื ืืืืืื.
ืืืจื ืื, ืื ื ืืงืืืื ืืืฉื ืืจืืจ ืืืชืจ ืืื ืืชืืืืื ืฆืจืื ืืฉืืื ืืื ืืืชืืืื ืขื ืขืืืก ืืกืืื (ืืกืคืจ ืืืชืืืืื ืชืืื ืื ืืืืจืืื ืืืจืื, ืืืื ืืืกืคืจ ืืืื ืืืื ืฉื ืืขืชืงื ืืืืขืืช ืืื ืืืืืื ืืืืฉืืช, ืืกืคืจ ืืืืืฆืืช ืื ืืืืื ืืื'). ืื ืืกืฃ, ืื ื ืืงืืืื ืชืืื ื ืืืื ืืืื ืจืืืื ืชืฉืชืืช ืืืจืฉืื ืงื ื ืืืื ืื ืื.
ืืืืจ ืื ืืืืจ ืขื ืืฆืขืืื ืฉืื ื ื ืืงืืื ืืื ืืืคืืง ืืช ืืืจื ืืืจืืืืื ืืืืืืื ืืืืชืจ ืืชืฆืืจืืช ืจืืฉืื ืืืช ืืืืืื ืืช ืืชืคืืงื ืฉื ืืฉืืื ืงืคืงื. ืชืฆืืจื ืขืืืื ืืืืชืจ ืืืจืฉืช ืืคืืืช ืฉืืืฉื ืืชืืืืื ืคืืขืืื (min.insync.replicas=3
), ืืืืคืฅ ืขื ืคื ื ืฉืืืฉื ืืืืจื ื ืืืฉืืช ืฉืื ืื. ืืื ืืืืืืจ, ืืืจืืื ืืื ืืจ ืืช ืชืฉืชืืช Kubernetes, ืื ื ืืฉืชืืฉืื ืืคืืืคืืจืืช ื ืืืื ืงืื ืืืื ืจืื ืืฉืื ื ืขืืืจ ืขื ื ืื ืืืืจืืืืื -
ืืืฉืืืช ืขื ืชืฉืชืืช ืืชืฆืืจืช ืืฉืืืืืช ืงืคืงื
ืขืืืจ ืืืืืืืืช ืฉืืืื, ืืืจื ื ื-AWS ืืกืคืงืืช ืืขื ื ืื-EKS ืืืคืฆืช Kubernetes. ื ืืชื ืืืืฉื ืชืฆืืจื ืืืื ืืืืฆืขืืช
ืืืกืง
ืืืืื ืืฆืืขื ืืืืื
ืกืืื ืืืคืขืื
ืืืืฆืืขืื ืฉื ืงืคืงื ืชืืืืื ืืืื ืืืืืื ืืขืืืืื ืฉื ืืขืจืืช ืืืคืขืื, ืื ืฉืื ื ืืงืืงืื ืืืืคืขืื ืขื ืืกืคืืง ืืืืจืื ืขืืืจ ืืืชืืืืื (JVM) ืืืืืื ืืขืืืืื. ืืืฉื c5.2x ืืืืืื - ืืชืืื ืืืื, ืืืืืื ืฉืืฉ ืื 16 ื'ืืื-ืืืื ืฉื ืืืืจืื ื
ืจืฉืช
ืชืคืืงืช ืืจืฉืช ืืืืืช ืืืืืช ืืืืื ืืกืคืืง ืืืฉืืืื ืืืืฆืืขืื ืฉื ืืืคืข ื-VM ืืืืืกืง, ืืืจืช ืืจืฉืช ืืืคืืช ืืฆืืืืจ ืืงืืืง. ืืืงืจื ืฉืื ื, ืืืฉืง ืืจืฉืช c5.4x ืืืืืื ืชืืื ืืืืืจืืืืช ืฉื ืขื 10 Gb/s, ืฉืืื ืืืื ืืฉืืขืืชืืช ืืชืคืืงืช ื-I/O ืฉื ืืืคืข VM.
ืคืจืืกืช ืืจืืงืจ
ืืฉ ืืคืจืืก ืืจืืงืจืื (ืืชืืืื ืื ื-Kubernetes) ืืฆืืชืื ืืืขืืืืื ืืื ืืืืื ืข ืืชืืจืืช ืขื ืชืืืืืื ืืืจืื ืขืืืจ ืืฉืืื ืืขืื, ืืืืจืื, ืจืฉืช ืืืืกืงืื.
ืืจืกืช Java
ืืืืืจื ืืืืืื ืืช ืืื Java 11 ืืืืืื ืฉืืื ืชืืืืช ื-Docker ืืืืื ืื ืฉื-JVM ืงืืืข ืืฆืืจื ื ืืื ื ืืช ืืืขืืืื ืืืืืืจืื ืืืืื ืื ืืงืื ืืืื ืจ ืื ืคืืขื ืืืจืืงืจ. ืืืืืขื ืฉืืืืืืช ื-CPU ืืฉืืืืช, ื-JVM ืืืืืจ ืืืืคื ืคื ืืื ืืฉืงืืฃ ืืช ืืกืคืจ ืืฉืจืฉืืจืื ืฉื GC ื-JIT. ืืฉืชืืฉื ื ืืชืืื ื ืฉื ืงืคืงื banzaicloud/kafka:2.13-2.4.0
, ืืืืื ืืช ืืจืกื 2.4.0 ืฉื Kafka (Scala 2.13) ื-Java 11.
ืื ืชืจืฆื ืืืืื ืขืื ืขื Java/JVM ื-Kubernetes, ืขืืื ืืคืืกืืื ืืืืื ืฉืื ื:
ืืืืจืืช ืืืืจืื ืืจืืงืจ
ืืฉื ื ืฉื ื ืืืืืื ืืจืืืืื ืืืืืจืช ืืืืจืื ืืืชืืื: ืืืืจืืช ืขืืืจ ื-JVM ืืขืืืจ ืืคืื Kubernetes. ืืืืืช ืืืืืจืื ืฉืืืืืจื ืขืืืจ ืคืื ืืืืืช ืืืืืช ืืืืื ืืืืื ืืขืจืืื ืืืงืกืืืืืช ืืื ืฉื-JVM ืืืื ืืงืื ืืืื-ืกืคืืืก ืฉื Java ืืฉืืื ืืืืืจืื ืฉืื ืืืืืืื ืืคื ืืขืจืืช ืืืคืขืื ืฉืื ืงืคืงื ืืฉืชืืฉ ืืืืคื ืคืขืื. ืืืืืงืืช ืฉืื ื ืืฉืงื ื ืืจืืงืจืื ืฉื ืงืคืงื ืขื ืคืจืืืจืื -Xmx4G -Xms2G
, ืืืืืืช ืืืืืจืื ืขืืืจ ืืคืื ืืืืชื 10 Gi
. ืฉืืื ืื ืฉื ืืชื ืืืฉืื ืืืืจืืช ืืืืจืื ืขืืืจ JVM ืืืืคื ืืืืืืื ืืืืฆืขืืช -XX:MaxRAMPercentage
ะธ -X:MinRAMPercentage
, ืืืชืืกืก ืขื ืืืืืช ืืืืืจืื ืขืืืจ ืืคืื.
ืืืืจืืช ืืขืื ืืจืืงืจ
ืืืืคื ืืืื, ืืชื ืืืื ืืฉืคืจ ืืช ืืืืฆืืขืื ืขื ืืื ืืืืืช ืืืงืืืืืืช ืขื ืืื ืืืืืช ืืกืคืจ ืืฉืจืฉืืจืื ืฉืืื ืืฉืชืืฉ ืงืคืงื. ืืื ืฉืืืชืจ ืืขืืืื ืืืื ืื ืขืืืจ ืงืคืงื, ืื ืืืื. ืืืืืงื ืฉืื ื ืืชืืื ื ืขื ืืืืื ืฉื 6 ืืขืืืื ืืืืืจืื (ืืืืฆืขืืช ืืืืจืฆืืืช) ืืขืืื ื ืืช ืืกืคืจื ื-15. ืื ืืกืฃ, ืงืืขื ื num.network.threads=12
ืืืืืจืืช ืืืจืืงืจ ืืื ืืืืืื ืืช ืืกืคืจ ืืฉืจืฉืืจืื ืฉืืงืืืื ื ืชืื ืื ืืืจืฉืช ืืฉืืืืื ืืืชื. ืืื ืืืื ืฉืืืจืืงืจืื ืืขืืงืืื ืื ืืืืืื ืืงืื ืืขืชืงืื ืืกืคืืง ืืืจ, ืื ืืขืื num.replica.fetchers
ื-4 ืืื ืืืืืืจ ืืช ืืืืืจืืช ืฉืื ืืจืืงืจืื ืขืืงืืื ืืฉืืคืืื ืืืืขืืช ืืื ืืืืื.
ืืื ืืืฆืืจืช ืขืืืกืื
ืขืืื ืืืืื ืฉืื ืจืืืจ ืืขืืืก ืื ืืืจ ืื ืืืืจ ืืืงืืืืืช ืืคื ื ืฉืืฉืืื ืงืคืงื (ืฉื ืืฆื ืืืืื) ืืืืข ืืขืืืก ืืืจืื ืฉืื. ืืืืืื ืืืจืืช, ืืฉ ืฆืืจื ืืืฆืข ืืขืจืื ืจืืฉืื ืืช ืฉื ืืืืืืืช ืฉื ืืื ืืฆืืจืช ืืขืืืก, ืืื ืืืืืจ ืขืืืจื ืกืืื ืืืคืขืื ืขื ืืกืคืจ ืืกืคืืง ืฉื ืืขืืืื ืืืืืจืื. ืืืงืจื ืื, ืืืื ืฉืื ื ืืคืืง ืืืชืจ ืขืืืก ืืื ืฉืืฉืืื ืงืคืงื ืืืื ืืขืืื ืื. ืืืืจ ื ืืกืืืื ืจืืื, ืืกืชืคืงื ื ืืฉืืืฉื ืขืืชืงืื c5.4x ืืืืืื, ืฉืืื ืืื ืืื ืืื ืื ืจืืืจ ืคืืขื.
Benchmarking
ืืืืืช ืืืฆืืขืื ืืื ืชืืืื ืืืืจืืืื ืืืืื ืืช ืืฉืืืื ืืืืื:
- ืืงืืช ืชืฉืชืืช (ืืฉืืื EKS, ืืฉืืื ืงืคืงื, ืืื ืืืฆืืจืช ืขืืืกืื ืืื ืคืจืืืชืืืก ืืืจืคืื ื);
- ืืฆืืจืช ืขืืืก ืืชืงืืคื ืืกืืืืช ืืื ืืกื ื ืกืืืืช ืืงืจืืืืช ืืืืืื ื ืืืืฆืืขืื ืฉื ืืกืคื;
- ืืชืืืช ืืชืฉืชืืช ืืืชืฆืืจื ืฉื ืืืจืืงืจ ืืืชืืกืก ืขื ืืืื ืืืฆืืขืื ื ืฆืคืื;
- ืืืจื ืขื ืืชืืืื ืขื ืืืฉืืช ืืจืื ืื ืืจืฉืช ืฉื ืชืคืืงืช ืืฉืืื ืงืคืงื. ืืื ืขื ืืืช, ืขืืื ืืืืืช ื ืืชื ืช ืืฉืืืืจ ืืืืคื ืขืงืื ืืืืคืืื ืฉืื ืืืื ืืื ืืืืืื ืืชืคืืงื.
ืืกืขืืฃ ืืื ืืชืืจ ืืช ืืฉืืืื ืฉืืืฆืขื ืืืืื ืชืืืื ืืฉืืืืช ืืฉืืื ืืืืืงื.
ืืื ืขืืืื
ืืืืื ืืืืื ืฉืืืฉื ืืคืจืืกื ืืืืจื ืฉื ืชืฆืืจืช ืืกืืก, ืืฆืืจืช ืขืืืกืื ืืืืืืช ืืืฆืืขืื:
-
Banzai Cloud Pipeline ืืืจืืื ืืฉืืื EKS ืืืืืื ืืคืจืืืชืืืก (ืืืกืืฃ ืืืื ืงืคืงื ืืชืฉืชืืืช) ืืืจืคื ื (ืืื ืืืืืื ืืช ืืืืืื ืืืื). ื ืืฆืื ื ืึฐืฉืืึผืึธื ะฒืฆืื ืืจ ืฉืืจืืชืื ืืืกืคืงืื ื ืืืืจ ืืืืื, ืืืกืืฃ ืืืื ืื ืืจืืื, ืกืจืืงืช ืคืืืขืืช, ืืชืืืฉืฉืืช ืืืกืื, ืืืืื ืืจืื ืืจืืื ืืช ืืขืื ืืขืื. -
ืกื ืืจื ื - ืืื ืืืืืงืช ืขืืืก ืฉื ืืฉืืื ืงืคืงื. - ืืืืืช ืืืืื ืื ืฉื Grafana ืืืืืฉืช ืืืื ืงืคืงื ืืชืฉืชืืช:
ืงืืืจื ืืก ืงืคืงื ,ืืฆืืื ืืช ืฆืืืช . - Supertubes CLI ืืืจื ืืงืื ืืืืชืจ ืืืืืืจ ืืฉืืื ืงืคืงื ื-Kubernetes. Zookeeper, ืืคืขืื Kafka, Envoy ืืจืืืืื ืจืืื ืืืจืื ืืืชืงื ืื ืืืืืืจืื ืืจืืื ืืืคืขืื ืืฉืืื ืงืคืงื ืืืื ืืืืฆืืจ ื-Kubernetes.
- ืืืชืงื ื supertubes CLI ืืฉืชืืฉ ืืืืจืืืช ืฉืกืืคืงื
ืืื .
- ืืืชืงื ื supertubes CLI ืืฉืชืืฉ ืืืืจืืืช ืฉืกืืคืงื
ืืฉืืื EKS
ืืื ืืฉืืื EKS ืขื ืฆืืชื ืขืืืืื ืืืขืืืืื c5.4x ืืืืืื ืืืืืจื ืืืื ืืช ืฉืื ืื ืืชืจืืืืื ืขื ืืชืืืืื ืฉื ืงืคืงื, ืืื ืื ืฆืืชืื ืืืขืืืืื ืืืืืื ืืขืืืกืื ืืชืฉืชืืช ืื ืืืืจ.
banzai cluster create -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/cluster_eks_202001.json
ืืืืจ ืฉืืฉืืื ื-EKS ืคืืขื, ืืคืขื ืืช ืืืฉืืื ืฉืื
ืจืืืื ืืขืจืืช ืงืคืงื
ืืชืงื ืืช ืจืืืื ืืขืจืืช ืงืคืงื (Zookeeper, ืงืคืงื-ืืคืขืื) ื-EKS ืืืืฆืขืืช supertubes CLI:
supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>
ืืฉืืื ืงืคืงื
ืืืจืืจืช ืืืื, EKS ืืฉืชืืฉ ืื ืคืื EBS ืืกืื gp2, ืื ืขืืื ืืืฆืืจ ืืืืงืช ืืืกืื ื ืคืจืืช ืืืืืกืกืช ืขื ื ืคืืื io1 ืขืืืจ ืืฉืืื ืงืคืงื:
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
ืืืคืจืืก ืชืจืืืืื ืฉื ืืจืืงืจืื ืขื ืฆืืชืื ืืฉืืืฉื ืืืืจื ืืืื ืืช ืฉืื ืื:
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 ืืชืื ืืืคืจืกื ืืืชื ืืงืคืงื ืืงืืืฆืืช ืฉื 500 ืืืืขืืช.
- ืฉืืืืฉ ืืืืขืื
-required-acks=all
ืืคืจืกืื ื ืืฉื ืืืฆืื ืืืฉืจ ืื ืืืขืชืงืื ืืืกืื ืืจื ืื ืฉื ืืืืืขื ืืชืงืืืื ืืืืืฉืจืื ืขื ืืื ืืชืืืืื ืฉื ืงืคืงื. ืืืฉืืขืืช ืืื ืฉืืืื ืืืืืื ืืืื ื ืื ืจืง ืืช ืืืืืจืืช ืฉื ืื ืืืืื ืฉืืงืืืื ืืืืขืืช, ืืื ืื ืืขืืงืืื ืฉืืื ืืฉืืคืืื ืืืืขืืช. ืืืจืช ืืืืงื ืื ืืื ื ืืืขืจืื ืืช ืืืืจืืช ืืงืจืืื ืฉื ืืฆืจืื (ืฆืจืื ืื) ืืืืจืื ื ืงืืืื ืืืืขืืช ืฉืขืืืื ื ืฉืืจื ืืงืืืฅ ืืฉืืืจ ืฉื ืืคื ืืขืจืืช ืืืคืขืื, ืืืฉืืืืชื ืืืืืจืืช ืืงืจืืื ืฉื ืืืืขืืช ืืืืืืกื ืืช ืืืืกืง. - ืืืืื ืืขืืืกืื ืืคืขืื 20 ืขืืืืื ืืืงืืื (
-workers=20
). ืื ืขืืื ืืืื 5 ืืคืืงืื ืืืืืงืื ืืช ืืงืฉืจ ืฉื ืืขืืื ืืืฉืืื ืงืคืงื. ืืชืืฆืื ืืื, ืืื ืืืืื ืืฉ 100 ืืคืืงืื, ืืืืื ืฉืืืืื ืืืืขืืช ืืืฉืืื ืงืคืงื.
ื ืืืืจ ืชืงืื ืืช ืืืฉืืื
ืืืืื ืืืืงืช ืขืืืก ืฉื ืืฉืืื ืงืคืงื, ื ืืืจื ื ืื ืขื ืชืงืื ืืชื ืืื ืืืืื ืฉืื ืืื ืืคืขืื ืืืืฉ ืฉื ืืคืื, ืืื ืืขืชืงืื ืื ืืกืื ืืจื ืื ืืชืคืืงื ืืงืกืืืืืช ืขื ืชื ืืืืช ืืื ืืืืืืช:
- ืืืืื ืืขืืืก ืืืชื ืกืืืืกืืืงืืช ืกืื ืืจืืืืช ืืืื ืืกืคืจ ืืืืืขืืช ืฉืคืืจืกืื ืืฉืืขืืจ ืืฉืืืืืช. ืฉืืขืืจ ืืฉืืืืืช ืฆืจืื ืืืืฉืืจ ืืื
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:
ืชืคืืงืช ืืืืกืง ืืืืขื ืืชืคืืงื ืืืงืกืืืืืช ืฉื ืฆืืืช ืงืื/ืคืื ืืื ืฉืืืฉืช ืืืืคืขืื ืฉืืื ืืืจืืงืจืื ืคืขืื:
ืืื ืชืื ืื ืขื ืฉืืืืฉ ืืืืืจืื ืขื ืืื ืฆืืชืื, ืขืืื ืื ืืืกืื ืืขืจืืช ืืืืกืื ืืืืืื ืืงื ~10-15 GB:
3 ืืชืืืืื, ืืืื ืืืืขื - 100 ืืชืื
ืืื ืฉืืืื ืืืืืขื ืคืืืช, ืืชืคืืงื ืืืจืืช ืื-15-20%: ืืืื ืืืืฉืงืข ืืขืืืื ืื ืืืืขื ืืฉืคืืข ืขืืื. ืื ืืกืฃ, ืขืืืก ืืืขืื ืืืขื ืืืืคื.
ืืืืืื ืฉืืฆืืชื ืืจืืงืจ ืขืืืื ืืฉ ืืืืืช ืฉืืื ื ืืฉืืืืฉ, ื ืืชื ืืฉืคืจ ืืช ืืืืฆืืขืื ืขื ืืื ืฉืื ืื ืชืฆืืจืช ืงืคืงื. ืื ืืฉืืื ืื ืคืฉืืื, ืืืื ืืื ืืืืืื ืืช ืืชืคืืงื ืขืืืฃ ืืขืืื ืขื ืืกืจืื ืืืืืื ืืืชืจ.
4 ืืชืืืืื, ืืืื ืืืืขื - 512 ืืชืื
ืืชื ืืืื ืืงืืืช ืืืืืื ืืช ืืืืฆืืขืื ืฉื ืืฉืืื ืงืคืงื ืคืฉืื ืขื ืืื ืืืกืคืช ืืชืืืืื ืืืฉืื ืืฉืืืจื ืขื ืืืืื ืืืืฆืืช (ืื ืืืืื ืฉืืขืืืก ืืชืืืง ืืืืคื ืฉืืื ืืื ืืืชืืืืื). ืืืงืจื ืฉืื ื, ืืืืจ ืืืกืคืช ืืชืืื, ืชืคืืงืช ืืืฉืืื ืืืื ื ~580 Mb/s (~1,1 ืืืืืื ืืืืขืืช ืืฉื ืืื). ืืฆืืืื ืืชืืจืจื ืืคืืืชื ืืืฆืคืื: ืื ืืืกืืจ ืืขืืงืจ ืืืืกืจ ืืืืืื ืฉื ืืืืืฆืืช (ืื ืื ืืืจืืงืจืื ืขืืืืื ืืฉืื ืืืืืืืช ืฉืืื).
ืฆืจืืืช ืืืืืจืื ืฉื ืืืื ืช ื-JVM ื ืืชืจื ืืชืืช ื-2 GB:
ืขืืืืชื ืฉื ืืชืืืืื ืขื ืืื ื ืื ืืืฉืคืขื ืืืืกืจ ืืืืืื ืฉื ืืืืืฆืืช:
ืืืฆืืื
ื ืืชื ืืืจืืื ืืช ืืืืฉื ืืืืืจืืืืืช ืฉืืืฆืื ืืขืื ืืื ืืืกืืช ืชืจืืืฉืื ืืืจืืืื ืืืชืจ ืืืืืืื ืืืืช ืฆืจืื ืื, ืืืืงื ืืืืฉ, ืขืืืื ืื ืืชืืืืืื, ืืคืขืื ืืืืฉ ืฉื ืืคืื ืืื'. ืื ืื ืืืคืฉืจ ืื ื ืืืขืจืื ืืช ืืืืืืช ืืืืืืืช ืฉื ืืฉืืื ืงืคืงื ืืชื ืืื ืฉืื ืื, ืืืืืช ืฆืืืืจื ืืงืืืง ืืืคืขืืชื ืืืืฆืื ืืจืืื ืืืืืื ืืื.
ืชืื ื ื ืืช Supertubes ืืื ืืคืจืืก ืงืืกืืจ ืืืืืจืืช ืืืงืืืช, ืืืืืืจ ืืืชื, ืืืืกืืฃ/ืืืกืืจ ืืชืืืืื ืื ืืฉืืื, ืืืืื ืืืชืจืืืช ืืืืืืื ืฉืงืคืงื ืืืื ืขืืื ืืจืืื ื-Kubernetes. ืืืืจื ืฉืื ื ืืื ืืขืืืจ ืืื ืืืชืจืื ืืืฉืืื ืืขืืงืจืืช ("ืืืฆืืจ" ื"ืืฆืจืื" ืืืืขืืช ืงืคืงื), ืืืืฉืืืจ ืืช ืื ืืขืืืื ืืงืฉื ืืกืืคืจืืืืืก ืืืืคืขืื ืงืคืงื.
ืื ืืชื ืืขืื ืืื ืืืื ืืืืืืืช Banzai Cloud ืืคืจืืืงืืื ืฉื ืงืื ืคืชืื, ืืืจืฉื ืืืืจื ืืืชืืืช
ื .ื ืืืืชืจืื
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
ืกืืคืืจ ืืื ืขื ืืคืขืื Redis ื-K8s ืืืื ื ืกืงืืจื ืฉื ืืื ืขืืจ ืื ืืชืื ื ืชืื ืื ืืืกื ื ืชืื ืื ืื "; - ยซ
ืืขืืจื ืืืงื ืฉื RabbitMQ ื-Kubernetes "; - ยซ
zetcd ื-CoreOS: ืืืืคืช ZooKeeper ืืืืกืื...etcd ".
ืืงืืจ: www.habr.com