Google ప్రకారం కంటైనర్లను ఉపయోగించడం కోసం 7 ఉత్తమ పద్ధతులు
గమనిక. అనువాదం.: ఒరిజినల్ ఆర్టికల్ రచయిత థియో చామ్లీ, గూగుల్ క్లౌడ్ సొల్యూషన్స్ ఆర్కిటెక్ట్. Google క్లౌడ్ బ్లాగ్ కోసం ఈ పోస్ట్లో, అతను తన కంపెనీ యొక్క మరింత వివరణాత్మక గైడ్ యొక్క సారాంశాన్ని అందించాడు, "ఆపరేటింగ్ కంటైనర్ల కోసం ఉత్తమ పద్ధతులు" దీనిలో, Google నిపుణులు Google Kubernetes ఇంజిన్ మరియు మరిన్నింటిని ఉపయోగించే సందర్భంలో కంటైనర్లను ఆపరేటింగ్ చేయడానికి ఉత్తమమైన అభ్యాసాలను సేకరించారు, విస్తృత శ్రేణి అంశాలను తాకారు: భద్రత నుండి పర్యవేక్షణ మరియు లాగింగ్ వరకు. కాబట్టి Google ప్రకారం అత్యంత ముఖ్యమైన కంటైనర్ పద్ధతులు ఏమిటి?
కుబెర్నెటెస్ ఇంజిన్(Google క్లౌడ్లో కంటెయినరైజ్డ్ అప్లికేషన్లను అమలు చేయడానికి కుబెర్నెట్స్ ఆధారిత సేవ - సుమారు అనువాదం) స్కేల్ చేయాల్సిన పనిభారాన్ని అమలు చేయడానికి ఉత్తమ మార్గాలలో ఒకటి. Kubernetes చాలా అప్లికేషన్లు కంటెయినరైజ్ చేయబడితే వాటి సజావుగా పని చేస్తుంది. కానీ మీరు మీ అప్లికేషన్ను నిర్వహించడం సులభం కావాలనుకుంటే మరియు కుబెర్నెట్ల యొక్క పూర్తి ప్రయోజనాన్ని పొందాలనుకుంటే, మీరు ఉత్తమ పద్ధతులను అనుసరించాలి. వారు అప్లికేషన్ యొక్క ఆపరేషన్, దాని పర్యవేక్షణ మరియు డీబగ్గింగ్ను సులభతరం చేస్తారు మరియు భద్రతను కూడా పెంచుతారు.
ఈ కథనంలో, కుబెర్నెట్స్లో కంటైనర్లను సమర్థవంతంగా అమలు చేయడానికి మీరు తెలుసుకోవలసిన మరియు చేయవలసిన విషయాల జాబితాను మేము పరిశీలిస్తాము. వివరాల్లోకి వెళ్లాలనుకునే వారు మెటీరియల్ చదవాలి ఆపరేటింగ్ కంటైనర్ల కోసం ఉత్తమ పద్ధతులు, మరియు కూడా మా దృష్టి చెల్లించండి మునుపటి పోస్ట్ కంటైనర్లను సమీకరించడం గురించి.
1. స్థానిక కంటైనర్ లాగింగ్ మెకానిజమ్లను ఉపయోగించండి
అప్లికేషన్ Kubernetes క్లస్టర్లో రన్ అవుతున్నట్లయితే, లాగ్ల కోసం ఎక్కువ అవసరం లేదు. మీరు ఉపయోగిస్తున్న క్లస్టర్లో కేంద్రీకృత లాగింగ్ సిస్టమ్ ఇప్పటికే నిర్మించబడి ఉండవచ్చు. కుబెర్నెటెస్ ఇంజిన్ను ఉపయోగించే విషయంలో, ఇది బాధ్యత వహిస్తుంది Stackdriver లాగింగ్. (గమనిక. అనువాదం.: మరియు మీరు మీ స్వంత కుబెర్నెట్స్ ఇన్స్టాలేషన్ని ఉపయోగిస్తుంటే, మా ఓపెన్ సోర్స్ సొల్యూషన్ని నిశితంగా పరిశీలించాలని మేము సిఫార్సు చేస్తున్నాము - లాగ్హౌస్.) మీ జీవితాన్ని సరళంగా ఉంచండి మరియు స్థానిక కంటైనర్ లాగింగ్ మెకానిజమ్లను ఉపయోగించండి. stdout మరియు stderr లకు లాగ్లను వ్రాయండి - అవి స్వయంచాలకంగా స్వీకరించబడతాయి, సేవ్ చేయబడతాయి మరియు సూచిక చేయబడతాయి.
కావాలనుకుంటే, మీరు లాగ్లను కూడా వ్రాయవచ్చు JSON ఫార్మాట్. ఈ విధానం వారికి మెటాడేటాను జోడించడాన్ని సులభతరం చేస్తుంది. మరియు వాటితో, Stackdriver లాగింగ్ ఈ మెటాడేటాను ఉపయోగించి లాగ్ల ద్వారా శోధించే సామర్థ్యాన్ని కలిగి ఉంటుంది.
2. కంటైనర్లు స్థితిలేనివి మరియు మార్పులేనివిగా ఉన్నాయని నిర్ధారించుకోండి
కుబెర్నెట్స్ క్లస్టర్లో కంటైనర్లు సరిగ్గా పనిచేయాలంటే, అవి స్థిరంగా మరియు మార్పులేనివిగా ఉండాలి. ఈ షరతులు నెరవేరిన తర్వాత, కుబెర్నెటెస్ తన పనిని చేయగలదు, అవసరమైనప్పుడు మరియు ఎక్కడ అప్లికేషన్ ఎంటిటీలను సృష్టించడం మరియు నాశనం చేయడం.
శాశ్వతమని కంటైనర్ దాని జీవితకాలంలో సవరించబడదని అర్థం: నవీకరణలు, పాచెస్, కాన్ఫిగరేషన్ మార్పులు లేవు. మీరు మీ అప్లికేషన్ కోడ్ను అప్డేట్ చేయాలనుకుంటే లేదా ప్యాచ్ను వర్తింపజేయాలనుకుంటే, కొత్త చిత్రాన్ని సృష్టించి, దాన్ని అమలు చేయండి. కంటైనర్ కాన్ఫిగరేషన్ను (లిజనింగ్ పోర్ట్, రన్టైమ్ ఎన్విరాన్మెంట్ ఆప్షన్లు మొదలైనవి) బాహ్యంగా తరలించాలని సిఫార్సు చేయబడింది. సీక్రెట్స్ и ConfigMaps. కొత్త కంటైనర్ ఇమేజ్ని నిర్మించాల్సిన అవసరం లేకుండానే వాటిని అప్డేట్ చేయవచ్చు. ఇమేజ్ అసెంబ్లీతో పైప్లైన్లను సులభంగా సృష్టించడానికి, మీరు ఉపయోగించవచ్చు క్లౌడ్ బిల్డ్. (గమనిక. అనువాదం.: మేము ఈ ప్రయోజనాల కోసం ఓపెన్ సోర్స్ సాధనాన్ని ఉపయోగిస్తాము డప్.)
కాన్ఫిగరేషన్గా పాడ్లలో మౌంట్ చేయబడిన కాన్ఫిగ్మ్యాప్ను ఉపయోగించి కుబెర్నెట్స్లో డిప్లాయ్మెంట్ కాన్ఫిగరేషన్ను నవీకరించడానికి ఉదాహరణ
3. విశేషమైన కంటైనర్లను నివారించండి
మీరు మీ సర్వర్లలో అప్లికేషన్లను రూట్గా అమలు చేయరు, సరియైనదా? దాడి చేసే వ్యక్తి అప్లికేషన్లోకి ప్రవేశించినట్లయితే, అతను రూట్ యాక్సెస్ను పొందుతాడు. ప్రివిలేజ్డ్ కంటైనర్లను నడపకపోవడానికి అదే పరిగణనలు వర్తిస్తాయి. మీరు హోస్ట్లో సెట్టింగ్లను మార్చాలనుకుంటే, మీరు నిర్దిష్ట కంటైనర్ను ఇవ్వవచ్చు సామర్థ్యాలు ఎంపికను ఉపయోగించి securityContext కుబెర్నెట్స్లో. మీరు మార్చవలసి వస్తే sysctls, కుబెర్నెటెస్ కలిగి ఉంది ప్రత్యేక వియుక్త దీని కొరకు. సాధారణంగా, ఎక్కువ ప్రయోజనం పొందడానికి ప్రయత్నించండి అందులో- మరియు సైడ్కార్ కంటైనర్లు ఇలాంటి ప్రత్యేక కార్యకలాపాలను నిర్వహించడానికి. వారు అంతర్గత లేదా బాహ్య ట్రాఫిక్కు ప్రాప్యత చేయవలసిన అవసరం లేదు.
మీరు క్లస్టర్ని నిర్వహిస్తే, మీరు ఉపయోగించవచ్చు పాడ్ భద్రతా విధానం విశేషమైన కంటైనర్ల వాడకంపై పరిమితుల కోసం.
4. రూట్గా రన్ చేయడాన్ని నివారించండి
ప్రివిలేజ్డ్ కంటైనర్లు ఇప్పటికే చర్చించబడ్డాయి, అయితే దీనికి అదనంగా, మీరు కంటైనర్లోని అప్లికేషన్లను రూట్గా అమలు చేయకపోతే మరింత మంచిది. దాడి చేసే వ్యక్తి కోడ్ అమలును అనుమతించే రూట్ హక్కులతో కూడిన అప్లికేషన్లో రిమోట్ దుర్బలత్వాన్ని కనుగొంటే, ఆ తర్వాత అతను ఇంకా తెలియని దుర్బలత్వం ద్వారా కంటైనర్ను వదిలివేయగలిగితే, అతను హోస్ట్లో రూట్ పొందుతాడు.
దీన్ని నివారించడానికి ఉత్తమ మార్గం ఏమిటంటే, ఏదైనా మొదటి స్థానంలో రూట్గా అమలు చేయకూడదు. దీన్ని చేయడానికి, మీరు ఆదేశాన్ని ఉపయోగించవచ్చు USER в Dockerfile లేదా runAsUser కుబెర్నెట్స్లో. క్లస్టర్ అడ్మినిస్ట్రేటర్ ఉపయోగించి అమలు ప్రవర్తనను కూడా కాన్ఫిగర్ చేయవచ్చు పాడ్ భద్రతా విధానం.
5. అప్లికేషన్ను పర్యవేక్షించడం సులభం చేయండి
లాగింగ్ లాగా, పర్యవేక్షణ అనేది అప్లికేషన్ మేనేజ్మెంట్లో అంతర్భాగం. కుబెర్నెటెస్ సంఘంలో ఒక ప్రముఖ పర్యవేక్షణ పరిష్కారం ప్రోమేతియస్ - పర్యవేక్షణ అవసరమయ్యే పాడ్లు మరియు సేవలను స్వయంచాలకంగా గుర్తించే సిస్టమ్. (గమనిక. అనువాదం.: మాది కూడా చూడండి వివరణాత్మక నివేదిక ప్రోమేతియస్ మరియు కుబెర్నెట్స్ ఉపయోగించి పర్యవేక్షణ అంశంపై.)స్టాక్డ్రైవర్ కుబెర్నెటెస్ క్లస్టర్లను పర్యవేక్షించగల సామర్థ్యం కలిగి ఉంది మరియు అప్లికేషన్ మానిటరింగ్ కోసం దాని స్వంత ప్రోమేథియస్ వెర్షన్ను కలిగి ఉంటుంది.
Stackdriverలో Kubernetes డ్యాష్బోర్డ్
ప్రోమేతియస్ అప్లికేషన్ కొలమానాలను HTTP ముగింపు పాయింట్కి ఫార్వార్డ్ చేయాలని ఆశించింది. దీని కోసం అందుబాటులో ఉంది ప్రోమేతియస్ క్లయింట్ లైబ్రరీలు. అదే ఫార్మాట్ వంటి ఇతర సాధనాల ద్వారా ఉపయోగించబడుతుంది ఓపెన్ సెన్సస్ и ఇస్టియో.
6. యాప్ ఆరోగ్య స్థితిని అందుబాటులో ఉంచండి
ఉత్పత్తిలో అప్లికేషన్ నిర్వహణ దాని స్థితిని మొత్తం వ్యవస్థకు తెలియజేయగల సామర్థ్యం ద్వారా సహాయపడుతుంది. అప్లికేషన్ అమలులో ఉందా? సరేనా? మీరు ట్రాఫిక్ని స్వీకరించడానికి సిద్ధంగా ఉన్నారా? అతను ఎలా ప్రవర్తిస్తున్నాడు? ఈ సమస్యను పరిష్కరించడానికి అత్యంత సాధారణ మార్గం ఆరోగ్య తనిఖీలను అమలు చేయడం (ఆరోగ్య తనిఖీలు). కుబెర్నెట్స్ రెండు రకాలు: సజీవత మరియు సంసిద్ధత ప్రోబ్స్.
లైవ్నెస్ ప్రోబ్ కోసం (జీవశక్తి తనిఖీలు) అప్లికేషన్ తప్పనిసరిగా HTTP ఎండ్పాయింట్ను కలిగి ఉండాలి, అది ఫంక్షనల్గా ఉంటే మరియు దాని ప్రాథమిక డిపెండెన్సీలు సంతృప్తి చెందినట్లయితే "200 OK" ప్రతిస్పందనను అందిస్తుంది. సంసిద్ధత ప్రోబ్ కోసం (సేవా సంసిద్ధత తనిఖీలు) అప్లికేషన్ ఆరోగ్యకరమైన స్థితిలో ఉంటే, ప్రారంభ దశలు పూర్తయ్యాయి మరియు ఏదైనా చెల్లుబాటు అయ్యే అభ్యర్థన లోపం ఏర్పడకపోతే, అప్లికేషన్ తప్పనిసరిగా "200 సరే" ప్రతిస్పందనను అందించే మరొక HTTP ముగింపు బిందువును కలిగి ఉండాలి. ఈ తనిఖీల ప్రకారం అప్లికేషన్ సిద్ధంగా ఉంటే మాత్రమే కుబెర్నెట్స్ ట్రాఫిక్ను కంటైనర్కు దారి తీస్తుంది. లైవ్నెస్ మరియు రెడినెస్ స్టేట్ల మధ్య తేడా లేనట్లయితే రెండు ఎండ్ పాయింట్లను విలీనం చేయవచ్చు.
చాలా పబ్లిక్ మరియు ప్రైవేట్ ఇమేజ్లు వివరించిన విధంగానే ట్యాగింగ్ సిస్టమ్ను ఉపయోగిస్తాయి కంటైనర్లను నిర్మించడానికి ఉత్తమ పద్ధతులు. చిత్రం దగ్గరగా సిస్టమ్ను ఉపయోగిస్తుంటే అర్థ సంస్కరణ, ట్యాగింగ్ యొక్క ప్రత్యేకతలను పరిగణనలోకి తీసుకోవడం అవసరం. ఉదాహరణకు, ట్యాగ్ latest ఇమేజ్ నుండి ఇమేజ్కి తరచుగా తరలించవచ్చు - మీకు ఊహించదగిన మరియు పునరావృతమయ్యే బిల్డ్లు మరియు ఇన్స్టాలేషన్లు అవసరమైతే దానిపై ఆధారపడలేము.
మీరు ట్యాగ్ని ఉపయోగించవచ్చు X.Y.Z (అవి దాదాపు ఎల్లప్పుడూ మారవు), కానీ ఈ సందర్భంలో, చిత్రానికి సంబంధించిన అన్ని ప్యాచ్లు మరియు అప్డేట్లను ట్రాక్ చేయండి. మీరు ఉపయోగిస్తున్న చిత్రానికి ట్యాగ్ ఉంటే X.Y, బంగారు సగటు కోసం ఇది మంచి ఎంపిక. దీన్ని ఎంచుకోవడం ద్వారా, మీరు స్వయంచాలకంగా ప్యాచ్లను స్వీకరిస్తారు మరియు అదే సమయంలో అప్లికేషన్ యొక్క స్థిరమైన సంస్కరణపై ఆధారపడతారు.