áááºá¹ááá¬áá« Habrá
áá
áºáá»áááºáá áá»áœááºá¯ááºááá¯á·ááẠáá¯ááŸá
á»á±ážááœááºááá¯á· áá±á«ááºážá
ááºááᯠááááá¯á¶ážááááºáááºáá²á·áááºá
áááá«ááºáž
Kubernetes ááẠááá¯ááºáá¶áá²á·á¡áá¯ááºáá»á¬ážááᯠááá¯ááºááœááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá ááá¯áá²á·ááá¯á·áá±á¬ á¡áá¯ááºááá¬ááá»á¬ážááᯠmicroservice áááá¯áá¬áá¯á¶á á¶ááŒáá·áº áááºááŒáááºá áááºážááá¯á·ááẠáá±á«á·áá«ážááŒá®áž á¡áá»á¬ážááá¯áẠáá±á¬ááºážá áœá¬ á¡ááá¯ááºážá¡áá¬á 12-factor applications áá»á¬ážá á¡ááŒá±áá¶áá°áá»á¬ážááᯠááá¯ááºáá¬áᬠcircuit breakers áá»á¬ážááŸáá·áº chaos áá»á±á¬ááºáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááá¯ááºáááºá
á¡ááŒá¬ážáá áºáááºááœáẠKafka ááẠááŒáá·áºáá±áá¬ážáá±á¬áá±áá¬áá±á·á áºáá áºáá¯á¡ááŒá Ạá¡áááá¡á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáááºá ááá¯á·ááŒá±á¬áá·áº á¡áá¯ááºáá¯ááºáá±á¬á¡áá«á áááºááẠááŒááºáááºááŸáá·áº áááºáá¶ááááºááŒá áºááŒá®ážá áááºážááẠmicroservice ááẠáá»á¬ážá áœá¬ááá¯áá±ážáááºá Kubernetes ááẠááŒááºáááºá¡ááá¯áẠáááºáá¯ááºáááºááá¯ážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá±á¬áºáááºáž Kelsey Hightower ááẠtweets ááŸá áºáá¯ááœáẠáá±á¬ááºááŒáá¬ážááá·áºá¡ááá¯ááºážá áááºážááá¯á·ááᯠááá¯áá áá¯ááºááá¯ááºááœááºááá·áºáááº-
á¡áááºá áááºááẠKubernetes ááᯠá¡ááŒá±á¡áá±ááᯠá¡ááŒáá·áºá¡á á¡áá¯á¶ážáá»áá«áá áááºážááẠRDS ááŸáá·áº ááŸááºááŒáá¯ááºááá·áº á¡ááŒáá·áºá¡á á á®áá¶ááá·áºááœá²áá¬ážáá±á¬ áá±áá¬áá±á·á áºáá áºáᯠááŒá áºáá¬áááºáᯠá¡áá»áá¯á·áá°áá»á¬ážá áá°áááŒáááºá áá«áááŸá¬ážáááºá á¡áááºá áááºááẠá¡áá¯á¶á¡áá±á¬ááºááŒáá¯ážá á¬ážááŒá®áž á¡ááá¯á¡á áááºá¡ááá¯ááºážáá»á¬ážááá·áºáᬠSRE á¡ááºáá»ááºáá®áá¬áá»á¬ážá¡ááœá²á·ááᯠááœá²áá±á¬ááºáá«á Kubernetes ááááºááœáẠRDS ááᯠáááºáááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá
Kubernetes ááœáẠááá¯ááºáá¶ááá¯ááºá¡áá¯ááºáá»á¬ážáá¯ááºáá±á¬ááºááá·áºá¡áá« áá°ááá¯ááºážááᯠá¡ááœááºááááá¬ážááẠá¡ááŒá²á¡ááŒá¶ááŒá¯áá«áááºá "Kubernetes ááœáẠá¡áá»á¯á¶ážáááºáá±á¬ á¡áá¯ááºáá¬áááºáá»á¬ážááᯠáá»áœááºá¯ááºáá¯ááºáá±á¬ááºááá¯ááºáááº" áᯠáá±ážáá°á¡áá»á¬ážá á¯ááẠKubernetes ááŸáá·áº áááºáááºá áá¯á¶áá±á¬ááºáá±á¬ á¡ááœá±á·á¡ááŒá¯á¶áááŸáááŒáááᯠáááŒá¬áá áá°ááá¯á·áá±ážáá±ááŒááá·áº á¡áá¯ááºáá¬áááºáá»á¬ážááŸáá·áºá¡áá°á
ááá¯á·ááŒá±á¬áá·áº áááºááẠKubernetes ááœáẠKafka ááá¯áá¯á¶ážááá·áºáá«ááá¬ážá áááºááŒááºáá±ážááœááºáž- Kubernetes ááá«áá² Kafka á ááá¯áá±á¬ááºážáá¬ááŸá¬áá¬ážá ááá¯á·ááŒá±á¬áá·áº Kafka ááŸáá·áº Kubernetes ááá¯á·ááẠá¡áá»ááºážáá»ááºáž ááŒáá·áºá ááºážáá¯á¶ááá¯á·ááᯠá€áá±á¬ááºážáá«ážááœáẠáá®ážáá±á¬ááºážááá¯ážááŒááá¯ááŒá®áž áááºážááá¯á·ááᯠáá±á«ááºážá ááºááŒááºážááŒáá·áº áááºááá¯á·áá±á¬ á¡áá¹ááá¬ááºáá»á¬áž ááŸááá¬ááá¯ááºáááºááᯠá¡áá±ážáá±ážáá±á¬áºááŒááá¯áá«áááºá
ááŒá®ážá á®ážáá»áááº
á¡ááŒá±áá¶á¡áá»áẠ- runtime ááẠá ááºážáá»ááºááá¯ááºááá¯ááºá¡ááŒá±á¬ááºážááŒá±á¬ááŒáá«á áá¯á·
ááŒá áºá ááº
Kafka ááœá²á á¬ážáá»á¬ážááẠCPU áá±á¬áºááœá±áááºá TLS ááẠá¡áááºáá±á¬áºááŒáá« á¡áá»áá¯á·ááᯠááááºáááºáá±ážááá¯ááºáááºá ááá¯á·áá±á¬áºá Kafka áá±á¬ááºáááºáá»á¬ážááẠáá¯ááºááŸááºááŒááºážááá¯á¡áá¯á¶ážááŒá¯áá«á CPU ááá¯ááá¯á¡ááŒáááºá¡áááºááŸáááá¯ááºáá±á¬áºáááºáž áááºážááẠááœá²á á¬ážáá»á¬ážá¡áá±á«áº áááºáá±á¬ááºááŸá¯áááŸááá«á
ááŸááºáá¬ááº
Kafka ááœá²á á¬ážááœá±á Memory ááá¯á á¬ážáááºá JVM heap á¡ááœááºá¡á á¬ážááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº 4-5 GB ááœááºááá·áºáááºáá¬ážáá±á¬áºáááºáž Kafka ááẠpage cache ááá¯á¡ááœááºá¡áááºážá¡áá¯á¶ážááŒá¯áá±á¬ááŒá±á¬áá·áº system memory á¡áá»á¬ážá¡ááŒá¬ážááá¯á¡ááºáááºááŒá áºáá«áááºá Kubernetes ááœááºá ááœááºááááºáá¬áááºážááŒá áºááᯠáááºááŸááºááŒá®áž áá±á¬ááºážááá¯ááŸá¯ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áºá¡áá®á
áá±áá¬á ááá¯áž
ááœááºááááºáá¬áá»á¬ážááœáẠáá±áá¬ááááºážáááºážááŸá¯ááẠáá±á«áºáááºááŒá
áºááẠ- ááŒááºáááºá
áááºááá·áºá¡áá« áá±áá¬áá»á¬áž áá»á±á¬ááºáá¯á¶ážááœá¬ážáá«áááºá Kafka áá±áá¬á¡ááœáẠáááºááẠá¡áá¶á¡ááá¯ážá¡áá»ááºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá emptyDir
ááŸáá·áº á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ áá°áá®áá«áááº- áááºá ááœá²á
á¬ážáá±áᬠááŒá®ážá
á®ážááŒá®ážáá±á¬áẠáá¯á¶ážááŸá¯á¶ážááœá¬ážáá«áááºá ááá·áºáááºáá±á·áá»áºáá»á¬ážááᯠáá¯á¶áá°áá»á¬ážá¡ááŒá
Ạá¡ááŒá¬ážááœá²á
á¬ážáá»á¬ážáá±á«áºááœáẠááááºážáááºážáá¬ážááá¯ááºáá«áááºá ááá¯á·ááŒá±á¬áá·áºá ááŒááºáááºá
áááºááŒá®ážáá±á¬ááºá áá¡á±á¬ááºááŒááºáá±á¬ááœá²á
á¬ážááẠáá±áá¬á¡á¬ážáá¯á¶ážááᯠáŠážá
áœá¬áá¯á¶áá°ááœá¬ážááááºááŒá
áºááŒá®áž á€áá¯ááºáááºážá
ááºááẠá¡áá»áááºáá»á¬ážá
áœá¬ááŒá¬ááá¯ááºáááºá
ááá¯á·ááŒá±á¬áá·áº áááºááẠáá±ááŸááºáá±áá¬ááááºážáááºážááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááá·áºáááºá XFS ááá¯ááºá
áá
áºááŒáá·áº áá±áááœááºážááá¯ááºáá±á¬ áá±ááŸááºááá¯ááŸá±á¬ááºááŸá¯ ááá¯á·ááá¯áẠá¡ááá¡áá»á¡á¬ážááŒáá·áº ext4 ááŒá
áºáá«á
á±á NFS ááá¯á¶ážáá«ááŸáá·áºá áá« áááºážááᯠááááá±ážáá²á·áááºá NFS áá¬ážááŸááºáž v3 ááá¯á·ááá¯áẠv4 á¡áá¯ááºááá¯ááºáá«á á¡ááá¯áá»á¯ááºá¡á¬ážááŒáá·áºá NFS ááŸá "ááá¯ááºáá²áá±á¬á¡áááºááŒá±á¬ááºáž" ááŒá¿áá¬ááŒá±á¬áá·áº áá±áá¬áááºážááœáŸááºááᯠááá»ááºááá¯ááºáá«á Kafka ááœá²á
á¬ážááẠáá»ááºá
á®ážááœá¬ážáá«áááºá áá« áááºážááᯠááá¯á¶ááŒááºáá±ážááẠáá±áá±áá»á¬áá»á¬
ááœááºáááºááá¯
ááŒáá·áºáá±ááŸá¯á áá áºá¡áá»á¬ážá á¯áá²á·ááá¯á·ááẠKafka áá áœááºážáá±á¬ááºáááºááẠááœááºááẠlatency ááá¯á¡áááºážáá¯á¶ážááŸáá·áº bandwidth á¡ááŒáá·áºáá¯á¶ážá¡áááá¬ážááŸáááŒááºážá¡áá±á«áº á¡ááœááºáá°áááºáá«áááºá áááŸáááá¯ááºááŸá¯ááᯠáá»á±á¬á·áááºážá á±áá±á¬ááŒá±á¬áá·áº ááœá²á á¬ážá¡á¬ážáá¯á¶ážááᯠáá°áá®áá±á¬ node ááœáẠáááºáá¶ááẠáááŒáá¯ážá á¬ážáá«ááŸáá·áºá Kubernetes node áá áºáᯠáá»ááºááœááºáá«á Kafka á¡á á¯á¡áá±ážáá áºáá¯áá¯á¶áž áá»ááºááœááºáááºááŒá áºáááºá ááá¯á·á¡ááŒááºá áá±áá¬á ááºáá¬áá»á¬ážáá áºáá¯áá¯á¶ážááœáẠKafka á¡á á¯á¡áá±ážááᯠáá°á á¯áááœá²áá«ááŸáá·áºá Kubernetes á¡á á¯á¡áá±ážá¡ááœáẠá¡áá¬ážáá°áá«áá²á á€ááá á¹á ááœáẠáá±á¬ááºážááœááºáá±á¬á¡áá±ážá¡áá°áá áºáá¯ááẠááá°áá®áá±á¬áááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážááᯠááœá±ážáá»ááºáááºááŒá áºáááºá
configuration áá»á¬áž
áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºáá»á¬áž
Kubernetes áááºááá¯ááºááœáẠáá«ááŸááááºá
- á¡á±á¬ááºááœááº: pod áá áºáá¯ááẠKubernetes ááœáẠá¡áá±ážáááºáá¯á¶áž á¡áá¯á¶ážáá»ááá¯ááºáá±á¬ áá°áá áºááŒá áºáááºá áá±á«á·ááºáá áºáá¯ááœáẠááá·áºá¡áá¯ááºáááºáá«ááŸáááŒá®áž áá±á«á·ááºááá¯ááºááá¯ááºá ááá·áºá¡á á¯á¡áá±ážááŸá áá¯ááºáááºážá ááºáá áºáá¯ááŸáá·áº ááá¯ááºáá®áá«áááºá áá°ážáá áºáá¯ááœáẠáá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áá±á¬ ááœááºááááºáá¬áá»á¬áž áá«ááŸááááºá á¡á á¯á¡áá±ážááŸá ZooKeeper áá¬áá¬áá áºáá¯á á®ááŸáá·áº Kafka á¡á á¯á¡áá±ážááŸá ááœá²á á¬ážáá áºáŠážá á®ááẠáá®ážááŒá¬áž pod áá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáááºááŒá áºáááºá
- StatefulSet: StatefulSet ááẠáá»á¬ážááŒá¬ážááŸáá±á¬ á¡áá¯ááºáááºáá»á¬ážááᯠááá¯ááºááœááºááá·áº Kubernetes á¡áá¬ááá¹áá¯ááŒá áºááŒá®ážá ááá¯áá²á·ááá¯á·áá±á¬ á¡áá¯ááºáá¬áááºáá»á¬ážááẠáá±á«ááºážá ááºááŸáááŸáá¯ááºážááŸá¯ ááá¯á¡ááºáá«áááºá StatefulSets ááẠpods áá»á¬ážááŸá¬áá°ááŒááºážááŸáá·áº áááºážááá¯á·ááá°ážááŒá¬ážááŸá¯ááŸáá·áºáááºáááºá á¡á¬ááá¶áá»ááºáá±ážáá«áááºá
- áá±á«ááºážáá²á·áááºáá±á¬ááºááŸá¯áá»á¬áž: áááºáá±á¬ááºááŸá¯áá»á¬ážááẠááá·áºá¡á¬áž áá¯áá¹áááááºáá±á¬á¡áááºááŒáá·áº áá¯á¶ážá áœá²áá°áá»á¬ážáá¶á០pods áá»á¬ážááᯠáááºááŸá¬ážááá¯ááºá á±áá«áááºá á€ááá á¹á ááœáẠKubernetes ááẠload áá»áááºááœááºáá»áŸá¬á¡ááœáẠáá¬áááºááŸááááºá ááá¯á·áá±á¬áºá ZooKeeper ááŸáá·áº Kafka áá²á·ááá¯á·áá±á¬ ááá¯ááºáá¶ááá¯ááºáá¯ááºáááºážááœááºáá»á¬ážááᯠáááºáááºáá±á¬á¡áá«ááœááºá áá±á¬ááºáááºáá»á¬ážááẠáá®ážááŒá¬ážá¥ááá¬áá áºáá¯ááŸáá·áº áááºááœááºááẠááá¯á¡ááºáááºá á€áá±áá¬ááœáẠáŠážáá±á«ááºážááá«áá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááẠá¡áá¯á¶ážáááºáá¬áá«áááº- á€ááá á¹á ááœááºá client ááẠáá¯áá¹áááááºáá±á¬á¡áááºáá áºáá¯ááŸááá±áá²ááŒá áºáá±á¬áºáááºáž ááẠpod ááᯠááá¯ááºááá¯ááºáááºááœááºááẠáááá¯á¡ááºáá«á
- áá±ááŸááºááá¯ááŸá±á¬ááºááŸá¯ááá¬á: á¡áááºááœááºáá±á¬áºááŒáá²á·áá±á¬ áá±ááá¹ááááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ ááŒá²ááŒá¶áá±á¬ááá¯ááŸá±á¬ááºááŸá¯á¡á¬áž á á®á ááºáááºááŸááºáááºá¡ááœáẠá€ááá¬ááá»á¬áž ááá¯á¡ááºáá«áááºá
á¡áá±á«áº
áá²á·á ááºááá¬ážáá»á¬áž
Helm ááẠyumá aptá Homebrew ááá¯á·ááá¯áẠChocolatey áá²á·ááá¯á·áá±á¬ OS áááºáá±á·áá»áºáááºáá±áá»á¬áá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáá±á¬ Kubernetes á¡ááœáẠáááºáá±á·áá»áºáááºáá±áá»á¬áá
áºáá¯ááŒá
áºáááºá Helm ááá¬ážáá»á¬ážááœáẠáá±á¬áºááŒáá¬ážááá·áº ááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬ áá±á¬á·ááºáá²ááºáááºáá±á·ááºá»áá»á¬ážááᯠááá·áºááœááºážááẠáááºážááẠááœááºáá°á
á±áááºá áá±á¬ááºážá
áœá¬ááœá±ážáá»ááºáá¬ážáá±á¬ Helm ááá¬ážááẠKubernetes ááœáẠKafka ááá¯á¡áá¯á¶ážááŒá¯ááẠááá·áºáááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŸááºáááºá
áœá¬ááŒááºáááºáááºááŸááºááẠáááºáá²áá±á¬áá¬áááºááᯠááŒá
áºá
á±áááºá Kafka diagram á¡áá»á¬ážá¡ááŒá¬ážááŸááá«áááº- ááá¬ážáááºáá
áºáá¯áááºááŸááááºá
á¡á±á¬áºááá±áá¬
Helm ááœáẠá¡áá»áá¯á·áá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬áž ááŸááá±á¬ááŒá±á¬áá·áºá á¡ááŒá¬ážáááááá¬áá áºáá¯ááẠá¡ááœááºáá±áááºážá á¬ážáá¬áááº- Kubernetes á¡á±á¬áºááá±áá¬áá»á¬ážá á¡á±á¬áºááá±áá¬ááẠKubernetes á¡ááœáẠáá±á¬á·ááºáá²ááºáá»á¬ážááᯠáá¯ááºááá¯ážáá±ážáá¯á¶áá¬áá ááá¯áá±á¬á·ááºáá²ááᯠá¡áá¯á¶ážáá»ááŒá®áž áááºážááᯠá á®áá¶ááá·áºááœá²áááºáááºáž ááœáá·áºááŒá¯áá¬ážáááºá
á
á¬áááºážáá²ááœááº
ááœááºááá¯ááºáá±áž
áááºá Kafka á¥ááá¬ááᯠá
á¶áááºááŸááºááŒááºážááŒáá·áº á
áœááºážáá±á¬ááºáááºááᯠá
ááºážáááºááẠá¡áá±ážááŒá®ážáá«áááºá á¡ááá¯áá«á
ááºážáááºááŸá¯áá»á¬ážááẠááŒá¿áá¬áá»á¬ážáááŒá
áºááœá¬ážáá® ááŒá
áºááá¯ááºáá»á±ááŸááá±á¬ ááááºááá¯á·ááŸá¯áá»á¬ážááᯠááŸá¬ááœá±ááẠáá°áá®áá±ážáá«áááºá áá¶áá±á¬ááºážá
áœá¬ááŒáá·áºá Kafka ááẠá
áœááºážáá±á¬ááºáááºá
ááºážáááºááŒááºážáááááá¬ááŸá
áºáá¯ááᯠáá±ážáá±á¬ááºáá¬ážááŒá®ážááŒá
áºáááº- kafka-producer-perf-test.sh
О kafka-consumer-perf-test.sh
. áááºážááá¯á·ááᯠáááºááŒáœá
áœá¬ á¡áá¯á¶ážááŒá¯áá«á á¡ááá¯ážá¡áá¬ážá¡ááœááºá ááœááºáá±á¬áºááŒáá¬ážáá±á¬ááááºáá»á¬ážááá¯áááºááá¯ážáá¬ážááá¯ááºáááºá
á á áºáááºáá±áž
á á±á¬áá·áºááŒáá·áºáá±á·áá¬ááŒááºáž
á áá áºááœáẠááœáá·áºáááºážááŒááºáá¬ááŸá¯ááẠá¡ááœááºá¡áá±ážááŒá®ážááẠ- ááá¯ááºáá«á áááºážááœááºááŒá áºáá»ááºáá±ááá·áºá¡áá¬áá»á¬ážááᯠáááºáá¬ážááááºááá¯ááºáá«á ááá±á·ááœáẠcloud áá¬ááá ááá¯ááºááœáẠáááºááá áºáá»á¬ážá¡ááŒá±ááŒá¯ á á±á¬áá·áºááŒáá·áºááŒááºážááᯠáá¶á·ááá¯ážáá±ážááá·áº ááá¯ááºáá¬áá±á¬ toolkit áá áºáá¯ááŸááááºá á€áááºááœááºáá»ááºá¡ááœáẠáá°ááŒáá¯ááºáá»á¬ážáá±á¬áááááá¬ááŸá áºáá¯ááŸá¬ Prometheus ááŸáá·áº Grafana ááŒá áºáááºá Prometheus ááẠJMX áááºááá¯á·áá°á¡á¬áž á¡ááá¯ážááŸááºážáá¯á¶ážáááºážáááºážááŒáá·áº Java áá¯ááºáááºážá ááºá¡á¬ážáá¯á¶áž (Kafkaá Zookeeperá Kafka Connect) á០áááºááá áºáá»á¬ážááᯠá á¯áá±á¬ááºážááá¯ááºáááºá á¡áááºá áááºááẠcAdvisor áááºááá áºáá»á¬ážááᯠááá·áºáá«áá Kubernetes ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºááá¯á·á¡áá¯á¶ážááŒá¯ááŒá±á¬ááºážááᯠááá¯ááá¯ááŒáá·áºá á¯á¶á áœá¬ áá¬ážáááºááá¯ááºáá«áááºá
Strimzi ááœáẠKafka á¡ááœáẠGrafana dashboard á á¡ááœááºá¡áááºááŒá±áá±á¬ á¥ááá¬áá áºáá¯ááŸááááºá á¥ááá¬- áááºáá°áá»áá±áá±á¬ááá¹ááá»á¬áž ááá¯á·ááá¯áẠá¡á±á¬á·ááºááá¯ááºážááŒá áºáá±áá±á¬ ááá¹ááá»á¬ážá¡ááŒá±á¬ááºáž á¡ááá áááºááá áºáá»á¬ážááᯠááŒááºáá±á¬ááºá á±áááºá á¡á²áá®ááŸá¬ á¡áá¬á¡á¬ážáá¯á¶ážá á¡áááºážááŸááºážáááºá á€áááºááá áºáá»á¬ážááᯠá¡áááºážá¡ááŒá áºá¡áá¯á¶ážáá»ááŸá¯ááŸáá·áº á áœááºážáá±á¬ááºáááºá¡áá»ááºá¡áááºáá»á¬ážá¡ááŒáẠáááºááŒáááºááŸá¯ááœáŸááºážááááºážáá»á¬ážááŒáá·áº ááŒáá·áºá áœááºáá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº áááºááẠáááºááá·áºá¡áá¬á¡ááœááºáááᯠá¡ááŒá±áᶠKafka á¡á á¯á¡áá±áž á á±á¬áá·áºááŒáá·áºááŒááºážááᯠáááŸááááºááŒá áºáááºá
source:
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá±á¬ááºáááºá
á±á¬áá·áºááŒáá·áºááŒááºáž (á
á¬ážáá¯á¶ážáá°ááŸáá·áº áá¯ááºáá¯ááºáá°áá»á¬ážá¡áá±á«áº áááºááá
áºáá»á¬áž) ááŸáá·áº latency á
á±á¬áá·áºááŒáá·áºááŒááºáž (áá«á¡ááœáẠááŸááá±ážáááº
áá áºáá¯ááºááŒááºážá
áá
áºáá¯ááºááŒááºážááẠá¡áá±ážááŒá®ážáá±á¬ á¡áá¯ááºááŒá
áºáááºá áááºá Kafka áááºáááºááŒááºážááŸá ááœááºááááºáá¬á¡á¬ážáá¯á¶ážááᯠá¡áá±á¬áá·áºáá²ááá¯á· ááœááºážáá¬ážááŒá±á¬ááºáž áá±áá»á¬áá«á
á±á stdout
О stderr
ááŸáá·áº áááºá Kubernetes á¡á
á¯á¡áá±ážááẠááŸááºáááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááá¯ááŸááºáááºážá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá
áºáá¯á¡ááŒá
Ạá
á¯á
ááºážáá¬ážáááºáááºáž áá±áá»á¬á
á±áááºá á¥ááá¬á
á¡áá¯ááºáá¯ááºá á áºáá±ážááŸá¯áá»á¬áž
Kubernetes ááẠááá·áº pods áá»á¬áž áá¯á¶ááŸááºá¡ááá¯ááºážáááºáááºáá±ááŒááºážááŸáá á¡áááºááŸááºááŸá¯á á áºáá±ážááŒááºáž áá¡á±á¬ááºááŒááºáá«áá Kubernetes ááẠááá¯ááœááºááááºáá¬ááᯠáááºááá·áºááŒá®áž ááŒááºáááºá áááºááá·áºáá°áá«áááŸáá·áºá¡áá® ááŒááºáááºá áááºáá«á áááºážááᯠá¡ááá¯á¡áá»á±á¬ááºááŒááºáááºá áááºáááºááŒá áºáááºá á¡áááºááá·áºá á áºáá±ážááŸá¯ áá¡á±á¬ááºááŒááºáá«áá Kubernetes ááẠáááºáá±á¬ááºááŸá¯áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá០pod á¡á¬áž ááœá²áá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá ááá¯ááá¯á·áá±á¬á¡ááŒá±á¡áá±áá»áá¯ážááœááºá áá°ááá¯ááºááá¯ááºáááºáá±á¬ááºá áœááºáááºááŸá¯ áá¯á¶ážááááá¯á¡ááºáá±á¬á·áá«á áááºážááẠááŒá®ážáá¬ážáá±á¬á¡á¬ážáá¬áá»ááºááŒá áºáááºá
á¡ááºááááºáá»á¬ážááᯠáá¯ááºááŒáá±áááºá
StatefulSets ááẠá¡ááá¯á¡áá»á±á¬ááºá¡ááºááááºáá»á¬ážááᯠáá¶á·ááá¯ážáááº- á¡áááºá áááºááẠRollingUpdate áááºážáá»á°áá¬ááᯠááœá±ážáá»ááºáá«áá Kafka á¡á±á¬ááºááœáẠáá áºáá¯á á®ááᯠá¡ááŸáá·áºáá» á¡ááºááááºáá¯ááºáá«áááºá á€áááºážá¡á¬ážááŒáá·áº á ááºáááºáá»áááºááᯠáá¯áááá¯á· áá»áŸá±á¬á·áá»ááá¯ááºáááºá
á¡ááá¯ááºážá¡áá¬
Kafka á¡á á¯á¡áá±ážáá áºáá¯ááᯠáá»á²á·ááœááºááŒááºážááẠááœááºáá°áá±á¬á¡áá¯ááºááá¯ááºáá«á ááá¯á·áá±á¬áºá Kubernetes ááẠpods áá»á¬ážááᯠáá¯á¶áá°á¡áá±á¡ááœááºá¡áá»áá¯á·ááá¯á· á¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá áá»á²á·ááœááºááẠá¡ááœááºááœááºáá°á á±áááºá ááá¯ááá¯áááºááŸá¬ áááºááẠKafka ááœá²á á¬ážáá»á¬ážá áœá¬ááᯠáááºááŸá áºáááºááá±á¬áẠááŒá±ááŒá¬ááá¯ááºáá«áááºá á€ááá á¹á ááœáẠá¡áááºáá²áá¯á¶ážá¡áá¬ááŸá¬ á áá±ážáá»á²á·ááŒá®ážáá±á¬áẠááá¯á·ááá¯áẠáá»áŸá±á¬á·ááá»áá® ááá¹ááá»á¬ážááᯠááŒááºáááºáááºááŸááºááŒááºáž ááŒá áºáááºá ááááºá Kubernetes ááẠá€áá¯ááºáááºážáá±á¬ááºáá¬á¡ááœáẠááá·áºá¡á¬áž áá°áá®áá«áááá·áºáááºá
á¡á¯ááºáá»á¯ááºáá±áž
áá±á«ááºážá ááºáá»á¬ážáááºáá®ážááŒááºážááŸáá·áº ááá¹ááá»á¬ážááŒááºáááºáááºááŸááºááŒááºážáá²á·ááá¯á·áá±á¬ áááºá Kafka á¡á á¯á¡áá±ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážááŸáá·áº áááºááá¯ááºááá·áºáá¬áááºáá»á¬ážááᯠáááºá pods áá»á¬ážááŸá command line interface ááá¯ááœáá·áºááŒááºážááŒáá·áº áááºááŸá shell scripts áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±á¬ááºááá¯ááºáá«áááºá ááá¯á·áá±á¬áº á€ááŒá±ááŸááºážáá»ááºááẠá¡ááœááºááŸááááºááá¯ááºá Strimzi ááẠááá°áá®áá±á¬ á¡á±á¬áºááá±áá¬áá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážááᯠáá¶á·ááá¯ážáá±ážáááºá á€áá±áá¬ááœáẠááá¯ážáááºááẠáá±áá¬á¡áá»áá¯á·ááŸááááºá
á¡áááºááááºážááŒá®áž ááŒááºáááºááá°áá«á
ááᯠKafka áááŸáááá¯ááºááŸá¯ááẠKubernetes ááááŸáááá¯ááºááŸá¯á¡áá±á«áºáááºáž áá°áááºáá«áááºá á¡áááºá áááºá Kubernetes á¡á
á¯á¡áá±ážááẠáá¡á±á¬ááºááŒááºáá«áá á¡ááá¯ážáá¯á¶ážá¡ááŒá±á¡áá±ááœááºá áááºá Kafka á¡á
á¯á¡áá±ážáááºáááºáž áá»ááºááœááºáááºááŒá
áºáááºá Murphy áá¥ááá±á¡áá áááºážááẠáá»áááºážáá±ááŒá
áºááœá¬ážáááºááŒá
áºááŒá®áž áááºááẠáá±áá¬áá»á¬áž áá¯á¶ážááŸá¯á¶ážáááºááŒá
áºáááºá á€á¡áá¹ááá¬ááºá¡áá»áá¯ážá¡á
á¬ážááᯠáá»áŸá±á¬á·áá»ááẠáá±á¬ááºážáá±á¬ á¡áááºááááºážáááºážááŸá¯ á¡áá°á¡ááá
áºáᯠááŸááá«á
á±á MirrorMaker ááá¯áááºáá¯á¶ážááá¯ááºáááºá á€ááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºážá€á¡ááœáẠS3 ááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááŒá¬ážááœá±ážáá»ááºá
áá¬ááŒá
áºáááºá
áá±á¬ááºáá»ááº
á¡áá±ážá
á¬ážá០á¡áááºá
á¬áž Kafka á¡á
á¯á¡áá±ážáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºáá±á¬á¡áá«á áááºážááẠáááºáá±á¬ááºážáá»á±á¬á·ááŒá±á¬ááºážááŸá¯ááᯠáá±ážá
áœááºážááŒá®áž á¡á±á¬áºááá±áá¬á¡ááœá±á·á¡ááŒá¯á¶ááᯠááá¯ážááŸááºážá
á±áá±á¬ááŒá±á¬áá·áº Kubernetes ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠáá»áááºážáá±áááºááá¯ážááŸááá«áááºá ááá·áºááœáẠá¡ááœááºáááá¬áááºááŸá¬ážáá±á¬ áá¯ááºáá±á¬ááºááá¯ááºá
áœááºážáááŸááá±á¬ latency ááŸáá·áº/ááá¯á·ááá¯áẠthroughput ááá¯á¡ááºáá»ááºáá»á¬ážááŸááá«áá á¡ááŒá¬ážá¡áá¯á¶ážááŒá¯ááŸá¯ááœá±ážáá»ááºááŸá¯á¡áá»áá¯á·ááᯠááá·áºááœááºážá
ááºážá
á¬ážááẠááá¯áá±á¬ááºážáá±áááºá
source: www.habr.com