డిస్ట్రిబ్యూటెడ్ సిస్టమ్లను నిర్వహించడం కష్టంగా ఉంటుంది, ఎందుకంటే అవి సిస్టమ్ పనిచేయడానికి సరిగ్గా పని చేయడానికి అవసరమైన అనేక కదిలే, మారుతున్న అంశాలను కలిగి ఉంటాయి. మూలకాలలో ఒకటి విఫలమైతే, సిస్టమ్ దానిని గుర్తించి, దానిని దాటవేయాలి మరియు దాన్ని పరిష్కరించాలి మరియు ఇవన్నీ స్వయంచాలకంగా చేయాలి. ఈ కుబెర్నెటీస్ బెస్ట్ ప్రాక్టీసెస్ సిరీస్లో, మేము కుబెర్నెటెస్ క్లస్టర్ యొక్క ఆరోగ్యాన్ని పరీక్షించడానికి సంసిద్ధత మరియు లైవ్నెస్ పరీక్షలను ఎలా సెటప్ చేయాలో నేర్చుకుంటాము.
ఆరోగ్య తనిఖీ అనేది మీ అప్లికేషన్ ఇన్స్టెన్స్ రన్ అవుతుందో లేదో సిస్టమ్కి తెలియజేయడానికి సులభమైన మార్గం. మీ అప్లికేషన్ ఇన్స్టాన్స్ డౌన్ అయితే, ఇతర సేవలు దాన్ని యాక్సెస్ చేయకూడదు లేదా దానికి అభ్యర్థనలను పంపకూడదు. బదులుగా, అభ్యర్థన తప్పనిసరిగా ఇప్పటికే అమలులో ఉన్న లేదా తర్వాత ప్రారంభించబడే అప్లికేషన్ యొక్క మరొక ఉదాహరణకి పంపబడాలి. అదనంగా, సిస్టమ్ మీ అప్లికేషన్ యొక్క కోల్పోయిన కార్యాచరణను పునరుద్ధరించాలి.
డిఫాల్ట్గా, కుబెర్నెట్స్ పాడ్లలోని అన్ని కంటైనర్లు రన్ అవుతున్నప్పుడు పాడ్కి ట్రాఫిక్ను పంపడం ప్రారంభిస్తుంది మరియు అవి క్రాష్ అయినప్పుడు కంటైనర్లను రీబూట్ చేస్తుంది. ఈ డిఫాల్ట్ సిస్టమ్ ప్రవర్తన ప్రారంభించడానికి తగినంతగా ఉండవచ్చు, కానీ మీరు కస్టమ్ శానిటీ చెక్లను ఉపయోగించడం ద్వారా మీ ఉత్పత్తి విస్తరణ యొక్క విశ్వసనీయతను మెరుగుపరచవచ్చు.
అదృష్టవశాత్తూ, కుబెర్నెటెస్ దీన్ని చాలా సులభం చేస్తుంది, కాబట్టి ఈ తనిఖీలను విస్మరించడానికి ఎటువంటి కారణం లేదు. కుబెర్నెటెస్ రెండు రకాల ఆరోగ్య తనిఖీలను అందిస్తుంది మరియు ప్రతి ఒక్కటి ఎలా ఉపయోగించబడుతుందనే దానిలో తేడాలను అర్థం చేసుకోవడం చాలా ముఖ్యం.
మీ అప్లికేషన్ ట్రాఫిక్ను నిర్వహించడానికి సిద్ధంగా ఉందని కుబెర్నెట్లకు చెప్పడానికి సంసిద్ధత పరీక్ష రూపొందించబడింది. పాడ్కి ట్రాఫిక్ను పంపడానికి సేవను అనుమతించే ముందు, కుబెర్నెట్స్ తప్పనిసరిగా సంసిద్ధతను తనిఖీ చేయడం విజయవంతమైందని ధృవీకరించాలి. సంసిద్ధత పరీక్ష విఫలమైతే, పరీక్ష పాస్ అయ్యే వరకు కుబెర్నెట్స్ పాడ్కి ట్రాఫిక్ను పంపడం ఆపివేస్తుంది.
లైవ్నెస్ పరీక్ష మీ అప్లికేషన్ సజీవంగా ఉందా లేదా చనిపోయిందా అని కుబెర్నెట్లకు చెబుతుంది. మొదటి సందర్భంలో, కుబెర్నెటెస్ దానిని ఒంటరిగా వదిలివేస్తుంది, రెండవది అది చనిపోయిన పాడ్ను తొలగిస్తుంది మరియు దానిని కొత్త దానితో భర్తీ చేస్తుంది.
మీ అప్లికేషన్ వేడెక్కడానికి మరియు లాంచ్ చేయడానికి 1 నిమిషం పట్టే దృష్టాంతాన్ని ఊహించుకుందాం. వర్క్ఫ్లో ఇప్పటికే ప్రారంభించబడినప్పటికీ, అప్లికేషన్ పూర్తిగా లోడ్ చేయబడి, రన్ అయ్యే వరకు మీ సేవ పనిచేయడం ప్రారంభించదు. మీరు ఈ విస్తరణను బహుళ కాపీలకు స్కేల్ చేయాలనుకుంటే కూడా మీరు సమస్యలను ఎదుర్కొంటారు, ఎందుకంటే ఆ కాపీలు పూర్తిగా సిద్ధమయ్యే వరకు ట్రాఫిక్ని అందుకోకూడదు. అయితే, డిఫాల్ట్గా, కంటైనర్ లోపల ప్రక్రియలు ప్రారంభమైన వెంటనే కుబెర్నెట్స్ ట్రాఫిక్ను పంపడం ప్రారంభిస్తుంది.
సంసిద్ధత పరీక్షను ఉపయోగిస్తున్నప్పుడు, కొత్త కాపీకి ట్రాఫిక్ని పంపడానికి సేవను అనుమతించే ముందు అప్లికేషన్ పూర్తిగా రన్ అయ్యే వరకు Kubernetes వేచి ఉంటుంది.
సర్వీసింగ్ అభ్యర్థనలను నిలిపివేస్తూ, అప్లికేషన్ చాలా కాలం పాటు వేలాడదీసే మరొక దృశ్యాన్ని ఊహించుకుందాం. ప్రక్రియ కొనసాగుతుండగా, డిఫాల్ట్గా Kubernetes అంతా బాగానే ఉందని భావించి, పని చేయని పాడ్కి అభ్యర్థనలను పంపడం కొనసాగిస్తుంది. కానీ లైవ్నెస్ని ఉపయోగిస్తున్నప్పుడు, అప్లికేషన్ ఇకపై అభ్యర్థనలను అందించడం లేదని కుబెర్నెట్స్ గుర్తిస్తుంది మరియు డిఫాల్ట్గా డెడ్ పాడ్ను రీస్టార్ట్ చేస్తుంది.
సంసిద్ధత మరియు సాధ్యత ఎలా పరీక్షించబడతాయో చూద్దాం. మూడు పరీక్ష పద్ధతులు ఉన్నాయి - HTTP, కమాండ్ మరియు TCP. తనిఖీ చేయడానికి మీరు వాటిలో దేనినైనా ఉపయోగించవచ్చు. వినియోగదారుని పరీక్షించడానికి అత్యంత సాధారణ మార్గం HTTP ప్రోబ్.
మీ అప్లికేషన్ HTTP సర్వర్ కానప్పటికీ, లైవ్నెస్ పరీక్షతో పరస్పర చర్య చేయడానికి మీరు ఇప్పటికీ మీ అప్లికేషన్లో తేలికపాటి HTTP సర్వర్ని సృష్టించవచ్చు. దీని తర్వాత, Kubernetes పాడ్ను పింగ్ చేయడం ప్రారంభిస్తుంది మరియు HTTP ప్రతిస్పందన 200 లేదా 300 ms పరిధిలో ఉంటే, అది పాడ్ ఆరోగ్యంగా ఉందని సూచిస్తుంది. లేకపోతే, మాడ్యూల్ "అనారోగ్యకరమైనది"గా గుర్తించబడుతుంది.
కమాండ్ పరీక్షల కోసం, Kubernetes మీ కంటైనర్లో కమాండ్ను అమలు చేస్తుంది. కమాండ్ సున్నా నిష్క్రమణ కోడ్తో తిరిగి వస్తే, అప్పుడు కంటైనర్ ఆరోగ్యకరమైనదిగా గుర్తించబడుతుంది, లేకపోతే, 1 నుండి 255 వరకు నిష్క్రమణ స్థితి సంఖ్యను స్వీకరించిన తర్వాత, కంటైనర్ “అనారోగ్యం”గా గుర్తించబడుతుంది. మీరు HTTP సర్వర్ని అమలు చేయలేకపోయినా లేదా చేయకూడదనుకుంటే ఈ పరీక్షా పద్ధతి ఉపయోగకరంగా ఉంటుంది, కానీ మీ అప్లికేషన్ యొక్క ఆరోగ్యాన్ని తనిఖీ చేసే ఆదేశాన్ని అమలు చేయగలిగితే.
చివరి ధృవీకరణ విధానం TCP పరీక్ష. Kubernetes పేర్కొన్న పోర్ట్లో TCP కనెక్షన్ని ఏర్పాటు చేయడానికి ప్రయత్నిస్తుంది. ఇది చేయగలిగితే, కంటైనర్ ఆరోగ్యంగా పరిగణించబడుతుంది; కాకపోతే, అది ఆచరణీయమైనదిగా పరిగణించబడుతుంది. మీరు HTTP అభ్యర్థన లేదా కమాండ్ ఎగ్జిక్యూషన్తో పరీక్షించడం బాగా పని చేయని దృష్టాంతాన్ని ఉపయోగిస్తుంటే ఈ పద్ధతి ఉపయోగకరంగా ఉంటుంది. ఉదాహరణకు, TCPని ఉపయోగించి ధృవీకరణ కోసం ప్రధాన సేవలు gRPC లేదా FTP.
పరీక్షలను వివిధ పారామితులతో అనేక విధాలుగా కాన్ఫిగర్ చేయవచ్చు. మీరు వాటిని ఎంత తరచుగా అమలు చేయాలి, విజయం మరియు వైఫల్యాల థ్రెషోల్డ్లు ఏమిటి మరియు ప్రతిస్పందనల కోసం ఎంతకాలం వేచి ఉండాలో పేర్కొనవచ్చు. మరింత సమాచారం కోసం, సంసిద్ధత మరియు లైవ్నెస్ పరీక్షల కోసం డాక్యుమెంటేషన్ చూడండి. ఏది ఏమైనప్పటికీ, లైవ్నెస్ పరీక్షను సెటప్ చేయడంలో చాలా ముఖ్యమైన అంశం ఒకటి ఉంది - టెస్టింగ్ ఆలస్యం ప్రారంభ డిలేసెకన్ల ప్రారంభ సెట్టింగ్. నేను చెప్పినట్లుగా, ఈ పరీక్షలో వైఫల్యం మాడ్యూల్ పునఃప్రారంభించబడుతుంది. కాబట్టి మీరు అప్లికేషన్ సిద్ధంగా ఉండే వరకు పరీక్ష ప్రారంభించబడదని నిర్ధారించుకోవాలి, లేకుంటే అది రీస్టార్ట్ల ద్వారా సైక్లింగ్ను ప్రారంభిస్తుంది. నేను P99 ప్రారంభ సమయం లేదా బఫర్ నుండి సగటు అప్లికేషన్ ప్రారంభ సమయాన్ని ఉపయోగించమని సిఫార్సు చేస్తున్నాను. మీ అప్లికేషన్ యొక్క ప్రారంభ సమయం వేగంగా లేదా నెమ్మదిగా ఉన్నందున ఈ విలువను సర్దుబాటు చేయాలని గుర్తుంచుకోండి.
ఏదైనా పంపిణీ వ్యవస్థకు ఆరోగ్య తనిఖీలు తప్పనిసరి తనిఖీ అని చాలా మంది నిపుణులు నిర్ధారిస్తారు మరియు కుబెర్నెట్స్ మినహాయింపు కాదు. సర్వీస్ హెల్త్ చెక్లను ఉపయోగించడం వలన కుబెర్నెట్స్ యొక్క విశ్వసనీయమైన, ఇబ్బంది లేని ఆపరేషన్ను నిర్ధారిస్తుంది మరియు వినియోగదారులకు ఎటువంటి ఇబ్బంది లేకుండా ఉంటుంది.
అతి త్వరలో కొనసాగుతుంది...
కొన్ని ప్రకటనలు 🙂
మాతో ఉన్నందుకు ధన్యవాదాలు. మీరు మా కథనాలను ఇష్టపడుతున్నారా? మరింత ఆసక్తికరమైన కంటెంట్ని చూడాలనుకుంటున్నారా? ఆర్డర్ చేయడం ద్వారా లేదా స్నేహితులకు సిఫార్సు చేయడం ద్వారా మాకు మద్దతు ఇవ్వండి,
ఆమ్స్టర్డామ్లోని ఈక్వినిక్స్ టైర్ IV డేటా సెంటర్లో Dell R730xd 2x చౌకగా ఉందా? ఇక్కడ మాత్రమే
మూలం: www.habr.com