మీరు చాలా మంది వ్యక్తుల మాదిరిగా ఉంటే, మీరు బహుశా మీ క్లస్టర్ వెలుపల ఉన్న వనరులను ఉపయోగిస్తున్నారు. బహుశా మీరు Google Cloud Vision APIని ఉపయోగించి వచన సందేశాలను పంపడానికి లేదా చిత్రాలను విశ్లేషించడానికి Taleo APIని ఉపయోగించవచ్చు.
మీరు మీ అన్ని పరిసరాలలో ఒకే సర్వర్ వైపు అభ్యర్థన ముగింపు పాయింట్ని ఉపయోగిస్తుంటే మరియు మీ సర్వర్లను కుబెర్నెట్లకు తరలించడానికి ప్లాన్ చేయకపోతే, మీ కోడ్లోనే సర్వీస్ ఎండ్పాయింట్ని కలిగి ఉండటం చాలా మంచిది. అయితే, సంఘటనల అభివృద్ధికి అనేక ఇతర దృశ్యాలు ఉన్నాయి. ఈ కుబెర్నెట్స్ బెస్ట్ ప్రాక్టీసెస్ సిరీస్లో, క్లస్టర్ లోపల మరియు వెలుపల సేవలను కనుగొనడానికి కుబెర్నెట్స్ యొక్క అంతర్నిర్మిత మెకానిజమ్లను ఎలా ఉపయోగించాలో మీరు నేర్చుకుంటారు.
ఒక సాధారణ బాహ్య సేవకు ఉదాహరణ కుబెర్నెట్స్ క్లస్టర్ వెలుపల నడుస్తున్న డేటాబేస్. Google Cloud Data Store లేదా Google Cloud Spanner వంటి క్లౌడ్ డేటాబేస్ల వలె కాకుండా, అన్ని యాక్సెస్ల కోసం ఒకే ముగింపు బిందువును ఉపయోగిస్తాయి, చాలా డేటాబేస్లు వేర్వేరు పరిస్థితుల కోసం ప్రత్యేక ముగింపు బిందువులను కలిగి ఉంటాయి.
MySQL మరియు MongoDB వంటి సాంప్రదాయ డేటాబేస్లను ఉపయోగించడం కోసం ఉత్తమ పద్ధతులు సాధారణంగా మీరు వేర్వేరు వాతావరణాలకు వేర్వేరు భాగాలకు కనెక్ట్ అవుతారని అర్థం. మీరు ఉత్పత్తి డేటా కోసం పెద్ద యంత్రాన్ని మరియు పరీక్ష వాతావరణం కోసం చిన్న యంత్రాన్ని కలిగి ఉండవచ్చు. వాటిలో ప్రతి దాని స్వంత IP చిరునామా లేదా డొమైన్ పేరు ఉంటుంది, కానీ మీరు ఒక పర్యావరణం నుండి మరొక పర్యావరణానికి మారినప్పుడు మీ కోడ్ని మార్చకూడదు. కాబట్టి ఈ చిరునామాలను హార్డ్-కోడింగ్ చేయడానికి బదులుగా, మీరు స్థానిక కుబెర్నెట్స్ సేవల మాదిరిగానే కుబెర్నెట్స్ అంతర్నిర్మిత DNS-ఆధారిత బాహ్య సేవా ఆవిష్కరణను ఉపయోగించవచ్చు.
మీరు Google కంప్యూట్ ఇంజిన్లో MongoDB డేటాబేస్ని నడుపుతున్నారని అనుకుందాం. మీరు దానిని క్లస్టర్కి బదిలీ చేసే వరకు మీరు ఈ హైబ్రిడ్ ప్రపంచంలో చిక్కుకుపోతారు.
అదృష్టవశాత్తూ, మీరు మీ జీవితాన్ని కొద్దిగా సులభతరం చేయడానికి స్టాటిక్ కుబెర్నెట్స్ సేవలను ఉపయోగించవచ్చు. ఈ ఉదాహరణలో, నేను Google Cloud Launcherని ఉపయోగించి MongoDB సర్వర్ని సృష్టించాను. ఇది ఒకే నెట్వర్క్లో (లేదా కుబెర్నెట్స్ క్లస్టర్ VPC) సృష్టించబడినందున, ఇది అధిక-పనితీరు గల అంతర్గత IP చిరునామాను ఉపయోగించి యాక్సెస్ చేయబడుతుంది.
ఇది Google క్లౌడ్లో డిఫాల్ట్ సెట్టింగ్, కాబట్టి మీరు దేనినీ కాన్ఫిగర్ చేయవలసిన అవసరం లేదు. ఇప్పుడు మీకు IP చిరునామా ఉంది, మొదటి దశ సేవను సృష్టించడం. ఈ సేవ కోసం పాడ్ సెలెక్టర్లు లేవని మీరు గమనించవచ్చు. అంటే, ట్రాఫిక్ను ఎక్కడికి పంపాలో తెలియని సేవను మేము సృష్టించాము. ఈ సేవ నుండి ట్రాఫిక్ను స్వీకరించే ఎండ్పాయింట్ ఆబ్జెక్ట్ను మాన్యువల్గా సృష్టించడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.
సేవ వలె అదే మొంగో పేరును ఉపయోగించి డేటాబేస్ కోసం ఎండ్ పాయింట్లు IP చిరునామాను నిర్ణయిస్తాయని క్రింది కోడ్ ఉదాహరణ చూపిస్తుంది.
సాధారణ Kubernetes పాడ్ల వలె ఎండ్ పాయింట్లను కనుగొనడానికి Kubernetes అన్ని IP చిరునామాలను ఉపయోగిస్తుంది, కాబట్టి ఇప్పుడు మీరు ఎగువ పేరు mongodb://mongoకి సాధారణ కనెక్షన్ స్ట్రింగ్తో డేటాబేస్ను యాక్సెస్ చేయవచ్చు. మీ కోడ్లో IP చిరునామాలను ఉపయోగించాల్సిన అవసరం లేదు.
భవిష్యత్తులో IP చిరునామాలు మారితే, మీరు కొత్త IP చిరునామాతో మీ ముగింపు పాయింట్లను అప్డేట్ చేయవచ్చు మరియు మీ అప్లికేషన్లను ఏ అదనపు మార్గంలో సవరించాల్సిన అవసరం లేదు.
మీరు థర్డ్-పార్టీ హోస్ట్లో హోస్ట్ చేసిన డేటాబేస్ని ఉపయోగిస్తుంటే, హోస్ట్ యొక్క యజమానులు మీకు కనెక్ట్ చేయడానికి యూనిఫాం రిసోర్స్ ఐడెంటిఫైయర్ URIని అందించి ఉండవచ్చు. కాబట్టి మీకు IP చిరునామా ఇచ్చినట్లయితే, మీరు మునుపటి పద్ధతిని ఉపయోగించవచ్చు. నేను mLab హోస్ట్లో రెండు MongoDB డేటాబేస్లను కలిగి ఉన్నానని ఈ ఉదాహరణ చూపిస్తుంది.
ఒకటి డెవలపర్ డేటాబేస్ మరియు మరొకటి ప్రొడక్షన్ డేటాబేస్. ఈ డేటాబేస్ల కనెక్షన్ స్ట్రింగ్లు ఇలా కనిపిస్తాయి - mLab మీకు డైనమిక్ URI మరియు డైనమిక్ పోర్ట్ని అందిస్తుంది. మీరు గమనిస్తే, అవి భిన్నంగా ఉంటాయి.
దీన్ని తీసివేయడానికి, కుబెర్నెట్స్ని ఉపయోగిస్తాము మరియు డెవలపర్ డేటాబేస్కి కనెక్ట్ చేద్దాం. మీరు బాహ్య కుబెర్నెట్స్ సేవా పేరును సృష్టించవచ్చు, ఇది మీకు ట్రాఫిక్ను బాహ్య సేవకు ఫార్వార్డ్ చేసే స్టాటిక్ సేవను అందిస్తుంది.
ఈ సేవ కనిష్ట పనితీరు ప్రభావంతో కెర్నల్ స్థాయిలో సాధారణ CNAME ఫార్వార్డింగ్ను నిర్వహిస్తుంది. దీనికి ధన్యవాదాలు మీరు సరళమైన కనెక్షన్ స్ట్రింగ్ని ఉపయోగించవచ్చు.
కానీ బాహ్య పేరు CNAME ఫార్వార్డింగ్ని ఉపయోగిస్తున్నందున, ఇది పోర్ట్ ఫార్వార్డింగ్ని నిర్వహించదు. కాబట్టి, ఈ పరిష్కారం స్టాటిక్ పోర్ట్లకు మాత్రమే వర్తిస్తుంది మరియు డైనమిక్ పోర్ట్లతో ఉపయోగించబడదు. కానీ mLab ఫ్రీ టైర్ వినియోగదారుకు డిఫాల్ట్గా డైనమిక్ పోర్ట్ నంబర్ను ఇస్తుంది మరియు మీరు దానిని మార్చలేరు. dev మరియు prod కోసం మీకు వేర్వేరు కనెక్షన్ కమాండ్ లైన్లు అవసరమని దీని అర్థం. చెడ్డ విషయం ఏమిటంటే, మీరు పోర్ట్ నంబర్ను హార్డ్కోడ్ చేయవలసి ఉంటుంది. కాబట్టి మీరు పని చేయడానికి పోర్ట్ ఫార్వార్డింగ్ను ఎలా పొందుతారు?
URI నుండి IP చిరునామాను పొందడం మొదటి దశ. మీరు nslookup, హోస్ట్ పేరు లేదా URIని పింగ్ చేస్తే, మీరు డేటాబేస్ యొక్క IP చిరునామాను పొందవచ్చు. సేవ మీకు అనేక IP చిరునామాలను తిరిగి ఇస్తే, ఈ చిరునామాలన్నీ ఆబ్జెక్ట్ యొక్క ముగింపు బిందువులలో ఉపయోగించబడతాయి.
గుర్తుంచుకోవలసిన ఒక విషయం ఏమిటంటే, IP URIలు ఎటువంటి నోటీసు లేకుండా మారవచ్చు, వాటిని ఉత్పత్తిలో ఉపయోగించడం చాలా ప్రమాదకరం. ఈ IP చిరునామాను ఉపయోగించి, మీరు పోర్ట్ను పేర్కొనకుండా రిమోట్ డేటాబేస్కు కనెక్ట్ చేయవచ్చు. అందువలన, కుబెర్నెట్స్ సేవ చాలా పారదర్శకంగా పోర్ట్ ఫార్వార్డింగ్ని నిర్వహిస్తుంది.
బాహ్య వనరులను అంతర్గత వాటికి మ్యాపింగ్ చేయడం లేదా మ్యాపింగ్ చేయడం, రీఫ్యాక్టరింగ్ ప్రయత్నాలను తగ్గించడం ద్వారా భవిష్యత్తులో క్లస్టర్లో ఈ సేవలను ఉపయోగించడానికి మీకు సౌలభ్యాన్ని అందిస్తుంది. ఇది మీ కంపెనీ ఉపయోగించే బాహ్య సేవలను నిర్వహించడం మరియు అంతర్దృష్టిని అందించడం కూడా సులభతరం చేస్తుంది.
అతి త్వరలో కొనసాగుతుంది...
కొన్ని ప్రకటనలు 🙂
మాతో ఉన్నందుకు ధన్యవాదాలు. మీరు మా కథనాలను ఇష్టపడుతున్నారా? మరింత ఆసక్తికరమైన కంటెంట్ని చూడాలనుకుంటున్నారా? ఆర్డర్ చేయడం ద్వారా లేదా స్నేహితులకు సిఫార్సు చేయడం ద్వారా మాకు మద్దతు ఇవ్వండి,
ఆమ్స్టర్డామ్లోని ఈక్వినిక్స్ టైర్ IV డేటా సెంటర్లో Dell R730xd 2x చౌకగా ఉందా? ఇక్కడ మాత్రమే
మూలం: www.habr.com