మీరు మరిన్ని కుబెర్నెట్స్ సేవలను సృష్టించడం ప్రారంభించినప్పుడు, ప్రారంభంలో సరళంగా ఉండే పనులు మరింత క్లిష్టంగా మారడం ప్రారంభిస్తాయి. ఉదాహరణకు, డెవలప్మెంట్ టీమ్లు అదే పేరుతో సేవలను లేదా విస్తరణలను సృష్టించలేవు. మీకు వేల సంఖ్యలో పాడ్లు ఉంటే, వాటిని జాబితా చేయడానికి చాలా సమయం పడుతుంది, వాటిని సరిగ్గా నిర్వహించడం మాత్రమే కాదు. మరియు ఇది మంచుకొండ యొక్క కొన మాత్రమే.
కుబెర్నెట్స్ వనరులను నిర్వహించడాన్ని నేమ్స్పేస్ ఎలా సులభతరం చేస్తుందో చూద్దాం. కాబట్టి నేమ్స్పేస్ అంటే ఏమిటి? నేమ్స్పేస్ని మీ కుబెర్నెటెస్ క్లస్టర్లోని వర్చువల్ క్లస్టర్గా భావించవచ్చు. మీరు ఒకే కుబెర్నెటెస్ క్లస్టర్లో ఒకదానికొకటి వేరుచేయబడిన బహుళ నేమ్స్పేస్లను కలిగి ఉండవచ్చు. సంస్థ, భద్రత మరియు సిస్టమ్ పనితీరుతో కూడా వారు మీకు మరియు మీ బృందాలకు నిజంగా సహాయం చేయగలరు.
చాలా కుబెర్నెటెస్ పంపిణీలలో, క్లస్టర్ "డిఫాల్ట్" అనే నేమ్స్పేస్తో బాక్స్ నుండి బయటకు వస్తుంది. వాస్తవానికి కుబెర్నెటెస్ వ్యవహరించే మూడు నేమ్స్పేస్లు ఉన్నాయి: డిఫాల్ట్, కుబే-సిస్టమ్ మరియు కుబే-పబ్లిక్. ప్రస్తుతం, Kube-పబ్లిక్ చాలా తరచుగా ఉపయోగించబడదు.
ప్రత్యేకంగా Google Kubernetes ఇంజిన్ వంటి మేనేజ్డ్ సిస్టమ్లో kube నేమ్స్పేస్ను వదిలివేయడం మంచి ఆలోచన. ఇది మీ సేవలు మరియు అప్లికేషన్లు సృష్టించబడిన ప్రదేశంగా "డిఫాల్ట్" నేమ్స్పేస్ని ఉపయోగిస్తుంది. దాని గురించి ప్రత్యేకంగా ఏమీ లేదు, Kubernetes దీన్ని ఉపయోగించడానికి బాక్స్ వెలుపల కాన్ఫిగర్ చేయబడింది మరియు మీరు దాన్ని తీసివేయలేరు. ప్రారంభించడానికి మరియు తక్కువ పనితీరు గల సిస్టమ్లకు ఇది చాలా బాగుంది, కానీ పెద్ద ఉత్పత్తి సిస్టమ్లలో డిఫాల్ట్ నేమ్స్పేస్ను ఉపయోగించమని నేను సిఫార్సు చేయను. రెండో సందర్భంలో, ఒక డెవలప్మెంట్ టీమ్ వేరొకరి కోడ్ను సులభంగా తిరిగి వ్రాయవచ్చు మరియు మరొక బృందం పనిని గుర్తించకుండానే విచ్ఛిన్నం చేయవచ్చు.
కాబట్టి, మీరు బహుళ నేమ్స్పేస్లను సృష్టించాలి మరియు మీ సేవలను నిర్వహించదగిన యూనిట్లుగా విభజించడానికి వాటిని ఉపయోగించాలి. ఒకే కమాండ్తో నేమ్స్పేస్ని సృష్టించవచ్చు. మీరు పరీక్ష పేరుతో నేమ్స్పేస్ని సృష్టించాలనుకుంటే, $ kubectl క్రియేట్ నేమ్స్పేస్ పరీక్షను ఉపయోగించండి లేదా కేవలం ఒక YAML ఫైల్ను సృష్టించి, దానిని ఇతర కుబెర్నెట్స్ రిసోర్స్ లాగా ఉపయోగించండి.
మీరు $ kubectl get namespace ఆదేశాన్ని ఉపయోగించి అన్ని నేమ్స్పేస్లను చూడవచ్చు.
ఇది పూర్తయిన తర్వాత, మీరు మూడు అంతర్నిర్మిత నేమ్స్పేస్లు మరియు "పరీక్ష" అనే కొత్త నేమ్స్పేస్ని చూస్తారు. పాడ్ని సృష్టించడానికి ఒక సాధారణ YAML ఫైల్ని చూద్దాం. నేమ్స్పేస్ ప్రస్తావన లేదని మీరు గమనించవచ్చు.
మీరు ఈ ఫైల్ను అమలు చేయడానికి kubectlని ఉపయోగిస్తే, ఇది ప్రస్తుతం క్రియాశీల నేమ్స్పేస్లో mypod మాడ్యూల్ను సృష్టిస్తుంది. మీరు దీన్ని మార్చే వరకు ఇది డిఫాల్ట్ నేమ్స్పేస్ అవుతుంది. మీరు మీ వనరును ఏ నేమ్స్పేస్లో సృష్టించాలనుకుంటున్నారో కుబెర్నెట్లకు చెప్పడానికి 2 మార్గాలు ఉన్నాయి. వనరును సృష్టించేటప్పుడు నేమ్స్పేస్ ఫ్లాగ్ని ఉపయోగించడం మొదటి మార్గం.
రెండవ మార్గం YAML డిక్లరేషన్లో నేమ్స్పేస్ను పేర్కొనడం.
మీరు YAMLలో నేమ్స్పేస్ను పేర్కొన్నట్లయితే, వనరు ఎల్లప్పుడూ ఆ నేమ్స్పేస్లో సృష్టించబడుతుంది. మీరు నేమ్స్పేస్ ఫ్లాగ్ని ఉపయోగిస్తున్నప్పుడు వేరే నేమ్స్పేస్ని ఉపయోగించడానికి ప్రయత్నిస్తే, ఆదేశం విఫలమవుతుంది. ఇప్పుడు మీరు మీ పాడ్ని కనుగొనడానికి ప్రయత్నిస్తే, మీరు అలా చేయలేరు.
అన్ని కమాండ్లు ప్రస్తుతం సక్రియ నేమ్స్పేస్ వెలుపల అమలు చేయబడినందున ఇది సంభవిస్తుంది. మీ పాడ్ను కనుగొనడానికి, మీరు నేమ్స్పేస్ ఫ్లాగ్ను ఉపయోగించాలి, కానీ ఇది త్వరగా విసుగు చెందుతుంది, ప్రత్యేకించి మీరు దాని స్వంత నేమ్స్పేస్ని ఉపయోగించే బృందంలో డెవలపర్ అయితే మరియు ప్రతి ఒక్క కమాండ్ కోసం ఆ ఫ్లాగ్ను ఉపయోగించకూడదనుకుంటే. దీన్ని ఎలా పరిష్కరించవచ్చో చూద్దాం.
పెట్టె వెలుపల, మీ సక్రియ నేమ్స్పేస్ డిఫాల్ట్ అని పిలువబడుతుంది. మీరు రిసోర్స్ YAMLలో నేమ్స్పేస్ను పేర్కొనకుంటే, అన్ని కుబెర్నెట్స్ కమాండ్లు ఈ యాక్టివ్ డిఫాల్ట్ నేమ్స్పేస్ని ఉపయోగిస్తాయి. దురదృష్టవశాత్తూ, kubectlని ఉపయోగించి సక్రియ నేమ్స్పేస్ని నిర్వహించడానికి ప్రయత్నించడం విఫలమవుతుంది. అయితే, ఈ ప్రక్రియను చాలా సులభతరం చేసే Kubens అనే చాలా మంచి సాధనం ఉంది. మీరు kubens కమాండ్ను అమలు చేసినప్పుడు, మీరు యాక్టివ్ నేమ్స్పేస్ని హైలైట్ చేసిన అన్ని నేమ్స్పేస్లను చూస్తారు.
యాక్టివ్ నేమ్స్పేస్ను టెస్ట్ నేమ్స్పేస్కి మార్చడానికి, మీరు కేవలం $kubens టెస్ట్ కమాండ్ను అమలు చేయండి. మీరు $kubens కమాండ్ను మళ్లీ అమలు చేస్తే, ఇప్పుడు కొత్త సక్రియ నేమ్స్పేస్ కేటాయించబడిందని మీరు చూస్తారు - పరీక్ష.
టెస్ట్ నేమ్స్పేస్లో పాడ్ని చూడటానికి మీకు నేమ్స్పేస్ ఫ్లాగ్ అవసరం లేదని దీని అర్థం.
ఈ విధంగా నేమ్స్పేస్లు ఒకదానికొకటి దాగి ఉంటాయి, కానీ ఒకదానికొకటి వేరు చేయబడవు. ఒక నేమ్స్పేస్లోని సేవ మరొక నేమ్స్పేస్లోని సేవతో చాలా సులభంగా కమ్యూనికేట్ చేయగలదు, ఇది తరచుగా చాలా ఉపయోగకరంగా ఉంటుంది. విభిన్న నేమ్స్పేస్లలో కమ్యూనికేట్ చేయగల సామర్థ్యం అంటే మీ డెవలపర్ల సేవ వేరే నేమ్స్పేస్లో మరొక డెవలపర్ టీమ్ సర్వీస్తో కమ్యూనికేట్ చేయగలదని అర్థం.
సాధారణంగా, మీ అప్లికేషన్ కుబెర్నెటెస్ సేవను యాక్సెస్ చేయాలనుకున్నప్పుడు, మీరు అంతర్నిర్మిత DNS డిస్కవరీ సేవను ఉపయోగిస్తున్నారు మరియు మీ అప్లికేషన్కు సేవ పేరును అందించండి. అయితే, అలా చేయడం ద్వారా, మీరు బహుళ నేమ్స్పేస్లలో ఒకే పేరుతో సేవను సృష్టించవచ్చు, ఇది ఆమోదయోగ్యం కాదు.
అదృష్టవశాత్తూ, DNS చిరునామా యొక్క విస్తరించిన ఫారమ్ని ఉపయోగించడం ద్వారా దీన్ని సులభంగా పొందవచ్చు. కుబెర్నెట్స్లోని సేవలు సాధారణ DNS టెంప్లేట్ని ఉపయోగించి వాటి ముగింపు పాయింట్లను బహిర్గతం చేస్తాయి. ఇది ఇలా కనిపిస్తుంది:
సాధారణంగా, మీకు సేవ పేరు అవసరం మరియు DNS స్వయంచాలకంగా పూర్తి చిరునామాను నిర్ణయిస్తుంది.
అయితే, మీరు వేరొక నేమ్స్పేస్లో సేవను యాక్సెస్ చేయవలసి వస్తే, సేవ పేరు మరియు నేమ్స్పేస్ పేరును ఉపయోగించండి:
ఉదాహరణకు, మీరు టెస్ట్ నేమ్స్పేస్లోని సేవా డేటాబేస్కు కనెక్ట్ చేయాలనుకుంటే, మీరు చిరునామా డేటాబేస్ database.testని ఉపయోగించవచ్చు.
మీరు ప్రోడ్ నేమ్స్పేస్లోని సర్వీస్ డేటాబేస్కు కనెక్ట్ చేయాలనుకుంటే, మీరు database.prodని ఉపయోగించండి.
మీరు నిజంగా నేమ్స్పేస్ యాక్సెస్ను వేరు చేసి, పరిమితం చేయాలనుకుంటే, Kubernetes నెట్వర్క్ విధానాలను ఉపయోగించి దీన్ని చేయడానికి Kubernetes మిమ్మల్ని అనుమతిస్తుంది. దీని గురించి తదుపరి ఎపిసోడ్లో మాట్లాడుతాను.
నేను ఎన్ని నేమ్స్పేస్లను సృష్టించాలి మరియు ఏ ప్రయోజనాల కోసం అనే ప్రశ్న నన్ను తరచుగా అడిగేది. నిర్వహించబడే డేటా అంటే ఏమిటి?
మీరు చాలా ఎక్కువ నేమ్స్పేస్లను సృష్టిస్తే, అవి మీ దారిలోకి వస్తాయి. వాటిలో చాలా తక్కువ ఉంటే, అటువంటి పరిష్కారం యొక్క అన్ని ప్రయోజనాలను మీరు కోల్పోతారు. ప్రతి సంస్థ దాని సంస్థాగత నిర్మాణాన్ని సృష్టించేటప్పుడు నాలుగు ప్రధాన దశలు ఉన్నాయని నేను భావిస్తున్నాను. మీ ప్రాజెక్ట్ లేదా కంపెనీ అభివృద్ధి దశపై ఆధారపడి, మీరు తగిన నేమ్స్పేస్ వ్యూహాన్ని అనుసరించాలనుకోవచ్చు.
మీరు 5-10 మైక్రోసర్వీస్లను అభివృద్ధి చేయడంలో పని చేస్తున్న చిన్న బృందంలో భాగమని ఊహించుకోండి మరియు మీరు డెవలపర్లందరినీ ఒకే గదిలో సులభంగా సేకరించవచ్చు. ఈ పరిస్థితిలో, డిఫాల్ట్ నేమ్స్పేస్లో అన్ని ఉత్పత్తి సేవలను అమలు చేయడం అర్ధమే. వాస్తవానికి, మరింత సౌలభ్యం కోసం, మీరు 2 నేమ్స్పేస్లను ఉపయోగించవచ్చు - ప్రోడ్ మరియు డెవ్ కోసం విడిగా. మరియు చాలా మటుకు, మీరు మీ స్థానిక కంప్యూటర్లో Minikube వంటి వాటిని ఉపయోగించి మీ అభివృద్ధిని పరీక్షించవచ్చు.
పరిస్థితులు మారాయని చెప్పండి మరియు మీరు ఇప్పుడు వేగంగా అభివృద్ధి చెందుతున్న బృందం ఒకేసారి 10 కంటే ఎక్కువ మైక్రోసర్వీస్లలో పని చేస్తున్నారు. ప్రోడ్ మరియు డెవ్ కోసం విడిగా అనేక క్లస్టర్లు లేదా నేమ్స్పేస్లను ఉపయోగించాల్సిన సమయం వస్తుంది. మీరు బృందాన్ని అనేక ఉప-జట్లుగా విభజించవచ్చు, తద్వారా వాటిలో ప్రతి దాని స్వంత మైక్రోసర్వీస్లను కలిగి ఉంటాయి మరియు సాఫ్ట్వేర్ డెవలప్మెంట్ మరియు విడుదలను నిర్వహించే ప్రక్రియను సులభతరం చేయడానికి ఈ బృందాలు ప్రతి దాని స్వంత నేమ్స్పేస్ను ఎంచుకోవచ్చు.
ప్రతి బృంద సభ్యుడు సిస్టమ్ మొత్తంగా ఎలా పనిచేస్తుందనే దానిపై అంతర్దృష్టిని పొందుతున్నందున, ప్రతి మార్పును ఇతర డెవలపర్లతో సమన్వయం చేయడం మరింత కష్టమవుతుంది. మీ స్థానిక మెషీన్లో పూర్తి స్టాక్ను స్పిన్ అప్ చేయడానికి ప్రయత్నించడం ప్రతిరోజూ కష్టమవుతోంది.
పెద్ద కంపెనీలలో, డెవలపర్లకు సాధారణంగా ఎవరు ఏమి పని చేస్తున్నారో తెలియదు. బృందాలు సేవా ఒప్పందాలను ఉపయోగించి కమ్యూనికేట్ చేస్తాయి లేదా సర్వీస్ మెష్ సాంకేతికతను ఉపయోగిస్తాయి, ఇది నెట్వర్క్లో Istio కాన్ఫిగరేషన్ సాధనం వంటి సంగ్రహణ పొరను జోడిస్తుంది. మొత్తం స్టాక్ను స్థానికంగా అమలు చేయడానికి ప్రయత్నించడం సాధ్యం కాదు. కుబెర్నెట్స్లో స్పిన్నకర్ వంటి నిరంతర డెలివరీ (CD) ప్లాట్ఫారమ్ను ఉపయోగించమని నేను బాగా సిఫార్సు చేస్తున్నాను. కాబట్టి, ప్రతి కమాండ్కు ఖచ్చితంగా దాని స్వంత నేమ్స్పేస్ అవసరం అనే పాయింట్ వస్తుంది. ప్రతి బృందం దేవ్ ఎన్విరాన్మెంట్ మరియు ప్రోడ్ ఎన్విరాన్మెంట్ కోసం బహుళ నేమ్స్పేస్లను కూడా ఎంచుకోవచ్చు.
చివరగా, పెద్ద వ్యవస్థాపక కంపెనీలు ఉన్నాయి, వీటిలో ఒక సమూహం డెవలపర్లకు ఇతర సమూహాల ఉనికి గురించి కూడా తెలియదు. అటువంటి సంస్థ సాధారణంగా థర్డ్-పార్టీ డెవలపర్లను బాగా డాక్యుమెంట్ చేసిన APIల ద్వారా దానితో పరస్పర చర్య చేసేవారిని నియమించుకోవచ్చు. అటువంటి ప్రతి సమూహం అనేక బృందాలు మరియు అనేక మైక్రోసర్వీస్లను కలిగి ఉంటుంది. ఈ సందర్భంలో, నేను ఇంతకు ముందు మాట్లాడిన అన్ని సాధనాలను మీరు ఉపయోగించాలి.
ప్రోగ్రామర్లు సేవలను మాన్యువల్గా అమలు చేయకూడదు మరియు వారికి సంబంధం లేని నేమ్స్పేస్లకు యాక్సెస్ ఉండకూడదు. ఈ దశలో, పేలవంగా కాన్ఫిగర్ చేయబడిన అప్లికేషన్ల "బ్లాస్ట్ వ్యాసార్థం" తగ్గించడానికి, బిల్లింగ్ ప్రక్రియలు మరియు వనరుల నిర్వహణను సులభతరం చేయడానికి అనేక క్లస్టర్లను కలిగి ఉండటం మంచిది.
అందువల్ల, మీ సంస్థ ద్వారా నేమ్స్పేస్ల సరైన ఉపయోగం కుబెర్నెట్లను మరింత నిర్వహించదగినదిగా, నియంత్రించదగినదిగా, సురక్షితమైనదిగా మరియు అనువైనదిగా చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
కొన్ని ప్రకటనలు 🙂
మాతో ఉన్నందుకు ధన్యవాదాలు. మీరు మా కథనాలను ఇష్టపడుతున్నారా? మరింత ఆసక్తికరమైన కంటెంట్ని చూడాలనుకుంటున్నారా? ఆర్డర్ చేయడం ద్వారా లేదా స్నేహితులకు సిఫార్సు చేయడం ద్వారా మాకు మద్దతు ఇవ్వండి,
ఆమ్స్టర్డామ్లోని ఈక్వినిక్స్ టైర్ IV డేటా సెంటర్లో Dell R730xd 2x చౌకగా ఉందా? ఇక్కడ మాత్రమే
మూలం: www.habr.com