హెల్మ్ పరికరం మరియు దాని ఆపదలు

హెల్మ్ పరికరం మరియు దాని ఆపదలు
టైఫాన్ ఫ్రైట్ హాలర్ కాన్సెప్ట్, అంటోన్ స్వాన్‌పోయెల్

నా పేరు డిమిత్రి సుగ్రోబోవ్, నేను లెరోయ్ మెర్లిన్‌లో డెవలపర్‌ని. హెల్మ్ ఎందుకు అవసరమో, ఇది కుబెర్నెట్స్‌తో పనిని ఎలా సులభతరం చేస్తుంది, మూడవ సంస్కరణలో ఏమి మార్చబడింది మరియు పనికిరాని సమయంలో ఉత్పత్తిలో అప్లికేషన్‌లను నవీకరించడానికి దీన్ని ఎలా ఉపయోగించాలో ఈ వ్యాసంలో నేను మీకు చెప్తాను.

ఇది ఒక సమావేశంలో చేసిన ప్రసంగం ఆధారంగా సారాంశం @కుబెర్నెట్స్ కాన్ఫరెన్స్ by Mail.ru క్లౌడ్ సొల్యూషన్స్ — మీరు చదవకూడదనుకుంటే, వీడియోను చూడండి.

మేము ఉత్పత్తిలో కుబెర్నెట్‌లను ఎందుకు ఉపయోగిస్తాము

లెరోయ్ మెర్లిన్ రష్యా మరియు ఐరోపాలో DIY రిటైల్ మార్కెట్లో అగ్రగామి. మా కంపెనీకి వంద మందికి పైగా డెవలపర్‌లు, 33 మంది అంతర్గత ఉద్యోగులు మరియు హైపర్‌మార్కెట్లు మరియు వెబ్‌సైట్‌ను సందర్శించే భారీ సంఖ్యలో వ్యక్తులు ఉన్నారు. వారందరినీ సంతోషపెట్టడానికి, మేము పరిశ్రమ ప్రామాణిక విధానాలను అనుసరించాలని నిర్ణయించుకున్నాము. మైక్రోసర్వీస్ ఆర్కిటెక్చర్ ఉపయోగించి కొత్త అప్లికేషన్‌లను అభివృద్ధి చేయండి; పరిసరాలను వేరుచేయడానికి మరియు సరైన డెలివరీని నిర్ధారించడానికి కంటైనర్లను ఉపయోగించండి; మరియు ఆర్కెస్ట్రేషన్ కోసం Kubernetes ఉపయోగించండి. ఆర్కెస్ట్రేటర్‌లను ఉపయోగించడం యొక్క ధర వేగంగా చౌకగా మారుతోంది: సాంకేతిక పరిజ్ఞానంలో నైపుణ్యం కలిగిన ఇంజనీర్ల సంఖ్య మార్కెట్లో పెరుగుతోంది మరియు ప్రొవైడర్లు కుబెర్నెట్‌లను ఒక సేవగా అందిస్తున్నారు.

కుబెర్నెటెస్ చేసే ప్రతి పనిని ఇతర మార్గాల్లో చేయవచ్చు, ఉదాహరణకు, కొన్ని జెంకిన్‌లను కవర్ చేయడం మరియు స్క్రిప్ట్‌లతో డాకర్-కంపోజ్ చేయడం ద్వారా, కానీ రెడీమేడ్ మరియు నమ్మదగిన పరిష్కారం ఉంటే జీవితాన్ని ఎందుకు క్లిష్టతరం చేయాలి? అందుకే మేము కుబెర్నెటెస్‌కి వచ్చాము మరియు ఇప్పుడు ఒక సంవత్సరం నుండి ఉత్పత్తిలో ఉపయోగిస్తున్నాము. మేము ప్రస్తుతం ఇరవై నాలుగు కుబెర్నెట్స్ క్లస్టర్‌లను కలిగి ఉన్నాము, వీటిలో పురాతనమైనది ఒక సంవత్సరం కంటే ఎక్కువ వయస్సు ఉంది, దాదాపు రెండు వందల పాడ్‌లు ఉన్నాయి.

కుబెర్నెట్స్‌లో పెద్ద YAML ఫైల్‌ల శాపం

కుబెర్నెట్స్‌లో మైక్రోసర్వీస్‌ని ప్రారంభించడానికి, మేము కనీసం ఐదు YAML ఫైల్‌లను సృష్టిస్తాము: విస్తరణ, సేవ, ప్రవేశం, కాన్ఫిగ్‌మ్యాప్, రహస్యాలు - మరియు వాటిని క్లస్టర్‌కు పంపుతాము. తదుపరి అప్లికేషన్ కోసం మేము జాంబ్స్ యొక్క అదే ప్యాకేజీని వ్రాస్తాము, మూడవ దానితో మేము మరొకదానిని వ్రాస్తాము మరియు మొదలైనవి. మేము ఎన్విరాన్మెంట్ల సంఖ్యతో పత్రాల సంఖ్యను గుణిస్తే, మేము ఇప్పటికే వందల కొద్దీ ఫైళ్లను పొందుతాము మరియు ఇది ఇంకా డైనమిక్ పరిసరాలను పరిగణనలోకి తీసుకోలేదు.

హెల్మ్ పరికరం మరియు దాని ఆపదలు
హెల్మ్ యొక్క ప్రధాన నిర్వహణదారు అయిన ఆడమ్ రీస్ " అనే భావనను పరిచయం చేశారు.కుబెర్నెట్స్‌లో అభివృద్ధి చక్రం", ఇది ఇలా కనిపిస్తుంది:

  1. YAMLని కాపీ చేయండి - YAML ఫైల్‌ను కాపీ చేయండి.
  2. YAMLని అతికించండి - అతికించండి.
  3. ఇండెంట్లను పరిష్కరించండి - ఇండెంట్లను పరిష్కరించండి.
  4. పునరావృతం - మళ్ళీ పునరావృతం చేయండి.

ఎంపిక పనిచేస్తుంది, కానీ మీరు YAML ఫైల్‌లను చాలాసార్లు కాపీ చేయాలి. ఈ చక్రాన్ని మార్చడానికి, హెల్మ్ కనుగొనబడింది.

హెల్మ్ అంటే ఏమిటి

మొదట, హెల్మ్ - ప్యాకేజీ మేనేజర్, ఇది మీకు అవసరమైన ప్రోగ్రామ్‌లను కనుగొని, ఇన్‌స్టాల్ చేయడంలో మీకు సహాయపడుతుంది. ఇన్‌స్టాల్ చేయడానికి, ఉదాహరణకు, MongoDB, మీరు అధికారిక వెబ్‌సైట్‌కి వెళ్లి బైనరీలను డౌన్‌లోడ్ చేయనవసరం లేదు, ఆదేశాన్ని అమలు చేయండి helm install stable/mongodb.

రెండవది, హెల్మ్ - టెంప్లేట్ ఇంజిన్, ఫైళ్లను పారామీటర్ చేయడానికి సహాయపడుతుంది. కుబెర్నెట్స్‌లోని YAML ఫైల్‌లతో పరిస్థితికి తిరిగి వెళ్దాం. అదే YAML ఫైల్‌ను వ్రాయడం సులభం, దానికి కొన్ని ప్లేస్‌హోల్డర్‌లను జోడించండి, దానిలో హెల్మ్ విలువలను భర్తీ చేస్తుంది. అంటే, పెద్ద పరంజాలకు బదులుగా, అవసరమైన విలువలు సరైన సమయంలో భర్తీ చేయబడే టెంప్లేట్‌ల సమితి ఉంటుంది.

మూడవదిగా, హెల్మ్ - విస్తరణ మాస్టర్. దానితో మీరు అప్లికేషన్‌లను ఇన్‌స్టాల్ చేసుకోవచ్చు, రోల్‌బ్యాక్ చేయవచ్చు మరియు అప్‌డేట్ చేయవచ్చు. దీన్ని ఎలా చేయాలో తెలుసుకుందాం.

హెల్మ్ పరికరం మరియు దాని ఆపదలు

మీ స్వంత అప్లికేషన్‌లను అమలు చేయడానికి హెల్మ్‌ని ఎలా ఉపయోగించాలి

అధికారికాన్ని అనుసరించి, మీ కంప్యూటర్‌లో హెల్మ్ క్లయింట్‌ను ఇన్‌స్టాల్ చేద్దాం సూచనలను. తరువాత, మేము YAML ఫైల్‌ల సమితిని సృష్టిస్తాము. నిర్దిష్ట విలువలను పేర్కొనడానికి బదులుగా, మేము ప్లేస్‌హోల్డర్‌లను వదిలివేస్తాము, భవిష్యత్తులో హెల్మ్ సమాచారాన్ని నింపుతుంది. అటువంటి ఫైళ్ల సమితిని హెల్మ్ చార్ట్ అంటారు. ఇది హెల్మ్ కన్సోల్ క్లయింట్‌కు మూడు మార్గాల్లో పంపబడుతుంది:

  • టెంప్లేట్‌లతో ఫోల్డర్‌ను సూచించండి;
  • ఆర్కైవ్‌ను ఒక .tar లోకి ప్యాక్ చేసి దానికి సూచించండి;
  • టెంప్లేట్‌ను రిమోట్ రిపోజిటరీలో ఉంచండి మరియు హెల్మ్ క్లయింట్‌లోని రిపోజిటరీకి లింక్‌ను జోడించండి.

మీకు విలువలతో కూడిన ఫైల్ కూడా అవసరం - values.yaml. అక్కడ నుండి డేటా టెంప్లేట్‌లో చొప్పించబడుతుంది. దాన్ని కూడా క్రియేట్ చేద్దాం.

హెల్మ్ పరికరం మరియు దాని ఆపదలు
హెల్మ్ యొక్క రెండవ సంస్కరణలో అదనపు సర్వర్ అప్లికేషన్ ఉంది - టిల్లర్. ఇది కుబెర్నెటెస్ వెలుపల వేలాడదీయబడుతుంది మరియు హెల్మ్ క్లయింట్ నుండి అభ్యర్థనల కోసం వేచి ఉంటుంది మరియు పిలిచినప్పుడు, అవసరమైన విలువలను టెంప్లేట్‌లో భర్తీ చేస్తుంది మరియు దానిని కుబెర్నెట్‌లకు పంపుతుంది.

హెల్మ్ పరికరం మరియు దాని ఆపదలు
హెల్మ్ 3 సరళమైనది: సర్వర్‌లో టెంప్లేట్‌లను ప్రాసెస్ చేయడానికి బదులుగా, సమాచారం ఇప్పుడు పూర్తిగా హెల్మ్ క్లయింట్ వైపు ప్రాసెస్ చేయబడుతుంది మరియు నేరుగా కుబెర్నెటెస్ APIకి పంపబడుతుంది. ఈ సరళీకరణ క్లస్టర్ భద్రతను మెరుగుపరుస్తుంది మరియు రోల్‌అవుట్ పథకాన్ని సులభతరం చేస్తుంది.

అవన్నీ ఎలా పని చేస్తాయి

ఆదేశాన్ని అమలు చేయండి helm install. అప్లికేషన్ విడుదల పేరును సూచిస్తాము మరియు values.yamlకి పాత్ ఇద్దాం. చివరిలో మేము చార్ట్ ఉన్న రిపోజిటరీని మరియు చార్ట్ పేరును సూచిస్తాము. ఉదాహరణలో, ఇవి వరుసగా “lmru” మరియు “bestchart”.

helm install --name bestapp --values values.yaml lmru/bestchart

కమాండ్ ఒకసారి మాత్రమే అమలు చేయబడుతుంది, బదులుగా మళ్లీ అమలు చేసినప్పుడు install ఉపయోగించాలి upgrade. సరళత కోసం, రెండు ఆదేశాలకు బదులుగా, మీరు ఆదేశాన్ని అమలు చేయవచ్చు upgrade అదనపు కీతో --install. మొదటిసారిగా అమలు చేయబడినప్పుడు, విడుదలను ఇన్‌స్టాల్ చేయడానికి హెల్మ్ ఒక ఆదేశాన్ని పంపుతుంది మరియు భవిష్యత్తులో దాన్ని నవీకరిస్తుంది.

helm upgrade --install bestapp --values values.yaml lmru/bestchart

హెల్మ్‌తో అప్లికేషన్ యొక్క కొత్త వెర్షన్‌లను అమలు చేయడంలో ఆపదలు

కథలోని ఈ సమయంలో, నేను ప్రేక్షకులతో హూ వాంట్స్ టు బి ఎ మిలియనీర్‌ని ప్లే చేస్తున్నాను మరియు యాప్ వెర్షన్‌ను అప్‌డేట్ చేయడానికి హెల్మ్‌ను ఎలా పొందాలో మేము కనుగొంటున్నాము. వీడియో చూడండి.

నేను హెల్మ్ ఎలా పనిచేస్తుందో తెలుసుకుంటున్నప్పుడు, రన్నింగ్ అప్లికేషన్ల వెర్షన్‌లను అప్‌డేట్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు వింత ప్రవర్తన చూసి నేను ఆశ్చర్యపోయాను. నేను అప్లికేషన్ కోడ్‌ని అప్‌డేట్ చేసాను, డాకర్ రిజిస్ట్రీకి కొత్త ఇమేజ్‌ని అప్‌లోడ్ చేసాను, డిప్లాయ్‌మెంట్ కమాండ్ పంపాను - మరియు ఏమీ జరగలేదు. అప్లికేషన్‌లను అప్‌డేట్ చేయడానికి పూర్తిగా విజయవంతం కాని కొన్ని మార్గాలు క్రింద ఉన్నాయి. వాటిలో ప్రతి ఒక్కటి మరింత వివరంగా అధ్యయనం చేయడం ద్వారా, మీరు పరికరం యొక్క అంతర్గత నిర్మాణాన్ని మరియు ఈ స్పష్టమైన ప్రవర్తనకు కారణాలను అర్థం చేసుకోవడం ప్రారంభిస్తారు.

విధానం 1. చివరి ప్రయోగం నుండి సమాచారాన్ని మార్చవద్దు

క్యాక్ గ్లాసిట్ అధికారిక వెబ్సైట్ హెల్మ్, "కుబెర్నెట్స్ చార్ట్‌లు పెద్దవిగా మరియు సంక్లిష్టంగా ఉంటాయి, కాబట్టి హెల్మ్ దేనినీ ఎక్కువగా తాకకూడదని ప్రయత్నిస్తుంది." అందువల్ల, మీరు డాకర్ రిజిస్ట్రీలో అప్లికేషన్ ఇమేజ్ యొక్క తాజా సంస్కరణను నవీకరించినట్లయితే మరియు ఆదేశాన్ని అమలు చేయండి helm upgrade, అప్పుడు ఏమీ జరగదు. హెల్మ్ ఏమీ మారలేదని మరియు అప్లికేషన్‌ను అప్‌డేట్ చేయడానికి కుబెర్నెట్స్‌కి కమాండ్ పంపాల్సిన అవసరం లేదని అనుకుంటుంది.

ఇక్కడ మరియు దిగువన, తాజా ట్యాగ్ కేవలం ఉదాహరణగా చూపబడింది. మీరు ఈ ట్యాగ్‌ని పేర్కొన్నప్పుడు, Kubernetes ఇమేజ్‌పుల్‌పాలీసీ పరామితితో సంబంధం లేకుండా ప్రతిసారీ డాకర్ రిజిస్ట్రీ నుండి చిత్రాన్ని డౌన్‌లోడ్ చేస్తుంది. తాజా ఉత్పత్తిని ఉపయోగించడం అవాంఛనీయమైనది మరియు దుష్ప్రభావాలకు కారణమవుతుంది.

విధానం 2. చిత్రంలో LABELని నవీకరించండి

అదే వ్రాసినట్లు డాక్యుమెంటేషన్, "చివరి విడుదల నుండి అప్లికేషన్ మారినట్లయితే మాత్రమే హెల్మ్ అప్‌డేట్ చేస్తుంది." దీని కోసం లాజికల్ ఐచ్ఛికం డాకర్ ఇమేజ్‌లోనే LABELని అప్‌డేట్ చేస్తున్నట్లుగా కనిపిస్తుంది. అయినప్పటికీ, హెల్మ్ అప్లికేషన్ ఇమేజ్‌లను చూడదు మరియు వాటికి ఎలాంటి మార్పుల గురించి తెలియదు. దీని ప్రకారం, చిత్రంలో లేబుల్‌లను అప్‌డేట్ చేస్తున్నప్పుడు, హెల్మ్‌కి వాటి గురించి తెలియదు మరియు అప్లికేషన్ అప్‌డేట్ కమాండ్ కుబెర్నెట్స్‌కి పంపబడదు.

విధానం 3: కీని ఉపయోగించండి --force

హెల్మ్ పరికరం మరియు దాని ఆపదలు
మాన్యువల్స్ వైపు తిరగండి మరియు అవసరమైన కీ కోసం చూద్దాం. కీ చాలా అర్ధమే --force. స్పష్టమైన పేరు ఉన్నప్పటికీ, ప్రవర్తన ఊహించిన దానికి భిన్నంగా ఉంటుంది. అప్లికేషన్ అప్‌డేట్‌ను బలవంతం చేయడానికి బదులుగా, విఫలమైన స్థితిలో ఉన్న విడుదలను పునరుద్ధరించడం దాని అసలు ఉద్దేశ్యం. మీరు ఈ కీని ఉపయోగించకపోతే, మీరు ఆదేశాలను వరుసగా అమలు చేయాలి helm delete && helm install --replace. బదులుగా కీని ఉపయోగించమని సూచించబడింది --force, ఇది ఈ ఆదేశాల వరుస అమలును ఆటోమేట్ చేస్తుంది. ఇందులో మరింత సమాచారం అభ్యర్థనను లాగండి. అప్లికేషన్ వెర్షన్‌ను అప్‌డేట్ చేయమని హెల్మ్‌కి చెప్పడానికి, దురదృష్టవశాత్తూ, ఈ కీ పని చేయదు.

విధానం 4. నేరుగా కుబెర్నెట్స్‌లో లేబుల్‌లను మార్చండి

హెల్మ్ పరికరం మరియు దాని ఆపదలు
కమాండ్‌ని ఉపయోగించి క్లస్టర్‌లో నేరుగా లేబుల్‌ని నవీకరిస్తోంది kubectl edit - చెడు ఆలోచన. ఈ చర్య అమలులో ఉన్న అప్లికేషన్ మరియు వాస్తవానికి అమలు కోసం పంపబడిన దాని మధ్య సమాచారం యొక్క అస్థిరతకు దారి తీస్తుంది. ఈ సందర్భంలో విస్తరణ సమయంలో హెల్మ్ యొక్క ప్రవర్తన దాని సంస్కరణకు భిన్నంగా ఉంటుంది: హెల్మ్ 2 ఏమీ చేయదు మరియు హెల్మ్ 3 అప్లికేషన్ యొక్క కొత్త వెర్షన్‌ను అమలు చేస్తుంది. ఎందుకు అర్థం చేసుకోవడానికి, మీరు హెల్మ్ ఎలా పనిచేస్తుందో అర్థం చేసుకోవాలి.

హెల్మ్ ఎలా పని చేస్తుంది?

అప్లికేషన్ దాని చివరి విడుదల నుండి మార్చబడిందో లేదో తెలుసుకోవడానికి, హెల్మ్ వీటిని ఉపయోగించవచ్చు:

  • Kubernetes లో అప్లికేషన్ అమలు;
  • కొత్త విలువలు.yaml మరియు ప్రస్తుత చార్ట్;
  • హెల్మ్ యొక్క అంతర్గత విడుదల సమాచారం.

మరింత ఉత్సుకత కోసం: విడుదలల గురించి అంతర్గత సమాచారాన్ని హెల్మ్ ఎక్కడ నిల్వ చేస్తుంది?ఆదేశాన్ని అమలు చేయడం ద్వారా helm history, మేము హెల్మ్ ఉపయోగించి ఇన్‌స్టాల్ చేసిన సంస్కరణల గురించి మొత్తం సమాచారాన్ని పొందుతాము.

హెల్మ్ పరికరం మరియు దాని ఆపదలు
పంపిన టెంప్లేట్‌లు మరియు విలువల గురించి వివరణాత్మక సమాచారం కూడా ఉంది. మేము దానిని అభ్యర్థించవచ్చు:

హెల్మ్ పరికరం మరియు దాని ఆపదలు
హెల్మ్ యొక్క రెండవ సంస్కరణలో, ఈ సమాచారం టిల్లర్ రన్ అవుతున్న అదే నేమ్‌స్పేస్‌లో ఉంది (డిఫాల్ట్‌గా kube-system), కాన్ఫిగ్‌మ్యాప్‌లో, "OWNER=TILLER" అనే లేబుల్‌తో గుర్తించబడింది:

హెల్మ్ పరికరం మరియు దాని ఆపదలు
హెల్మ్ యొక్క మూడవ వెర్షన్ కనిపించినప్పుడు, సమాచారం రహస్యాలకు మరియు అప్లికేషన్ నడుస్తున్న అదే నేమ్‌స్పేస్‌కు తరలించబడింది. దీనికి ధన్యవాదాలు, ఒకే విడుదల పేరుతో వివిధ నేమ్‌స్పేస్‌లలో అనేక అప్లికేషన్‌లను ఏకకాలంలో అమలు చేయడం సాధ్యమైంది. రెండవ సంస్కరణలో నేమ్‌స్పేస్‌లు వేరుచేయబడినప్పుడు ఇది తీవ్రమైన తలనొప్పిగా ఉంటుంది కానీ ఒకదానికొకటి ప్రభావితం చేయవచ్చు.

హెల్మ్ పరికరం మరియు దాని ఆపదలు

రెండవ హెల్మ్, నవీకరణ అవసరమా కాదా అని అర్థం చేసుకోవడానికి ప్రయత్నిస్తున్నప్పుడు, కేవలం రెండు సమాచార వనరులను మాత్రమే ఉపయోగిస్తుంది: ఇప్పుడు దానికి ఏమి అందించబడింది మరియు కాన్ఫిగ్‌మ్యాప్‌లో ఉన్న విడుదలల గురించి అంతర్గత సమాచారం.

హెల్మ్ పరికరం మరియు దాని ఆపదలు
మూడవ హెల్మ్ మూడు-మార్గం విలీన వ్యూహాన్ని ఉపయోగిస్తుంది: ఆ సమాచారంతో పాటు, ఇది ప్రస్తుతం కుబెర్నెట్స్‌లో అమలవుతున్న అప్లికేషన్‌ను కూడా పరిగణనలోకి తీసుకుంటుంది.

హెల్మ్ పరికరం మరియు దాని ఆపదలు
ఈ కారణంగా, హెల్మ్ యొక్క పాత వెర్షన్ ఏమీ చేయదు, ఎందుకంటే ఇది క్లస్టర్‌లోని అప్లికేషన్ సమాచారాన్ని పరిగణనలోకి తీసుకోదు, అయితే హెల్మ్ 3 మార్పులను స్వీకరిస్తుంది మరియు విస్తరణ కోసం కొత్త అప్లికేషన్‌ను పంపుతుంది.

విధానం 5. --recreate-pods స్విచ్‌ని ఉపయోగించండి

ఒక కీతో --recreate-pods కీతో మీరు మొదట అనుకున్నది సాధించవచ్చు --force. కంటైనర్‌లు పునఃప్రారంభించబడతాయి మరియు imagePullPolicy: ఎల్లప్పుడూ తాజా ట్యాగ్‌కు సంబంధించిన విధానం (పైన ఉన్న ఫుట్‌నోట్‌లో దీని గురించి మరింత) ప్రకారం, Kubernetes చిత్రం యొక్క క్రొత్త సంస్కరణను డౌన్‌లోడ్ చేసి, లాంచ్ చేస్తుంది. ఇది ఉత్తమ మార్గంలో నిర్వహించబడదు: విస్తరణ యొక్క వ్యూహరకాన్ని పరిగణనలోకి తీసుకోకుండా, ఇది పాత అప్లికేషన్ ఇన్‌స్టాన్స్‌లన్నింటినీ ఆకస్మికంగా ఆపివేస్తుంది మరియు కొత్త వాటిని ప్రారంభించడం ప్రారంభిస్తుంది. పునఃప్రారంభించే సమయంలో, సిస్టమ్ పనిచేయదు, వినియోగదారులు బాధపడతారు.

కుబెర్నెటీస్‌లోనే, ఇదే సమస్య చాలా కాలంగా ఉంది. ఇప్పుడు, ప్రారంభమైన 4 సంవత్సరాల తర్వాత సమస్య, సమస్య పరిష్కరించబడింది మరియు కుబెర్నెట్స్ వెర్షన్ 1.15తో ప్రారంభించి, పాడ్‌లను రోల్-రీస్టార్ట్ చేసే సామర్థ్యం కనిపిస్తుంది.

హెల్మ్ కేవలం అన్ని అప్లికేషన్లను ఆఫ్ చేస్తుంది మరియు సమీపంలోని కొత్త కంటైనర్లను లాంచ్ చేస్తుంది. మీరు దీన్ని ఉత్పత్తిలో చేయలేరు, తద్వారా అప్లికేషన్ డౌన్‌టైమ్‌కు కారణం కాదు. ఇది అభివృద్ధి అవసరాలకు మాత్రమే అవసరం మరియు స్టేజ్ పరిసరాలలో మాత్రమే నిర్వహించబడుతుంది.

హెల్మ్‌ని ఉపయోగించి అప్లికేషన్ వెర్షన్‌ను ఎలా అప్‌డేట్ చేయాలి?

మేము హెల్మ్‌కు పంపిన విలువలను మారుస్తాము. సాధారణంగా, ఇవి ఇమేజ్ ట్యాగ్ స్థానంలో ప్రత్యామ్నాయంగా ఉండే విలువలు. ఉత్పాదకత లేని వాతావరణాల కోసం తరచుగా ఉపయోగించే తాజా విషయంలో, మార్చగలిగే సమాచారం ఒక ఉల్లేఖనంగా ఉంటుంది, ఇది కుబెర్నెట్స్‌కు పనికిరానిది మరియు హెల్మ్ కోసం ఇది అప్లికేషన్‌ను నవీకరించాల్సిన అవసరానికి సంకేతంగా పనిచేస్తుంది. ఉల్లేఖన విలువను పూరించడానికి ఎంపికలు:

  1. యాదృచ్ఛిక విలువ ప్రామాణిక ఫంక్షన్ ఉపయోగించి - {{ randAlphaNum 6 }}.
    ఒక మినహాయింపు ఉంది: అటువంటి వేరియబుల్‌తో చార్ట్‌ని ఉపయోగించి ప్రతి విస్తరణ తర్వాత, ఉల్లేఖన విలువ ప్రత్యేకంగా ఉంటుంది మరియు హెల్మ్ మార్పులు ఉన్నాయని ఊహిస్తుంది. మేము దాని సంస్కరణను మార్చనప్పటికీ, మేము ఎల్లప్పుడూ అప్లికేషన్‌ను పునఃప్రారంభిస్తాము. ఇది క్లిష్టమైనది కాదు, ఎందుకంటే పనికిరాని సమయం ఉండదు, కానీ ఇది ఇప్పటికీ అసహ్యకరమైనది.
  2. కరెంట్ అతికించండి తేదీ మరియు సమయం - {{ .Release.Date }}.
    వేరియంట్ శాశ్వతంగా ప్రత్యేకమైన వేరియబుల్‌తో యాదృచ్ఛిక విలువను పోలి ఉంటుంది.
  3. ఉపయోగించడం మరింత సరైన మార్గం చెక్‌సమ్‌లు. ఇది చిత్రం యొక్క SHA లేదా gitలో చివరి కమిట్ యొక్క SHA - {{ .Values.sha }}.
    వారు లెక్కించబడాలి మరియు కాలింగ్ వైపు ఉన్న హెల్మ్ క్లయింట్‌కు పంపాలి, ఉదాహరణకు జెంకిన్స్‌లో. అప్లికేషన్ మారినట్లయితే, చెక్సమ్ మారుతుంది. అందువల్ల, హెల్మ్ అవసరమైనప్పుడు మాత్రమే అప్లికేషన్‌ను అప్‌డేట్ చేస్తుంది.

మన ప్రయత్నాలను సంగ్రహిద్దాం

  • హెల్మ్ అతి తక్కువ హానికర రీతిలో మార్పులు చేస్తుంది, కాబట్టి డాకర్ రిజిస్ట్రీలో అప్లికేషన్ ఇమేజ్ స్థాయిలో ఏదైనా మార్పు నవీకరణకు దారితీయదు: ఆదేశం అమలు చేయబడిన తర్వాత ఏమీ జరగదు.
  • కీ --force సమస్యాత్మక విడుదలలను పునరుద్ధరించడానికి ఉపయోగించబడుతుంది మరియు నిర్బంధ నవీకరణలతో అనుబంధించబడదు.
  • కీ --recreate-pods బలవంతంగా అప్లికేషన్‌లను అప్‌డేట్ చేస్తుంది, కానీ అది విధ్వంసకర మార్గంలో చేస్తుంది: ఇది అకస్మాత్తుగా అన్ని కంటైనర్‌లను ఆఫ్ చేస్తుంది. వినియోగదారులు దీనితో బాధపడతారు; మీరు దీన్ని ఉత్పత్తిలో చేయకూడదు.
  • ఆదేశాన్ని ఉపయోగించి నేరుగా కుబెర్నెట్స్ క్లస్టర్‌కు మార్పులు చేయండి kubectl edit చేయవద్దు: మేము స్థిరత్వాన్ని విచ్ఛిన్నం చేస్తాము మరియు హెల్మ్ యొక్క సంస్కరణను బట్టి ప్రవర్తన భిన్నంగా ఉంటుంది.
  • హెల్మ్ యొక్క కొత్త వెర్షన్ విడుదలతో, అనేక సూక్ష్మ నైపుణ్యాలు కనిపించాయి. హెల్మ్ రిపోజిటరీలోని సమస్యలు స్పష్టమైన భాషలో వివరించబడ్డాయి, అవి మీకు వివరాలను అర్థం చేసుకోవడంలో సహాయపడతాయి.
  • చార్ట్‌కు సవరించగలిగే ఉల్లేఖనాన్ని జోడించడం వలన అది మరింత సరళంగా ఉంటుంది. ఇది డౌన్‌టైమ్ లేకుండా అప్లికేషన్‌ను సరిగ్గా రోల్ అవుట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

జీవితంలోని అన్ని రంగాలలో పని చేసే "ప్రపంచ శాంతి" ఆలోచన: ఉపయోగం ముందు సూచనలను చదవండి, తర్వాత కాదు. పూర్తి సమాచారంతో మాత్రమే విశ్వసనీయ వ్యవస్థలను నిర్మించడం మరియు వినియోగదారులను సంతోషపెట్టడం సాధ్యమవుతుంది.

ఇతర సంబంధిత లింకులు:

  1. తో పరిచయం హెల్మ్ 3
  2. హెల్మ్ అధికారిక వెబ్‌సైట్
  3. GitHubలో హెల్మ్ రిపోజిటరీ
  4. 25 ఉపయోగకరమైన కుబెర్నెట్స్ సాధనాలు: విస్తరణ మరియు నిర్వహణ

ఈ నివేదిక మొదట సమర్పించబడింది @కుబెర్నెట్స్ కాన్ఫరెన్స్ Mail.ru క్లౌడ్ సొల్యూషన్స్ ద్వారా. చూడు видео ఇతర ప్రదర్శనలు మరియు టెలిగ్రామ్‌లో ఈవెంట్ ప్రకటనలకు సభ్యత్వాన్ని పొందండి Mail.ru గ్రూప్‌లో కుబెర్నెట్స్ చుట్టూ.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి