కుబెర్నెట్స్‌లో నడుస్తున్న అప్లికేషన్‌ల డెవలపర్‌ల కోసం సాధనాలు

కుబెర్నెట్స్‌లో నడుస్తున్న అప్లికేషన్‌ల డెవలపర్‌ల కోసం సాధనాలు

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

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

సాధారణ సహాయకులు

Kubectl-డీబగ్

  • బాటమ్ లైన్: మీ కంటైనర్‌ను పాడ్‌కి జోడించి, అందులో ఏమి జరుగుతుందో చూడండి.
  • గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 715 నక్షత్రాలు, 54 కమిట్‌లు, 9 మంది సహకారులు.
  • భాష: గో.
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

kubectl కోసం ఈ ప్లగ్ఇన్ మీకు ఆసక్తి ఉన్న పాడ్ లోపల అదనపు కంటైనర్‌ను సృష్టించడానికి అనుమతిస్తుంది, ఇది ఇతర కంటైనర్‌లతో ప్రాసెస్ నేమ్‌స్పేస్‌ను భాగస్వామ్యం చేస్తుంది. దీనిలో మీరు పాడ్ యొక్క ఆపరేషన్‌ను డీబగ్ చేయవచ్చు: నెట్‌వర్క్‌ను తనిఖీ చేయండి, నెట్‌వర్క్ ట్రాఫిక్‌ను వినండి, ఆసక్తి ప్రక్రియ యొక్క స్ట్రేస్ చేయండి మొదలైనవి.

మీరు రన్ చేయడం ద్వారా ప్రాసెస్ కంటైనర్‌కి కూడా మారవచ్చు chroot /proc/PID/root - మీరు మానిఫెస్ట్‌లో సెట్ చేయబడిన కంటైనర్‌లో రూట్ షెల్‌ను పొందవలసి వచ్చినప్పుడు ఇది చాలా సౌకర్యవంతంగా ఉంటుంది securityContext.runAs.

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

టెలీప్రెజెన్స్

  • బాటమ్ లైన్: అప్లికేషన్‌ను మీ కంప్యూటర్‌కు బదిలీ చేయండి. స్థానికంగా అభివృద్ధి చేయండి మరియు డీబగ్ చేయండి.
  • వెబ్సైట్; గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 2131 నక్షత్రాలు, 2712 కమిట్‌లు, 33 మంది సహకారులు.
  • భాష: పైథాన్.
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

ఈ స్నాప్-ఇన్ యొక్క ఆలోచన స్థానిక వినియోగదారు కంప్యూటర్‌లో అప్లికేషన్‌తో ఒక కంటైనర్‌ను ప్రారంభించడం మరియు క్లస్టర్ నుండి దానికి మరియు వెనుకకు అన్ని ట్రాఫిక్‌ను ప్రాక్సీ చేయడం. ఈ విధానం మీకు ఇష్టమైన IDEలో ఫైల్‌లను సవరించడం ద్వారా స్థానికంగా అభివృద్ధి చేయడానికి మిమ్మల్ని అనుమతిస్తుంది: ఫలితాలు వెంటనే అందుబాటులో ఉంటాయి.

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

మేము ఇప్పటికే టెలిప్రెసెన్స్‌ని ఉపయోగించిన మా అనుభవాన్ని పంచుకున్నాము ఇక్కడ.

Ksync

  • బాటమ్ లైన్: క్లస్టర్‌లోని కంటైనర్‌తో కోడ్ యొక్క దాదాపు తక్షణ సమకాలీకరణ.
  • గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 555 నక్షత్రాలు, 362 కమిట్‌లు, 11 మంది సహకారులు.
  • భాష: గో.
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

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

కమాండ్ ద్వారా ఒకసారి ప్రారంభించినప్పుడు ksync init క్లస్టర్‌లో డెమోన్‌సెట్ సృష్టించబడుతుంది, ఇది ఎంచుకున్న కంటైనర్ ఫైల్ సిస్టమ్ స్థితిని పర్యవేక్షించడానికి ఉపయోగించబడుతుంది. అతని స్థానిక కంప్యూటర్‌లో, డెవలపర్ ఆదేశాన్ని అమలు చేస్తాడు ksync watch, ఇది కాన్ఫిగరేషన్‌లు మరియు రన్‌లను పర్యవేక్షిస్తుంది syncthing, ఇది నేరుగా క్లస్టర్‌తో ఫైళ్లను సమకాలీకరిస్తుంది.

దేనితో సమకాలీకరించాలో ksyncకి సూచించడమే మిగిలి ఉంది. ఉదాహరణకు, ఈ ఆదేశం:

ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/

... అనే వాచర్‌ని సృష్టిస్తుంది myprojectఇది లేబుల్‌తో పాడ్ కోసం శోధిస్తుంది app=backend మరియు స్థానిక డైరెక్టరీని సమకాలీకరించడానికి ప్రయత్నించండి /home/user/myproject/ కేటలాగ్ తో /var/www/myproject/ అనే కంటైనర్ వద్ద php.

మా అనుభవం నుండి ksyncపై సమస్యలు మరియు గమనికలు:

  • Kubernetes క్లస్టర్ నోడ్స్‌లో తప్పనిసరిగా ఉపయోగించాలి overlay2 డాకర్ కోసం నిల్వ డ్రైవర్‌గా. యుటిలిటీ ఇతరులతో పని చేయదు.
  • Windowsను క్లయింట్ OSగా ఉపయోగిస్తున్నప్పుడు, ఫైల్ సిస్టమ్ వాచర్ సరిగ్గా పని చేయకపోవచ్చు. పెద్ద డైరెక్టరీలతో పని చేస్తున్నప్పుడు ఈ బగ్ గుర్తించబడింది - పెద్ద సంఖ్యలో సమూహ ఫైల్‌లు మరియు డైరెక్టరీలతో. మేము సృష్టించాము సంబంధిత సమస్య సమకాలీకరణ ప్రాజెక్ట్‌లో, కానీ దానిపై ఇంకా పురోగతి లేదు (జూలై ప్రారంభం నుండి).
  • ఫైల్ ఉపయోగించండి .stignore సమకాలీకరించాల్సిన అవసరం లేని మార్గాలు లేదా ఫైల్ నమూనాలను పేర్కొనడానికి (ఉదాహరణకు, డైరెక్టరీలు app/cache и .git).
  • డిఫాల్ట్‌గా, ఫైల్‌లు మారినప్పుడల్లా ksync కంటైనర్‌ను పునఃప్రారంభిస్తుంది. Node.js కోసం ఇది సౌకర్యవంతంగా ఉంటుంది, కానీ PHP కోసం ఇది పూర్తిగా అనవసరం. opcacheని ఆఫ్ చేసి, ఫ్లాగ్‌ని ఉపయోగించడం మంచిది --reload=false.
  • కాన్ఫిగరేషన్‌ను ఎల్లప్పుడూ సరిదిద్దవచ్చు $HOME/.ksync/ksync.yaml.

స్క్వాష్

  • బాటమ్ లైన్: క్లస్టర్‌లో నేరుగా డీబగ్ ప్రక్రియలు.
  • గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 1154 నక్షత్రాలు, 279 కమిట్‌లు, 23 మంది సహకారులు.
  • భాష: గో.
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

ఈ సాధనం నేరుగా పాడ్‌లలో డీబగ్గింగ్ ప్రక్రియల కోసం రూపొందించబడింది. యుటిలిటీ సులభం మరియు ఇంటరాక్టివ్‌గా కావలసిన డీబగ్గర్‌ని ఎంచుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది (కింద చూడుము) మరియు నేమ్‌స్పేస్ + పాడ్, ఈ ప్రక్రియలో మీరు జోక్యం చేసుకోవాలి. ప్రస్తుతం మద్దతు ఉంది:

  • delve - గో అప్లికేషన్ల కోసం;
  • GDB - టార్గెట్ రిమోట్ + పోర్ట్ ఫార్వార్డింగ్ ద్వారా;
  • జావా అప్లికేషన్‌లను డీబగ్గింగ్ చేయడానికి JDWP పోర్ట్ ఫార్వార్డింగ్.

IDE వైపు, మద్దతు VScodeలో మాత్రమే అందుబాటులో ఉంది (ఉపయోగించి విస్తరణఅయితే, ప్రస్తుత (2019) సంవత్సరానికి సంబంధించిన ప్లాన్‌లలో ఎక్లిప్స్ మరియు ఇంటెలిజ్ ఉన్నాయి.

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

ఇంటిగ్రేటెడ్ సొల్యూషన్స్

భారీ ఫిరంగిదళానికి వెళ్దాం - డెవలపర్‌ల యొక్క అనేక అవసరాలను వెంటనే తీర్చడానికి రూపొందించబడిన మరిన్ని “పెద్ద-స్థాయి” ప్రాజెక్టులు.

NB: ఈ జాబితాలో, మా ఓపెన్ సోర్స్ యుటిలిటీ కోసం ఒక స్థలం ఉంది వర్ఫ్ (గతంలో డప్ అని పిలుస్తారు). అయినప్పటికీ, మేము ఇప్పటికే దాని గురించి ఒకటి కంటే ఎక్కువసార్లు వ్రాసాము మరియు మాట్లాడాము మరియు అందువల్ల సమీక్షలో చేర్చకూడదని నిర్ణయించుకున్నాము. దాని సామర్థ్యాలతో మరింత సుపరిచితం కావాలనుకునే వారి కోసం, మేము నివేదికను చదవడం/వినడం సిఫార్సు చేస్తున్నాము "కుబెర్నెట్స్‌లో CI/CD కోసం werf మా సాధనం".

DevSpace

  • బాటమ్ లైన్: కుబెర్నెటెస్‌లో పని చేయడం ప్రారంభించాలనుకునే వారి కోసం, కానీ దాని అడవిలో లోతుగా పరిశోధించడానికి ఇష్టపడరు.
  • గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 630 నక్షత్రాలు, 1912 కమిట్‌లు, 13 మంది సహకారులు.
  • భాష: గో.
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

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

ఆదేశాన్ని అమలు చేస్తున్నప్పుడు devspace init ప్రాజెక్ట్ కేటలాగ్‌లో మీకు అందించబడుతుంది (ఇంటరాక్టివ్‌గా):

  • పని చేసే కుబెర్నెట్స్ క్లస్టర్‌ని ఎంచుకోండి,
  • ఉన్న ఉపయోగించండి Dockerfile (లేదా కొత్తదాన్ని రూపొందించండి) దాని ఆధారంగా కంటైనర్‌ను రూపొందించడానికి,
  • కంటైనర్ ఇమేజ్‌లు మొదలైన వాటిని నిల్వ చేయడానికి రిపోజిటరీని ఎంచుకోండి.

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

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

చివరగా, జట్టు devspace deploy అప్లికేషన్ మరియు అనుబంధ మౌలిక సదుపాయాలను క్లస్టర్‌కు రోల్ చేస్తుంది, దాని తర్వాత ప్రతిదీ పోరాట మోడ్‌లో పనిచేయడం ప్రారంభమవుతుంది.

అన్ని ప్రాజెక్ట్ కాన్ఫిగరేషన్ ఫైల్‌లో నిల్వ చేయబడుతుంది devspace.yaml. డెవలప్‌మెంట్ ఎన్విరాన్‌మెంట్ సెట్టింగ్‌లతో పాటు, మీరు దానిలోని మౌలిక సదుపాయాల వివరణను కూడా కనుగొనవచ్చు, ప్రామాణిక కుబెర్నెట్స్ మానిఫెస్ట్‌ల మాదిరిగానే, చాలా సరళీకృతం చేయబడింది.

కుబెర్నెట్స్‌లో నడుస్తున్న అప్లికేషన్‌ల డెవలపర్‌ల కోసం సాధనాలు
DevSpaceతో పనిచేసే ఆర్కిటెక్చర్ మరియు ప్రధాన దశలు

అదనంగా, ప్రాజెక్ట్‌కు ముందే నిర్వచించిన భాగం (ఉదాహరణకు, MySQL DBMS) లేదా హెల్మ్ చార్ట్‌ని జోడించడం సులభం. లో మరింత చదవండి డాక్యుమెంటేషన్ - ఇది సంక్లిష్టమైనది కాదు.

స్కాఫోల్డ్

  • వెబ్సైట్; గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 7423 నక్షత్రాలు, 4173 కమిట్‌లు, 136 మంది సహకారులు.
  • భాష: గో.
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

Google నుండి వచ్చిన ఈ యుటిలిటీ డెవలపర్ యొక్క అన్ని అవసరాలను కవర్ చేస్తుందని పేర్కొంది, దీని కోడ్ ఏదో ఒకవిధంగా కుబెర్నెట్స్ క్లస్టర్‌లో రన్ అవుతుంది. దీన్ని ఉపయోగించడం ప్రారంభించడం devspace అంత సులభం కాదు: ఇంటరాక్టివిటీ, భాష గుర్తింపు మరియు స్వీయ-సృష్టి లేదు Dockerfile వారు దానిని ఇక్కడ మీకు అందించరు.

అయినప్పటికీ, ఇది మిమ్మల్ని భయపెట్టకపోతే, స్కాఫోల్డ్ మిమ్మల్ని ఏమి చేయడానికి అనుమతిస్తుంది:

  • సోర్స్ కోడ్ మార్పులను ట్రాక్ చేయండి.
  • అసెంబ్లీ అవసరం లేకుంటే పాడ్ కంటైనర్‌తో సమకాలీకరించండి.
  • భాష అర్థం అయినట్లయితే కోడ్‌తో కంటైనర్‌లను సేకరించండి లేదా కళాఖండాలను కంపైల్ చేసి వాటిని కంటైనర్‌లలో ప్యాక్ చేయండి.
  • ఫలితంగా చిత్రాలు స్వయంచాలకంగా ఉపయోగించి తనిఖీ చేయబడతాయి కంటైనర్-నిర్మాణం-పరీక్ష.
  • డాకర్ రిజిస్ట్రీకి చిత్రాలను ట్యాగ్ చేయడం మరియు అప్‌లోడ్ చేయడం.
  • kubectl, Helm లేదా kustomize ఉపయోగించి క్లస్టర్‌లో అప్లికేషన్‌ను అమలు చేయండి.
  • పోర్ట్ ఫార్వార్డింగ్ జరుపుము.
  • Java, Node.js, Pythonలో వ్రాయబడిన డీబగ్ అప్లికేషన్లు.

వివిధ వైవిధ్యాలలో వర్క్‌ఫ్లో ఫైల్‌లో డిక్లరేటివ్‌గా వివరించబడింది skaffold.yaml. ప్రాజెక్ట్ కోసం, మీరు అసెంబ్లీ మరియు విస్తరణ దశలను పాక్షికంగా లేదా పూర్తిగా మార్చగల అనేక ప్రొఫైల్‌లను కూడా నిర్వచించవచ్చు. ఉదాహరణకు, అభివృద్ధి కోసం, డెవలపర్‌కు అనుకూలమైన బేస్ ఇమేజ్‌ని పేర్కొనండి మరియు స్టేజింగ్ మరియు ప్రొడక్షన్ కోసం - కనిష్టంగా (+ ఉపయోగం securityContext కంటైనర్లు లేదా అప్లికేషన్ అమలు చేయబడే క్లస్టర్‌ని పునర్నిర్వచించండి).

డాకర్ కంటైనర్‌లను స్థానికంగా లేదా రిమోట్‌గా నిర్మించవచ్చు: in Google క్లౌడ్ బిల్డ్ లేదా ఉపయోగించి క్లస్టర్‌లో కానికో. బాజెల్ మరియు జిబ్ మావెన్/గ్రాడిల్‌లకు కూడా మద్దతు ఉంది. ట్యాగింగ్ కోసం, Skaffold అనేక వ్యూహాలకు మద్దతు ఇస్తుంది: git కమిట్ హాష్, తేదీ/సమయం, sha256-మొత్తం మూలాధారాలు మొదలైనవి.

విడిగా, కంటైనర్లను పరీక్షించే అవకాశాన్ని గమనించడం విలువ. ఇప్పటికే పేర్కొన్న కంటైనర్-స్ట్రక్చర్-టెస్ట్ ఫ్రేమ్‌వర్క్ క్రింది ధృవీకరణ పద్ధతులను అందిస్తుంది:

  • నిష్క్రమణ స్థితిగతులను ట్రాక్ చేయడం మరియు కమాండ్ యొక్క టెక్స్ట్ అవుట్‌పుట్‌ను తనిఖీ చేయడంతో కంటైనర్ సందర్భంలో ఆదేశాలను అమలు చేయడం.
  • కంటైనర్‌లో ఫైల్‌ల ఉనికిని తనిఖీ చేయడం మరియు పేర్కొన్న లక్షణాలతో సరిపోలడం.
  • సాధారణ వ్యక్తీకరణలను ఉపయోగించి ఫైల్ కంటెంట్‌ల నియంత్రణ.
  • చిత్రం మెటాడేటా ధృవీకరణ (ENV, ENTRYPOINT, VOLUMES మరియు మొదలైనవి.).
  • లైసెన్స్ అనుకూలతను తనిఖీ చేస్తోంది.

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

కుబెర్నెట్స్‌లో నడుస్తున్న అప్లికేషన్‌ల డెవలపర్‌ల కోసం సాధనాలు
స్కాఫోల్డ్ ఆపరేషన్ యొక్క ప్రధాన దశలు

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

తోట

  • వెబ్సైట్; గ్యాలరీలు.
  • సంక్షిప్త GH గణాంకాలు: 1063 నక్షత్రాలు, 1927 కమిట్‌లు, 17 మంది సహకారులు.
  • భాష: టైప్‌స్క్రిప్ట్ (ప్రాజెక్ట్‌ను అనేక భాగాలుగా విభజించడానికి ప్రణాళిక చేయబడింది, వాటిలో కొన్ని గోలో ఉంటాయి మరియు టైప్‌స్క్రిప్ట్/జావాస్క్రిప్ట్ మరియు గోలో యాడ్-ఆన్‌లను రూపొందించడానికి SDKని కూడా రూపొందించండి).
  • లైసెన్స్: అపాచీ లైసెన్స్ 2.0.

స్కాఫోల్డ్ లాగా, గార్డెన్ K8s క్లస్టర్‌కి అప్లికేషన్ కోడ్‌ను బట్వాడా చేసే ప్రక్రియలను ఆటోమేట్ చేయడం లక్ష్యంగా పెట్టుకుంది. దీన్ని చేయడానికి, మీరు మొదట ప్రాజెక్ట్ నిర్మాణాన్ని YAML ఫైల్‌లో వివరించాలి, ఆపై ఆదేశాన్ని అమలు చేయాలి garden dev. ఆమె అన్ని మాయాజాలం చేస్తుంది:

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

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

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

గార్డెన్ వినియోగదారుకు అందమైన డాష్‌బోర్డ్‌ను అందిస్తుంది (ప్రస్తుతం ప్రయోగాత్మక స్థితి), ఇది ప్రాజెక్ట్ గ్రాఫ్‌ను ప్రదర్శిస్తుంది: భాగాలు, అసెంబ్లీ క్రమం, పనులు మరియు పరీక్షల అమలు, వాటి కనెక్షన్‌లు మరియు డిపెండెన్సీలు. బ్రౌజర్‌లోనే, మీరు అన్ని ప్రాజెక్ట్ భాగాల లాగ్‌లను వీక్షించవచ్చు మరియు HTTP ద్వారా నిర్దిష్ట కాంపోనెంట్ అవుట్‌పుట్‌లను తనిఖీ చేయవచ్చు (వాస్తవానికి, దాని కోసం ప్రవేశ వనరు ప్రకటించబడితే).

కుబెర్నెట్స్‌లో నడుస్తున్న అప్లికేషన్‌ల డెవలపర్‌ల కోసం సాధనాలు
గార్డెన్ కోసం ప్యానెల్

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

తీర్మానం

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

PS

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

మూలం: www.habr.com

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