శుభాకాంక్షలు, హబ్ర్!
ఒక సమయంలో, మేము ఈ అంశాన్ని రష్యన్ మార్కెట్కు పరిచయం చేసిన మొదటి వ్యక్తి
పరిచయం
కుబెర్నెటెస్ స్థితిలేని పనిభారాన్ని నిర్వహించడానికి రూపొందించబడింది. సాధారణంగా, ఇటువంటి పనిభారాలు మైక్రోసర్వీస్ ఆర్కిటెక్చర్ రూపంలో ప్రదర్శించబడతాయి, అవి తేలికైనవి, క్షితిజ సమాంతరంగా స్కేల్ చేయడం, 12-కారకాల అనువర్తనాల సూత్రాలను అనుసరించడం మరియు సర్క్యూట్ బ్రేకర్లు మరియు గందరగోళ కోతులతో పని చేయగలవు.
మరోవైపు, కాఫ్కా తప్పనిసరిగా పంపిణీ చేయబడిన డేటాబేస్గా పనిచేస్తుంది. అందువలన, పని చేస్తున్నప్పుడు, మీరు రాష్ట్రంతో వ్యవహరించాలి మరియు ఇది మైక్రోసర్వీస్ కంటే చాలా భారీగా ఉంటుంది. కుబెర్నెటెస్ స్టేట్ఫుల్ లోడ్లకు మద్దతిస్తుంది, అయితే కెల్సే హైటవర్ రెండు ట్వీట్లలో ఎత్తి చూపినట్లుగా, వాటిని జాగ్రత్తగా నిర్వహించాలి:
మీరు కుబెర్నెట్లను ఒక రాష్ట్రస్థాయి పనిభారంలోకి మార్చినట్లయితే, అది RDSకి ప్రత్యర్థిగా ఉండే పూర్తిగా నిర్వహించబడే డేటాబేస్గా మారుతుందని కొందరు భావిస్తున్నారు. ఇది తప్పు. బహుశా, మీరు తగినంతగా కష్టపడి, అదనపు భాగాలను జోడించి, SRE ఇంజనీర్ల బృందాన్ని ఆకర్షిస్తే, మీరు కుబెర్నెట్స్ పైన RDSని నిర్మించగలరు.
కుబెర్నెట్స్లో స్టేట్ఫుల్ వర్క్లోడ్లను అమలు చేస్తున్నప్పుడు ప్రతి ఒక్కరూ చాలా జాగ్రత్తగా ఉండాలని నేను ఎల్లప్పుడూ సిఫార్సు చేస్తున్నాను. "నేను కుబెర్నెట్స్లో స్టేట్ఫుల్ వర్క్లోడ్లను అమలు చేయగలనా" అని అడిగే చాలా మందికి కుబెర్నెట్స్తో తగినంత అనుభవం లేదు మరియు తరచుగా వారు అడుగుతున్న పనిభారం గురించి.
కాబట్టి, మీరు కుబెర్నెటెస్లో కాఫ్కాను అమలు చేయాలా? కౌంటర్ ప్రశ్న: కుబెర్నెట్స్ లేకుండా కాఫ్కా మెరుగ్గా పనిచేస్తుందా? అందుకే నేను ఈ కథనంలో కాఫ్కా మరియు కుబెర్నెట్లు ఒకదానికొకటి ఎలా అనుబంధం కలిగి ఉంటారో మరియు వాటిని కలపడం వల్ల ఎలాంటి ఆపదలు వస్తాయో హైలైట్ చేయాలనుకుంటున్నాను.
పూర్తయ్యే సమయం
ప్రాథమిక విషయం - రన్టైమ్ పర్యావరణం గురించి మాట్లాడుకుందాం
ప్రక్రియ
కాఫ్కా బ్రోకర్లు CPU స్నేహపూర్వకంగా ఉంటారు. TLS కొంత ఓవర్హెడ్ను పరిచయం చేయవచ్చు. అయినప్పటికీ, కాఫ్కా క్లయింట్లు ఎన్క్రిప్షన్ని ఉపయోగిస్తే మరింత CPU ఇంటెన్సివ్గా ఉండవచ్చు, కానీ ఇది బ్రోకర్లను ప్రభావితం చేయదు.
మెమరీ
కాఫ్కా బ్రోకర్లు జ్ఞాపకశక్తిని తింటారు. JVM హీప్ పరిమాణం సాధారణంగా 4-5 GBకి పరిమితం చేయబడింది, అయితే కాఫ్కా పేజీ కాష్ను చాలా ఎక్కువగా ఉపయోగిస్తుంది కాబట్టి మీకు చాలా సిస్టమ్ మెమరీ కూడా అవసరం. కుబెర్నెటీస్లో, కంటైనర్ వనరును సెట్ చేయండి మరియు తదనుగుణంగా పరిమితులను అభ్యర్థించండి.
డేటా స్టోర్
కంటైనర్లలో డేటా నిల్వ అశాశ్వతమైనది - పునఃప్రారంభించినప్పుడు డేటా పోతుంది. కాఫ్కా డేటా కోసం మీరు వాల్యూమ్ను ఉపయోగించవచ్చు emptyDir
, మరియు ప్రభావం ఒకే విధంగా ఉంటుంది: పూర్తయిన తర్వాత మీ బ్రోకర్ డేటా పోతుంది. మీ సందేశాలు ఇప్పటికీ ఇతర బ్రోకర్లలో ప్రతిరూపాలుగా నిల్వ చేయబడతాయి. అందువల్ల, పునఃప్రారంభించిన తర్వాత, విఫలమైన బ్రోకర్ మొదట మొత్తం డేటాను పునరావృతం చేయాలి మరియు ఈ ప్రక్రియకు చాలా సమయం పట్టవచ్చు.
అందుకే మీరు దీర్ఘకాలిక డేటా నిల్వను ఉపయోగించాలి. ఇది XFS ఫైల్ సిస్టమ్తో స్థానికేతర దీర్ఘకాలిక నిల్వగా ఉండనివ్వండి లేదా, మరింత ఖచ్చితంగా, ext4. NFSని ఉపయోగించవద్దు. నేను నిన్ను హెచ్చరించాను. NFS సంస్కరణలు v3 లేదా v4 పని చేయవు. సంక్షిప్తంగా, NFSలో "స్టుపిడ్ రీనేమ్" సమస్య కారణంగా డేటా డైరెక్టరీని తొలగించలేకపోతే కాఫ్కా బ్రోకర్ క్రాష్ అవుతుంది. నేను మిమ్మల్ని ఇంకా ఒప్పించకపోతే, చాలా జాగ్రత్తగా
నెట్వర్క్
చాలా పంపిణీ చేయబడిన సిస్టమ్ల మాదిరిగానే, కాఫ్కా పనితీరు నెట్వర్క్ జాప్యాన్ని కనిష్టంగా మరియు బ్యాండ్విడ్త్ గరిష్టంగా ఉంచడంపై ఎక్కువగా ఆధారపడి ఉంటుంది. అన్ని బ్రోకర్లను ఒకే నోడ్లో హోస్ట్ చేయడానికి ప్రయత్నించవద్దు, ఇది లభ్యతను తగ్గిస్తుంది. కుబెర్నెటెస్ నోడ్ విఫలమైతే, మొత్తం కాఫ్కా క్లస్టర్ విఫలమవుతుంది. అలాగే, మొత్తం డేటా సెంటర్లలో కాఫ్కా క్లస్టర్ని చెదరగొట్టవద్దు. కుబెర్నెటెస్ క్లస్టర్కి కూడా అదే జరుగుతుంది. ఈ సందర్భంలో ఒక మంచి రాజీ వివిధ లభ్యత జోన్లను ఎంచుకోవడం.
ఆకృతీకరణ
రెగ్యులర్ మ్యానిఫెస్టోలు
కుబెర్నెట్స్ వెబ్సైట్ కలిగి ఉంది
- కింద: కుబెర్నెటెస్లో పాడ్ అనేది అతి చిన్న డిప్లయబుల్ యూనిట్. పాడ్ మీ పనిభారాన్ని కలిగి ఉంటుంది మరియు పాడ్ కూడా మీ క్లస్టర్లోని ప్రక్రియకు అనుగుణంగా ఉంటుంది. ఒక పాడ్ ఒకటి లేదా అంతకంటే ఎక్కువ కంటైనర్లను కలిగి ఉంటుంది. సమిష్టిలోని ప్రతి ZooKeeper సర్వర్ మరియు కాఫ్కా క్లస్టర్లోని ప్రతి బ్రోకర్ ప్రత్యేక పాడ్లో రన్ అవుతాయి.
- స్టేట్ఫుల్ సెట్: స్టేట్ఫుల్సెట్ అనేది కుబెర్నెట్స్ ఆబ్జెక్ట్, ఇది బహుళ స్టేట్ఫుల్ వర్క్లోడ్లను నిర్వహిస్తుంది మరియు అలాంటి పనిభారానికి సమన్వయం అవసరం. స్టేట్ఫుల్సెట్లు పాడ్ల క్రమం మరియు వాటి ప్రత్యేకత గురించి హామీలను అందిస్తాయి.
- తల లేని సేవలు: లాజికల్ పేరును ఉపయోగించి క్లయింట్ల నుండి పాడ్లను వేరు చేయడానికి సేవలు మిమ్మల్ని అనుమతిస్తాయి. ఈ సందర్భంలో కుబెర్నెట్స్ లోడ్ బ్యాలెన్సింగ్కు బాధ్యత వహిస్తారు. అయినప్పటికీ, ZooKeeper మరియు Kafka వంటి స్టేట్ఫుల్ వర్క్లోడ్లను ఆపరేట్ చేస్తున్నప్పుడు, క్లయింట్లు ఒక నిర్దిష్ట ఉదాహరణతో కమ్యూనికేట్ చేయాలి. ఇక్కడే హెడ్లెస్ సేవలు ఉపయోగపడతాయి: ఈ సందర్భంలో, క్లయింట్కు ఇప్పటికీ లాజికల్ పేరు ఉంటుంది, కానీ మీరు నేరుగా పాడ్ని సంప్రదించాల్సిన అవసరం లేదు.
- దీర్ఘకాలిక నిల్వ వాల్యూమ్: పైన పేర్కొన్న నాన్-లోకల్ బ్లాక్ పెర్సిస్టెంట్ స్టోరేజ్ని కాన్ఫిగర్ చేయడానికి ఈ వాల్యూమ్లు అవసరం.
ఆఫ్
హెల్మ్ చార్ట్లు
హెల్మ్ అనేది yum, apt, Homebrew లేదా Chocolatey వంటి OS ప్యాకేజీ మేనేజర్లతో పోల్చబడే Kubernetes కోసం ప్యాకేజీ మేనేజర్. ఇది హెల్మ్ చార్ట్లలో వివరించిన ముందే నిర్వచించబడిన సాఫ్ట్వేర్ ప్యాకేజీలను ఇన్స్టాల్ చేయడాన్ని సులభతరం చేస్తుంది. బాగా ఎంచుకున్న హెల్మ్ చార్ట్ కుబెర్నెట్స్లో కాఫ్కాను ఉపయోగించడానికి అన్ని పారామితులను ఎలా సరిగ్గా కాన్ఫిగర్ చేయాలనే కష్టమైన పనిని సులభతరం చేస్తుంది. అనేక కాఫ్కా రేఖాచిత్రాలు ఉన్నాయి: అధికారికమైనది ఉంది
నిర్వాహకులు
హెల్మ్ కొన్ని లోపాలను కలిగి ఉన్నందున, మరొక సాధనం గణనీయమైన ప్రజాదరణను పొందుతోంది: కుబెర్నెట్స్ ఆపరేటర్లు. ఆపరేటర్ Kubernetes కోసం సాఫ్ట్వేర్ను ప్యాకేజీ చేయడమే కాకుండా, అటువంటి సాఫ్ట్వేర్ని అమలు చేయడానికి మరియు దానిని నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది.
జాబితాలో
ఉత్పాదకత
మీ కాఫ్కా ఉదాహరణను బెంచ్మార్క్ చేయడం ద్వారా పనితీరును పరీక్షించడం ముఖ్యం. సమస్యలు సంభవించే ముందు సంభావ్య అడ్డంకులను కనుగొనడంలో ఇటువంటి పరీక్షలు మీకు సహాయపడతాయి. అదృష్టవశాత్తూ, కాఫ్కా ఇప్పటికే రెండు పనితీరు పరీక్ష సాధనాలను అందిస్తుంది: kafka-producer-perf-test.sh
и kafka-consumer-perf-test.sh
. వాటిని చురుకుగా ఉపయోగించుకోండి. సూచన కోసం, మీరు వివరించిన ఫలితాలను చూడవచ్చు
కార్యకలాపాలు
పర్యవేక్షణ
వ్యవస్థలో పారదర్శకత చాలా ముఖ్యం - లేకపోతే దానిలో ఏమి జరుగుతుందో మీకు అర్థం కాదు. నేడు క్లౌడ్ స్థానిక శైలిలో కొలమానాల ఆధారిత పర్యవేక్షణను అందించే ఘనమైన టూల్కిట్ ఉంది. ఈ ప్రయోజనం కోసం రెండు ప్రసిద్ధ సాధనాలు ప్రోమేతియస్ మరియు గ్రాఫానా. ప్రోమేతియస్ JMX ఎగుమతిదారుని ఉపయోగించి అన్ని జావా ప్రక్రియల (కాఫ్కా, జూకీపర్, కాఫ్కా కనెక్ట్) నుండి కొలమానాలను సేకరించవచ్చు - సరళమైన మార్గంలో. మీరు cAdvisor మెట్రిక్లను జోడిస్తే, కుబెర్నెట్స్లో వనరులు ఎలా ఉపయోగించబడుతున్నాయో మీరు మరింత పూర్తిగా అర్థం చేసుకోవచ్చు.
స్ట్రిమ్జీ కాఫ్కా కోసం గ్రాఫానా డాష్బోర్డ్కి చాలా అనుకూలమైన ఉదాహరణను కలిగి ఉంది. ఇది కీలకమైన కొలమానాలను దృశ్యమానం చేస్తుంది, ఉదాహరణకు, తక్కువ ప్రతిరూపాలు లేదా ఆఫ్లైన్లో ఉన్న వాటి గురించి. అక్కడ ప్రతిదీ చాలా స్పష్టంగా ఉంది. ఈ కొలమానాలు వనరుల వినియోగం మరియు పనితీరు సమాచారం, అలాగే స్థిరత్వ సూచికల ద్వారా సంపూర్ణంగా ఉంటాయి. కాబట్టి మీరు ఏమీ లేకుండా ప్రాథమిక కాఫ్కా క్లస్టర్ పర్యవేక్షణను పొందుతారు!
మూలం:
క్లయింట్ మానిటరింగ్ (వినియోగదారులు మరియు ఉత్పత్తిదారులపై కొలమానాలు), అలాగే జాప్యం పర్యవేక్షణతో వీటన్నింటిని భర్తీ చేయడం మంచిది (దీని కోసం ఉంది
లాగింగ్
లాగింగ్ మరొక క్లిష్టమైన పని. మీ కాఫ్కా ఇన్స్టాలేషన్లోని అన్ని కంటైనర్లు లాగిన్ అయ్యాయని నిర్ధారించుకోండి stdout
и stderr
, మరియు మీ కుబెర్నెటెస్ క్లస్టర్ అన్ని లాగ్లను సెంట్రల్ లాగింగ్ ఇన్ఫ్రాస్ట్రక్చర్లో కలుపుతుందని నిర్ధారించుకోండి, ఉదా.
ఆరోగ్య పరీక్ష
మీ పాడ్లు సాధారణంగా రన్ అవుతున్నాయో లేదో తనిఖీ చేయడానికి కుబెర్నెటెస్ లైవ్నెస్ మరియు రెడీనెస్ ప్రోబ్లను ఉపయోగిస్తుంది. లైవ్నెస్ చెక్ విఫలమైతే, కుబెర్నెట్స్ ఆ కంటైనర్ను ఆపివేసి, రీస్టార్ట్ విధానం తదనుగుణంగా సెట్ చేయబడితే దాన్ని ఆటోమేటిక్గా రీస్టార్ట్ చేస్తుంది. సంసిద్ధతను తనిఖీ చేయడం విఫలమైతే, కుబెర్నెటెస్ సర్వీసింగ్ అభ్యర్థనల నుండి పాడ్ను వేరు చేస్తుంది. అందువల్ల, అటువంటి సందర్భాలలో, మాన్యువల్ జోక్యం ఇకపై అవసరం లేదు, ఇది పెద్ద ప్లస్.
అప్డేట్లను విడుదల చేస్తోంది
స్టేట్ఫుల్సెట్లు ఆటోమేటిక్ అప్డేట్లకు మద్దతు ఇస్తాయి: మీరు రోలింగ్అప్డేట్ స్ట్రాటజీని ఎంచుకుంటే, కాఫ్కా కింద ఉన్న ప్రతి ఒక్కటి క్రమంగా అప్డేట్ చేయబడుతుంది. ఈ విధంగా, పనికిరాని సమయాన్ని సున్నాకి తగ్గించవచ్చు.
స్కేలింగ్
కాఫ్కా క్లస్టర్ను స్కేల్ చేయడం అంత తేలికైన పని కాదు. అయినప్పటికీ, కుబెర్నెటెస్ పాడ్లను నిర్దిష్ట సంఖ్యలో ప్రతిరూపాలకు స్కేల్ చేయడాన్ని చాలా సులభం చేస్తుంది, అంటే మీరు మీకు నచ్చినంత మంది కాఫ్కా బ్రోకర్లను డిక్లరేటివ్గా నిర్వచించవచ్చు. ఈ సందర్భంలో చాలా కష్టమైన విషయం ఏమిటంటే, స్కేల్ చేసిన తర్వాత లేదా స్కేలింగ్ చేయడానికి ముందు సెక్టార్లను తిరిగి కేటాయించడం. మళ్ళీ, కుబెర్నెట్స్ ఈ పనిలో మీకు సహాయం చేస్తారు.
పరిపాలన
మీ కాఫ్కా క్లస్టర్ని నిర్వహించడానికి సంబంధించిన టాపిక్లను సృష్టించడం మరియు సెక్టార్లను తిరిగి కేటాయించడం వంటి పనులు మీ పాడ్లలో కమాండ్ లైన్ ఇంటర్ఫేస్ను తెరవడం ద్వారా ఇప్పటికే ఉన్న షెల్ స్క్రిప్ట్లను ఉపయోగించి చేయవచ్చు. అయితే, ఈ పరిష్కారం చాలా అందంగా లేదు. Stimzi వేరే ఆపరేటర్ని ఉపయోగించి టాపిక్లను నిర్వహించడానికి మద్దతు ఇస్తుంది. ఇక్కడ అభివృద్ధికి కొంత స్థలం ఉంది.
బ్యాకప్ మరియు పునరుద్ధరించండి
ఇప్పుడు కాఫ్కా లభ్యత కూడా కుబెర్నెట్స్ లభ్యతపై ఆధారపడి ఉంటుంది. మీ కుబెర్నెటెస్ క్లస్టర్ విఫలమైతే, చెత్త సందర్భంలో, మీ కాఫ్కా క్లస్టర్ కూడా విఫలమవుతుంది. మర్ఫీ చట్టం ప్రకారం, ఇది ఖచ్చితంగా జరుగుతుంది మరియు మీరు డేటాను కోల్పోతారు. ఈ రకమైన ప్రమాదాన్ని తగ్గించడానికి, మంచి బ్యాకప్ భావనను కలిగి ఉండండి. మీరు MirrorMakerని ఉపయోగించవచ్చు, దీనిలో వివరించిన విధంగా S3ని ఉపయోగించడం మరొక ఎంపిక
తీర్మానం
చిన్న నుండి మధ్య తరహా కాఫ్కా క్లస్టర్లతో పని చేస్తున్నప్పుడు, కుబెర్నెట్స్ని ఉపయోగించడం ఖచ్చితంగా విలువైనదే, ఎందుకంటే ఇది అదనపు సౌలభ్యాన్ని అందిస్తుంది మరియు ఆపరేటర్ అనుభవాన్ని సులభతరం చేస్తుంది. మీరు చాలా ముఖ్యమైన నాన్-ఫంక్షనల్ జాప్యం మరియు/లేదా నిర్గమాంశ అవసరాలను కలిగి ఉంటే, అప్పుడు కొన్ని ఇతర విస్తరణ ఎంపికను పరిగణించడం మంచిది.
మూలం: www.habr.com