కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం

గమనిక. అనువాదం.: Dailymotion అనేది ప్రపంచంలోని అతిపెద్ద వీడియో హోస్టింగ్ సేవల్లో ఒకటి మరియు అందువల్ల ప్రముఖ కుబెర్నెట్స్ వినియోగదారు. ఈ మెటీరియల్‌లో, సిస్టమ్ ఆర్కిటెక్ట్ డేవిడ్ డోన్‌చెజ్ K8s ఆధారంగా కంపెనీ ఉత్పత్తి ప్లాట్‌ఫారమ్‌ను రూపొందించడం యొక్క ఫలితాలను పంచుకున్నారు, ఇది GKEలో క్లౌడ్ ఇన్‌స్టాలేషన్‌తో ప్రారంభమై హైబ్రిడ్ సొల్యూషన్‌గా ముగిసింది, ఇది మెరుగైన ప్రతిస్పందన సమయాలను మరియు అవస్థాపన ఖర్చులపై ఆదా చేయడానికి అనుమతించింది.

కోర్ APIని పునర్నిర్మించాలని నిర్ణయించుకోవడం Dailymotion మూడు సంవత్సరాల క్రితం, మేము అప్లికేషన్‌లను హోస్ట్ చేయడానికి మరియు సులభతరం చేయడానికి మరింత సమర్థవంతమైన మార్గాన్ని అభివృద్ధి చేయాలనుకుంటున్నాము అభివృద్ధి మరియు ఉత్పత్తిలో ప్రక్రియలు. ఈ ప్రయోజనం కోసం, మేము కంటైనర్ ఆర్కెస్ట్రేషన్ ప్లాట్‌ఫారమ్‌ను ఉపయోగించాలని నిర్ణయించుకున్నాము మరియు సహజంగా కుబెర్నెట్స్‌ని ఎంచుకున్నాము.

కుబెర్నెట్స్ ఆధారంగా మీ స్వంత ప్లాట్‌ఫారమ్‌ను నిర్మించడం ఎందుకు విలువైనది?

Google క్లౌడ్‌ని ఉపయోగించి ఏ సమయంలోనైనా ఉత్పత్తి-స్థాయి API

వేసవి 2016

మూడు సంవత్సరాల క్రితం, వెంటనే Dailymotion ద్వారా కొనుగోలు చేయబడింది వివెండి, మా ఇంజనీరింగ్ బృందాలు ఒక ప్రపంచ లక్ష్యంపై దృష్టి సారించాయి: పూర్తిగా కొత్త డైలీమోషన్ ఉత్పత్తిని సృష్టించడం.

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

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

మీరు GKEని ఎందుకు ఎంచుకున్నారు?

మేము ప్రధానంగా సాంకేతిక కారణాల కోసం ఈ ఎంపిక చేసాము. అదనంగా, సంస్థ యొక్క వ్యాపార అవసరాలకు అనుగుణంగా మౌలిక సదుపాయాలను త్వరగా అందించడం అవసరం. మేము భౌగోళిక పంపిణీ, స్కేలబిలిటీ మరియు తప్పు సహనం వంటి అనువర్తనాలను హోస్ట్ చేయడానికి కొన్ని అవసరాలను కలిగి ఉన్నాము.

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం
డైలీమోషన్‌లో GKE క్లస్టర్‌లు

Dailymotion ప్రపంచవ్యాప్తంగా అందుబాటులో ఉన్న వీడియో ప్లాట్‌ఫారమ్ కాబట్టి, మేము వేచి ఉండే సమయాన్ని తగ్గించడం ద్వారా సేవ నాణ్యతను మెరుగుపరచాలనుకుంటున్నాము (జాప్యం). గతంలో మా API పారిస్‌లో మాత్రమే అందుబాటులో ఉంది, ఇది ఉపశీర్షిక. నేను యూరప్‌లోనే కాకుండా ఆసియా మరియు USAలో కూడా అప్లికేషన్‌లను హోస్ట్ చేయాలనుకుంటున్నాను.

జాప్యానికి ఈ సున్నితత్వం అంటే ప్లాట్‌ఫారమ్ యొక్క నెట్‌వర్క్ ఆర్కిటెక్చర్‌పై తీవ్రమైన పని చేయాల్సి ఉంటుంది. చాలా క్లౌడ్ సేవలు ప్రతి ప్రాంతంలో మీ స్వంత నెట్‌వర్క్‌ని సృష్టించి, ఆపై వాటిని VPN లేదా ఒక రకమైన నిర్వహించబడే సేవ ద్వారా కనెక్ట్ చేయమని మిమ్మల్ని బలవంతం చేసినప్పటికీ, Google క్లౌడ్ మిమ్మల్ని అన్ని Google ప్రాంతాలను కవర్ చేసే పూర్తిగా రూటబుల్ సింగిల్ నెట్‌వర్క్‌ని సృష్టించడానికి అనుమతించింది. సిస్టమ్ యొక్క ఆపరేషన్ మరియు సామర్థ్యం పరంగా ఇది పెద్ద ప్లస్.

అదనంగా, Google క్లౌడ్ నుండి నెట్‌వర్క్ సేవలు మరియు లోడ్ బ్యాలెన్సర్‌లు అద్భుతమైన పనిని చేస్తాయి. ప్రతి ప్రాంతం నుండి ఏకపక్ష పబ్లిక్ IP చిరునామాలను ఉపయోగించడానికి అవి మిమ్మల్ని అనుమతిస్తాయి మరియు అద్భుతమైన BGP ప్రోటోకాల్ మిగిలిన వాటిని (అంటే వినియోగదారులను సమీప క్లస్టర్‌కి దారి మళ్లించడం) చూసుకుంటుంది. సహజంగానే, విఫలమైన సందర్భంలో, ట్రాఫిక్ ఆటోమేటిక్‌గా మానవ ప్రమేయం లేకుండా మరొక ప్రాంతానికి వెళుతుంది.

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం
Google లోడ్ బ్యాలెన్సింగ్‌ను పర్యవేక్షిస్తోంది

మా ప్లాట్‌ఫారమ్ కూడా GPUలను ఎక్కువగా ఉపయోగిస్తుంది. Google క్లౌడ్ వాటిని నేరుగా Kubernetes క్లస్టర్‌లలో చాలా ప్రభావవంతంగా ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది.

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

ఫలితంగా, మేము పని ప్రారంభించిన 6 నెలల తర్వాత Google క్లౌడ్ ఇన్‌ఫ్రాస్ట్రక్చర్‌లో ఉత్పత్తి ట్రాఫిక్‌ను స్వీకరించడం ప్రారంభించగలిగాము.

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

స్థానిక కంటైనర్ ఆర్కెస్ట్రేషన్ ప్లాట్‌ఫారమ్ డైలీమోషన్ ప్రారంభం

శరదృతువు 2016

మొత్తం స్టాక్ ఉత్పత్తికి సిద్ధంగా ఉన్న పరిస్థితుల్లో మరియు APIలో పని చేస్తుంది కొనసాగింది, ఇది ప్రాంతీయ సమూహాలపై దృష్టి పెట్టవలసిన సమయం.

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

Dailymotion యొక్క ఇన్‌ఫ్రాస్ట్రక్చర్ ఆరు డేటా సెంటర్‌లలో 2,5 వేల కంటే ఎక్కువ సర్వర్‌లను కలిగి ఉంది. అవన్నీ సాల్ట్‌స్టాక్ ఉపయోగించి కాన్ఫిగర్ చేయబడ్డాయి. మేము మాస్టర్ మరియు వర్కర్ నోడ్‌లను, అలాగే etcd క్లస్టర్‌ను రూపొందించడానికి అవసరమైన అన్ని వంటకాలను సిద్ధం చేయడం ప్రారంభించాము.

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం

నెట్‌వర్క్ భాగం

మా నెట్‌వర్క్ పూర్తిగా రూట్ చేయబడింది. ప్రతి సర్వర్ దాని IPని నెట్‌వర్క్‌లో Exabgpని ఉపయోగించి ప్రచారం చేస్తుంది. మేము అనేక నెట్‌వర్క్ ప్లగిన్‌లను పోల్చాము మరియు అన్ని అవసరాలను సంతృప్తిపరిచేది (ఉపయోగించిన L3 విధానం కారణంగా) కాలికో. ఇది ఇప్పటికే ఉన్న నెట్‌వర్క్ ఇన్‌ఫ్రాస్ట్రక్చర్ మోడల్‌కి సరిగ్గా సరిపోతుంది.

మేము అందుబాటులో ఉన్న అన్ని ఇన్‌ఫ్రాస్ట్రక్చర్ ఎలిమెంట్‌లను ఉపయోగించాలనుకుంటున్నాము కాబట్టి, మేము చేయవలసిన మొదటి పని మా హోమ్-గ్రోన్ నెట్‌వర్క్ యుటిలిటీని గుర్తించడం (అన్ని సర్వర్‌లలో ఉపయోగించబడుతుంది): Kubernetes నోడ్‌లతో నెట్‌వర్క్‌లో IP చిరునామా పరిధులను ప్రచారం చేయడానికి దీన్ని ఉపయోగించండి. మేము పాడ్‌లకు IP చిరునామాలను కేటాయించడానికి కాలికోని అనుమతించాము, కానీ నెట్‌వర్క్ పరికరాలలో BGP సెషన్‌ల కోసం దానిని ఉపయోగించలేదు మరియు ఇప్పటికీ ఉపయోగించడం లేదు. వాస్తవానికి, రూటింగ్‌ని Exabgp నిర్వహిస్తుంది, ఇది కాలికో ఉపయోగించే సబ్‌నెట్‌లను ప్రచారం చేస్తుంది. ఇది అంతర్గత నెట్‌వర్క్ నుండి (మరియు ముఖ్యంగా లోడ్ బ్యాలెన్సర్‌ల నుండి) ఏదైనా పాడ్‌ని చేరుకోవడానికి అనుమతిస్తుంది.

మేము ప్రవేశ ట్రాఫిక్‌ని ఎలా నిర్వహిస్తాము

ఇన్‌కమింగ్ రిక్వెస్ట్‌లను కావలసిన సర్వీస్‌కి దారి మళ్లించడానికి, కుబెర్నెట్స్ ఇన్‌గ్రెస్ రిసోర్స్‌లతో దాని ఏకీకరణ కారణంగా ఇన్‌గ్రెస్ కంట్రోలర్‌ని ఉపయోగించాలని నిర్ణయించారు.

మూడు సంవత్సరాల క్రితం, nginx-ingress-controller అత్యంత పరిణతి చెందిన నియంత్రిక: Nginx చాలా కాలంగా ఉంది మరియు దాని స్థిరత్వం మరియు పనితీరుకు ప్రసిద్ధి చెందింది.

మా సిస్టమ్‌లో, అంకితమైన 10-గిగాబిట్ బ్లేడ్ సర్వర్‌లలో కంట్రోలర్‌లను ఉంచాలని మేము నిర్ణయించుకున్నాము. ప్రతి కంట్రోలర్ సంబంధిత క్లస్టర్ యొక్క క్యూబ్-ఎపిసర్వర్ ఎండ్ పాయింట్‌కి కనెక్ట్ చేయబడింది. ఈ సర్వర్‌లు పబ్లిక్ లేదా ప్రైవేట్ IP చిరునామాలను ప్రచారం చేయడానికి Exabgpని కూడా ఉపయోగించాయి. మా నెట్‌వర్క్ టోపోలాజీ NodePort వంటి సేవను ఉపయోగించకుండానే అన్ని ట్రాఫిక్‌లను నేరుగా పాడ్‌లకు మళ్లించడానికి ఈ కంట్రోలర్‌ల నుండి BGPని ఉపయోగించడానికి అనుమతిస్తుంది. ఈ విధానం నోడ్‌ల మధ్య క్షితిజ సమాంతర ట్రాఫిక్‌ను నివారించడంలో సహాయపడుతుంది మరియు సామర్థ్యాన్ని మెరుగుపరుస్తుంది.

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం
ఇంటర్నెట్ నుండి పాడ్‌లకు ట్రాఫిక్ కదలిక

ఇప్పుడు మేము మా హైబ్రిడ్ ప్లాట్‌ఫారమ్‌ను అర్థం చేసుకున్నాము, మేము ట్రాఫిక్ మైగ్రేషన్ ప్రక్రియను లోతుగా పరిశోధించవచ్చు.

Google క్లౌడ్ నుండి డైలీమోషన్ ఇన్‌ఫ్రాస్ట్రక్చర్‌కి ట్రాఫిక్‌ని తరలించడం

శరదృతువు 2018

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

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం

ప్రస్తుత రూటింగ్ వ్యూహం చాలా సులభం, కానీ అవసరాలను తీర్చడానికి సరిపోతుంది. పబ్లిక్ IPలతో పాటు (Google క్లౌడ్ మరియు డైలీమోషన్‌లో), AWS రూట్ 53 విధానాలను సెట్ చేయడానికి మరియు వినియోగదారులను మా ఎంపిక క్లస్టర్‌కి దారి మళ్లించడానికి ఉపయోగించబడుతుంది.

కుబెర్నెటెస్ అడ్వెంచర్ డైలీమోషన్: మేఘాలు + ఆవరణలో మౌలిక సదుపాయాలను సృష్టించడం
రూట్ 53ని ఉపయోగించి రూటింగ్ విధానానికి ఉదాహరణ

Google క్లౌడ్‌తో మేము అన్ని క్లస్టర్‌లలో ఒకే IPని భాగస్వామ్యం చేయడం వలన ఇది సులభం అవుతుంది మరియు వినియోగదారు సమీప GKE క్లస్టర్‌కి దారి మళ్లించబడతారు. మా క్లస్టర్‌ల కోసం సాంకేతికత భిన్నంగా ఉంటుంది, ఎందుకంటే వాటి IPలు భిన్నంగా ఉంటాయి.

వలస సమయంలో, మేము ప్రాంతీయ అభ్యర్థనలను తగిన క్లస్టర్‌లకు దారి మళ్లించడానికి ప్రయత్నించాము మరియు ఈ విధానం యొక్క ప్రయోజనాలను విశ్లేషించాము.

మా GKE క్లస్టర్‌లు కస్టమ్ మెట్రిక్‌లను ఉపయోగించి ఆటోస్కేల్‌కు కాన్ఫిగర్ చేయబడినందున, ఇన్‌కమింగ్ ట్రాఫిక్ ఆధారంగా అవి అప్/డౌన్ స్కేల్ అవుతాయి.

సాధారణ మోడ్‌లో, అన్ని ప్రాంతీయ ట్రాఫిక్‌లు స్థానిక క్లస్టర్‌కు మళ్లించబడతాయి మరియు సమస్యల విషయంలో GKE రిజర్వ్‌గా పనిచేస్తుంది (ఆరోగ్య తనిఖీలు రూట్ 53 ద్వారా నిర్వహించబడతాయి).

...

భవిష్యత్తులో, వినియోగదారులకు యాక్సెసిబిలిటీని నిరంతరం మెరుగుపరిచే స్వయంప్రతిపత్త హైబ్రిడ్ వ్యూహాన్ని సాధించడానికి మేము రూటింగ్ విధానాలను పూర్తిగా ఆటోమేట్ చేయాలనుకుంటున్నాము. ప్లస్ వైపు, క్లౌడ్ ఖర్చులు గణనీయంగా తగ్గించబడ్డాయి మరియు API ప్రతిస్పందన సమయాలు కూడా తగ్గించబడ్డాయి. మేము ఫలిత క్లౌడ్ ప్లాట్‌ఫారమ్‌ను విశ్వసిస్తాము మరియు అవసరమైతే దానికి మరింత ట్రాఫిక్‌ను దారి మళ్లించడానికి సిద్ధంగా ఉన్నాము.

అనువాదకుని నుండి PS

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

మా బ్లాగులో కూడా చదవండి:

మూలం: www.habr.com

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