የኩበርኔትስ ትክክለኛ ንፅፅር ይተግብሩ ፣ ይተኩ እና ይለጥፉ

Kubernetes ሀብቶችን ለማዘመን ብዙ አማራጮች አሉት፡ ተግብር፣ አርትዕ፣ መለጠፍ እና መተካት። እያንዳንዳቸው ምን እንደሚሠሩ እና መቼ እንደሚጠቀሙባቸው ግራ መጋባት አለ። እስቲ እንገምተው።

የኩበርኔትስ ትክክለኛ ንፅፅር ይተግብሩ ፣ ይተኩ እና ይለጥፉ

ከሆነ በ Google ላይ መፈለግ "kubernetes apply vs replace" የሚለው ሐረግ ይገኛል። ለ StackOverflow ምላሽ ይስጡ, ይህም ትክክል አይደለም. ሲፈልጉ "kubernetes apply vs patch" የመጀመሪያው ማገናኛ ለሰነድ ነው። kubectl patch, ይህም ንጽጽርን አያካትትም apply и patch. ይህ ጽሑፍ የተለያዩ አማራጮችን, እንዲሁም የእያንዳንዱን ትክክለኛ አጠቃቀም ይመለከታል.

የኩበርኔትስ ሃብት (አገልግሎት፣ ማሰማራት፣ መግባት፣ ወዘተ) የህይወት ኡደት ወቅት አንዳንድ ጊዜ የዚህን ሃብት አንዳንድ ንብረቶች መቀየር፣ ማከል ወይም ማስወገድ ያስፈልግዎታል። ለምሳሌ፣ ማስታወሻ ያክሉ፣ የተባዙትን ብዛት ይጨምሩ ወይም ይቀንሱ።

ኩበርኔትስ CLI

አስቀድመው በCLI በኩል ከKubernetes ስብስቦች ጋር እየሰሩ ከሆነ፣ እርስዎ ያውቁታል። apply и edit. ቡድን apply የመርጃ ዝርዝሮችን ከፋይሉ ያነባል እና ወደ ኩበርኔትስ ክላስተር “ማሳደጊያ” ያደርጋል፣ i.e. ከሌለ ሃብቱን ይፈጥራል እና ካለ ያዘምነዋል። ቡድን edit በኤፒአይ በኩል አንድን መረጃ ያነባል፣ከዚያም የንብረት ዝርዝር መግለጫውን ወደ አካባቢያዊ ፋይል ይጽፋል፣ ከዚያም በጽሁፍ አርታኢ ውስጥ ይከፈታል። ፋይሉን ካስተካክሉ እና ካስቀመጡ በኋላ kubectl የተደረጉትን ለውጦች በኤፒአይ በኩል መልሶ ይልካል፣ ይህም እነዚህን ለውጦች በንብረቱ ላይ በጥንቃቄ ይተገበራል።

ትእዛዙን ሁሉም ሰው አያውቅም patch и replace. ቡድን patch በትእዛዝ መስመሩ ላይ የተለወጠውን ክፍል ብቻ በማቅረብ የንብረት መግለጫውን በከፊል እንዲቀይሩ ያስችልዎታል። ቡድን replace ጋር ተመሳሳይ ይሰራል edit, ነገር ግን ሁሉም ነገር በእጅ መከናወን አለበት: የአሁኑን የመርጃ ዝርዝሮችን ስሪት ማውረድ ያስፈልግዎታል, ለምሳሌ, በመጠቀም. kubectl get -o yaml፣ አርትዕ ያድርጉት፣ ከዚያ ይጠቀሙ replace በተቀየረ መስፈርት መሰረት ሀብትን ለማዘመን። ቡድን replace ንብረቱን በማንበብ እና በመተካት መካከል ለውጦች ከተከሰቱ አይሰራም።

Kubernetes ኤፒአይ

ምናልባት ዘዴዎቹን በደንብ ያውቁ ይሆናል CoreV1().Pods().Update(), replaceNamespacedService ወይም patch_namespaced_deploymentከክላስተር ጋር የምትሰራ ከሆነ በ በኩል የደንበኛ ቤተ-መጽሐፍት ለ Kubernetes API አንዳንድ የፕሮግራሚንግ ቋንቋ በመጠቀም. ቤተ መፃህፍቱ እነዚህን ዘዴዎች በኤችቲቲፒ ጥያቄዎች ዘዴዎችን ይጠቀማል PUT и PATCH... በውስጡ update и replace መጠቀም PUTና patch, ምንም ያህል ቀላል ቢሆንም, ይጠቀማል PATCH.

ይህን ልብ ሊባል የሚገባው kubectl እንዲሁም በኤፒአይ በኩል ከስብስብ ጋር ይሰራል። በሌላ ቃል, kubectlለጎ ቋንቋ በደንበኛው ቤተ-መጽሐፍት ላይ መጠቅለያ ሲሆን ይህም ከመደበኛው የኤፒአይ ችሎታዎች በተጨማሪ ንዑስ ትዕዛዞችን በተጠናከረ እና ሊነበብ በሚችል ቅጽ የማቅረብ ችሎታን ይሰጣል። ለምሳሌ, ቀደም ሲል እንዳስተዋሉት, ዘዴው apply በቀደመው አንቀጽ ላይ ከላይ አልተጠቀሰም። በአሁኑ ጊዜ (ግንቦት 2020) በግምት ተርጓሚ) ሁሉም ሎጂክ kubectl apply፣ ማለትም እ.ኤ.አ. የማይገኙ ሀብቶችን መፍጠር እና ያሉትን ማዘመን, ሙሉ በሙሉ በኮዱ ጎን ላይ ይሰራል kubectl. ጥረት እየተደረገ ነው። በሎጂክ ሽግግር ላይ apply ወደ ኤፒአይ ጎን፣ ግን አሁንም በቅድመ-ይሁንታ ላይ ነው። ከዚህ በታች በዝርዝር እጽፋለሁ.

በነባሪ ጠጋኝ

ምርጥ ጥቅም ላይ የዋለ patch, ንብረቱን ማዘመን ከፈለጉ. ሁለቱም የደንበኛ ቤተ-ፍርግሞች በ Kubernetes ኤፒአይ እና ላይ የሚሰሩት በዚህ መንገድ ነው። kubectl (ይህ ለደንበኛው ቤተ-መጽሐፍት መጠቅለያ ስለሆነ ምንም አያስደንቅም ፣ በግምት ተርጓሚ).

በስልት ስራ

ሁሉም ቡድኖች kubectl apply, edit и patch ዘዴውን ተጠቀም PATCH በኤችቲቲፒ ጥያቄ ውስጥ ያለውን ሃብት ለማዘመን። የትእዛዞችን አተገባበር በበለጠ ዝርዝር ውስጥ ከገቡ, ሁሉም አቀራረቡን ይጠቀማሉ ስልታዊ-ውህደት መለጠፍ ምንም እንኳን ትዕዛዙ ቢሆንም ሀብቶችን ለማዘመን patch ሌሎች አካሄዶችን ሊጠቀም ይችላል (ከዚህ በታች በዚህ ላይ ተጨማሪ)። የስትራቴጂክ-ውህደት መጠገኛ አካሄድ የቀረበውን ዝርዝር ከነባሩ ዝርዝር መግለጫ ጋር በማዋሃድ "ትክክል ለማድረግ" ይሞክራል። በተለየ መልኩ ሁለቱንም እቃዎች እና ድርድሮች ለማጣመር ይሞክራል, ይህ ማለት ለውጦቹ የመደመር አዝማሚያ አላቸው. ለምሳሌ, ትዕዛዙን ማስኬድ patch በፖድ ኮንቴይነር ስፔሲፊኬሽን ውስጥ ካለው አዲስ የአካባቢ ተለዋዋጭ ጋር፣ የአካባቢ ተለዋዋጮች ወደ ነባሮቹ የአካባቢ ተለዋዋጮች እንዲጨመሩ ያደርጋል። ይህን አካሄድ በመጠቀም ለማስወገድ፣ በቀረበው ዝርዝር መግለጫ ውስጥ የመለኪያ እሴቱን ወደ ባዶነት ማስገደድ አለብዎት። ከቡድኖቹ ውስጥ የትኛው kubectl ለማዘመን መጠቀም የተሻለ ነው?

ተጠቅመው ሀብቶችዎን ከፈጠሩ እና ካቀናበሩ kubectl apply, በማዘመን ጊዜ ሁልጊዜ መጠቀም የተሻለ ነው kubectl applyለ kubectl ውቅረትን ማስተዳደር እና የተጠየቁ ለውጦችን ከመተግበሪያ ወደ መተግበሪያ በትክክል መከታተል ይችላል። ጥቅማጥቅሞች ሁል ጊዜ ይጠቀሙ apply ቀደም ሲል የተተገበረውን ዝርዝር ሁኔታ ይከታተላል፣ ይህም የዝርዝር ባህሪያት እና የድርድር አካላት በግልጽ ሲወገዱ እንዲያውቅ ያስችለዋል። ይህ እንድትጠቀም ይፈቅድልሃል apply ንብረቶችን እና የድርድር ክፍሎችን ለማስወገድ, መደበኛ የስትራቴጂክ ውህደት አይሰራም. ቡድኖች edit и patch ማስታወሻዎችን አታዘምኑ kubectl apply ለውጦቹን ለመከታተል ይጠቀማል፣ ስለዚህ በ Kubernetes ኤፒአይ በኩል የሚደረጉ ማናቸውም ለውጦች፣ ነገር ግን በትእዛዞች የተደረጉ ለውጦች edit и patch, ለሚቀጥሉት ትዕዛዞች የማይታይ applyነው apply በግቤት ዝርዝር ውስጥ ባይታዩም አያስወግዳቸውም። apply (ሰነዱ እንዲህ ይላል። edit и patch ጥቅም ላይ በሚውሉ ማስታወሻዎች ላይ ማሻሻያ ማድረግ apply, ግን በተግባር - አይደለም).

ትዕዛዙን ካልተጠቀሙ apply, እንደ ጥቅም ላይ ሊውል ይችላል edit, እና patchእየመጣ ላለው ለውጥ የሚስማማውን ትእዛዝ መምረጥ። የBOM ንብረቶችን ሲጨምሩ እና ሲቀይሩ ሁለቱም አቀራረቦች በግምት ተመሳሳይ ናቸው። የዝርዝር ባህሪያትን ወይም የድርድር ክፍሎችን ሲሰርዝ edit እንደ አንድ ጊዜ ማስጀመሪያ ይሠራል applyመግለጫው ከመስተካከሉ በፊት እና በኋላ ምን እንደሚመስል መከታተልን ጨምሮ፣ ስለዚህ ንብረቶችን እና የድርድር ክፍሎችን ከንብረት ላይ በግልፅ ማስወገድ ይችላሉ። በዝርዝሩ ውስጥ የንብረት ዋጋውን ወደ ባዶነት በግልፅ ማስቀመጥ ያስፈልግዎታል patchከንብረቱ ውስጥ ለማስወገድ. የስትራቴጂ-ውህደት መለጠፍን በመጠቀም የድርድር አካልን ማስወገድ የበለጠ ውስብስብ ነው ምክንያቱም የውህደት መመሪያዎችን መጠቀምን ይጠይቃል። ለበለጠ አዋጭ አማራጮች ሌሎች የማሻሻያ መንገዶችን ይመልከቱ።

ከላይ ካሉት ትዕዛዞች ጋር ተመሳሳይ ባህሪ ያላቸውን የደንበኛ ቤተ-መጽሐፍት ውስጥ የማዘመን ዘዴዎችን ተግባራዊ ለማድረግ kubectl, በጥያቄዎች ውስጥ መቀመጥ አለበት content-type в application/strategic-merge-patch+json. ንብረቶቹን በዝርዝር ውስጥ ለማስወገድ ከፈለጉ እሴቶቻቸውን በተመሳሳይ መንገድ ውድቅ አድርገው ማዋቀር ያስፈልግዎታል kubectl patch. የድርድር አባሎችን ማስወገድ ካስፈለገዎት የውህደት መመሪያዎችን በዝማኔው ዝርዝር ውስጥ ማካተት አለብዎት ወይም ለዝማኔዎች የተለየ አቀራረብ ይጠቀሙ።

ለዝማኔዎች ሌሎች አቀራረቦች

Kubernetes ሌሎች ሁለት የማሻሻያ አቀራረቦችን ይደግፋል፡ JSON ውህደት ጠጋኝ и JSON ጠጋኝ. የJSON ውህደት መጠገኛ አካሄድ ከፊል የኩበርኔትስ ዝርዝር መግለጫን እንደ ግብአት ይወስዳል እና ከስልታዊ-ውህደት መጠገኛ አካሄድ ጋር ተመሳሳይ የሆኑ ነገሮችን መቀላቀልን ይደግፋል። በሁለቱ መካከል ያለው ልዩነት በፖድ ስፔሲፊኬሽን ውስጥ ያለውን የእቃ መያዢያ ድርድርን ጨምሮ የድርድር መተካትን ብቻ የሚደግፍ መሆኑ ነው። ይህ ማለት የJSON ውህደት ፕላስተርን በሚጠቀሙበት ጊዜ ማንኛውም የመያዣው ንብረት ከተቀየረ ለሁሉም ኮንቴይነሮች የተሟላ መግለጫዎችን ማቅረብ አለብዎት። ስለዚህ ይህ አካሄድ በ BOM ውስጥ ያሉትን ንጥረ ነገሮች ከድርድር ለማስወገድ ጠቃሚ ነው። በትዕዛዝ መስመሩ ላይ የ JSON ውህደት ፕላስተርን በመጠቀም መምረጥ ይችላሉ። kubectl patch --type=merge. ከ Kubernetes ኤፒአይ ጋር ሲሰሩ የጥያቄ ዘዴን መጠቀም አለብዎት PATCH እና መጫኛ content-type в application/merge-patch+json.

የJSON ጠጋኝ አቀራረብ የሀብት ከፊል ዝርዝር መግለጫ ከመስጠት ይልቅ በሃብቱ ላይ ማድረግ የሚፈልጓቸውን ለውጦች እንደ ድርድር በማቅረብ ይጠቀማል፣ በዚህ ውስጥ እያንዳንዱ የድርድር አካል በሀብቱ ላይ የሚደረገውን ለውጥ መግለጫ ያሳያል። ይህ አካሄድ እየተደረጉ ያሉትን ለውጦች ለመግለፅ የበለጠ ተለዋዋጭ እና ሃይለኛ መንገድ ነው፣ ነገር ግን ለውጦቹን ለመዘርዘር የሚያስከፍለው ከፊል የሀብት ዝርዝር መግለጫ ከመላክ ይልቅ በተለየ የኩበርኔትስ ቅርጸት አይደለም። ውስጥ kubectl በመጠቀም JSON patch መምረጥ ይችላሉ። kubectl patch --type=json. የኩበርኔትስ ኤፒአይን ሲጠቀሙ ይህ አካሄድ የጥያቄውን ዘዴ በመጠቀም ይሰራል PATCH እና መጫኛ content-type в application/json-patch+json.

በራስ መተማመን ያስፈልገናል - ምትክ ይጠቀሙ

በአንዳንድ ሁኔታዎች፣ ሀብቱ በሚነበብበት ጊዜ እና በሚዘምንበት ጊዜ መካከል ምንም ለውጦች እንዳልተደረጉ እርግጠኛ መሆን አለብዎት። በሌላ አነጋገር ሁሉም ለውጦች እንደሚሆኑ ማረጋገጥ አለብዎት አቶሚክ. በዚህ አጋጣሚ, መጠቀም ያለብዎትን ሀብቶች ለማዘመን replace. ለምሳሌ፣ ConfigMap (ConfigMap) ያለው ቆጣሪ ካለው በብዙ ምንጮች የሚዘመን ከሆነ፣ ሁለት ምንጮች በተመሳሳይ ጊዜ ቆጣሪውን እንደማያዘምኑ እርግጠኛ መሆን አለብዎት፣ ይህም ዝመናው እንዲጠፋ ያደርገዋል። ለማሳየት፣ አቀራረቡን በመጠቀም የክስተቶችን ቅደም ተከተል አስብ patch:

  • A እና B የንብረቱን ወቅታዊ ሁኔታ ከኤፒአይ ያገኛሉ
  • እያንዳንዱ ሰው ቆጣሪውን በአንድ በመጨመር እና እንዲሁም በቅደም ተከተል "A" ወይም "B" በ "የተሻሻለው" ማስታወሻ ላይ በመጨመር ዝርዝር መግለጫውን ያዘምናል.
  • እና ሀብቱን በትንሹ በፍጥነት ያዘምናል።
  • B ንብረቱን ያሻሽላል

በውጤቱም, A ዝማኔ ጠፍቷል. የመጨረሻው ቀዶ ጥገና patch ያሸንፋል፣ ቆጣሪው በሁለት ፈንታ በአንድ ይጨምራል፣ እና የ"የዘመነ" ማስታወሻ ዋጋ በ"B" ያበቃል እና "ሀ" አልያዘም። አቀራረቡን በመጠቀም ዝማኔዎች ሲደረጉ ከሚፈጠረው ጋር እናወዳድር replace:

  • A እና B የንብረቱን ወቅታዊ ሁኔታ ከኤፒአይ ያገኛሉ
  • እያንዳንዱ ሰው ቆጣሪውን በአንድ በመጨመር እና እንዲሁም በቅደም ተከተል "A" ወይም "B" በ "የተሻሻለው" ማስታወሻ ላይ በመጨመር ዝርዝር መግለጫውን ያዘምናል.
  • እና ሀብቱን በትንሹ በፍጥነት ያዘምናል።
  • B ንብረቱን ለማዘመን ይሞክራል፣ ነገር ግን ዝማኔው በኤፒአይ ውድቅ ተደርጓል ምክንያቱም የንብረት ስሪቱ በዝርዝሩ ውስጥ ነው። replace በ Kubernetes ውስጥ ካለው የንብረቱ ስሪት ጋር አይዛመድም ምክንያቱም የንብረቱ እትም በ A ምትክ ክወና ተጨምሯል።

ከላይ ባለው ሁኔታ B ንብረቱን እንደገና ማምጣት፣ በአዲሱ ግዛት ላይ ለውጦችን ማድረግ እና እንደገና መሞከር አለበት። replace. ይህ ቆጣሪውን በሁለት እንዲጨምር እና "የተሻሻለው" ማስታወሻ "AB" መጨረሻ ላይ እንዲጨምር ያደርገዋል።

ከላይ ያለው ምሳሌ ሲተገበር ያሳያል replace ጠቅላላው ሀብት ሙሉ በሙሉ ተተክቷል። ጥቅም ላይ የዋለው ዝርዝር መግለጫ replace፣ ከፊል መሆን የለበትም ፣ ወይም በክፍሎች ውስጥ እንደ ውስጥ apply, ነገር ግን የተሟላ, መጨመርን ጨምሮ resourceVersion ወደ ዝርዝር ዲበ ውሂብ። ካላነቃህ resourceVersion ወይም ያቀረቡት እትም የአሁኑ አይደለም፣ መተካቱ ውድቅ ይሆናል። ስለዚህ ለመጠቀም በጣም ጥሩው አቀራረብ ነው። replace - ሀብቱን ያንብቡ, ያዘምኑት እና ወዲያውኑ ይተኩ. በመጠቀም kubectlይህን ሊመስል ይችላል፡-

$ kubectl get deployment my-deployment -o json 
    | jq '.spec.template.spec.containers[0].env[1].value = "new value"' 
    | kubectl replace -f -

በተከታታይ የሚከናወኑት የሚከተሉት ሁለት ትዕዛዞች በተሳካ ሁኔታ እንደሚከናወኑ ልብ ሊባል ይገባል deployment.yaml ንብረት አልያዘም። .metadata.resourceVersion

$ kubectl create -f deployment.yaml
$ kubectl replace -f deployment.yaml

ይህ ከላይ ከተገለጸው ጋር የሚቃረን ይመስላል፣ ማለትም " በማከል resourceVersion ወደ ስፔሲፊኬሽን ሜታዳታ።" ይህን ማለት ስህተት ነው? አይደለም፣ አይደለም፣ ምክንያቱም ከሆነ kubectl እርስዎ ያልገለጹትን ያስተውላል resourceVersion፣ ከመረጃው ላይ ያነብበዋል እና በገለጽከው ዝርዝር ውስጥ ያክላል እና ከዚያ በኋላ ብቻ ያስፈጽመዋል replace. በአቶሚክ ላይ ከተመኩ ይህ አደገኛ ሊሆን ስለሚችል, አስማቱ ሙሉ በሙሉ በጎን በኩል ይሰራል kubectlከኤፒአይ ጋር የሚሰሩ የደንበኛ ቤተ-ፍርግሞችን ሲጠቀሙ በእሱ ላይ መተማመን የለብዎትም። በዚህ አጋጣሚ የአሁኑን የንብረት ዝርዝር መግለጫ ማንበብ፣ ማዘመን እና ከዚያ ማስፈጸም ይኖርብዎታል PUT ጥያቄ

ፕላስተር ማድረግ አይችሉም - ምትክ እንሰራለን

አንዳንድ ጊዜ በኤፒአይ ሊያዙ የማይችሉ አንዳንድ ለውጦችን ማድረግ ያስፈልግዎታል። በእነዚህ አጋጣሚዎች ንብረቱን በመሰረዝ እና እንደገና በመፍጠር እንዲተካ ማስገደድ ይችላሉ. ይህ የሚከናወነው በመጠቀም ነው። kubectl replace --force. ትዕዛዙን ማስኬድ ወዲያውኑ ሀብቶቹን ያስወግዳል እና ከዚያ ከቀረበው ዝርዝር ውስጥ እንደገና ይፈጥራል። በኤፒአይ ውስጥ "የኃይል ምትክ" ተቆጣጣሪ የለም, እና በኤፒአይ በኩል ይህንን ለማድረግ, ሁለት ስራዎችን ማከናወን ያስፈልግዎታል. በመጀመሪያ ለእሱ በማቀናበር ሀብቱን መሰረዝ ያስፈልግዎታል gracePeriodSeconds ወደ ዜሮ (0) እና propagationPolicy በ "ዳራ" ውስጥ እና ከዚያ በሚፈለገው መስፈርት ይህንን መገልገያ እንደገና ይፍጠሩ.

ማስጠንቀቂያ፡ ይህ አካሄድ አደገኛ ሊሆን ስለሚችል ወደ ያልተገለጸ ሁኔታ ሊያመራ ይችላል።

በአገልጋዩ በኩል ያመልክቱ

ከላይ እንደተጠቀሰው የኩበርኔትስ ገንቢዎች አመክንዮውን በመተግበር ላይ ናቸው apply ከ kubectl በ Kubernetes API. አመክንዮዎች apply Kubernetes ውስጥ ይገኛል 1.18 በኩል kubectl apply --server-side ወይም ዘዴውን በመጠቀም በኤፒአይ በኩል PATCH с content-type application/apply-patch+YAML.

ማስታወሻ፡ JSON እንዲሁ YAML የሚሰራ ነው፣ ስለዚህ መግለጫውን እንደ JSON መላክ ይችላሉ ምንም እንኳን content-type ይሆናል application/apply-patch+yaml.

ከዚያ ሎጂክ በተጨማሪ kubectl በኤፒአይ በኩል ለሁሉም ሰው ይገኛል ፣ apply በአገልጋዩ በኩል በስፔስፊኬሽኑ ውስጥ ላሉት መስኮች ተጠያቂው ማን እንደሆነ ይከታተላል ፣ ስለሆነም ከግጭት ነፃ የሆነ አርትዖት ደህንነቱ የተጠበቀ በርካታ መዳረሻዎችን ይፈቅዳል። በሌላ አነጋገር, ከሆነ apply በአገልጋዩ በኩል የበለጠ የተስፋፋ ይሆናል ፣ ሁለንተናዊ ደህንነቱ የተጠበቀ የመረጃ አያያዝ በይነገጽ ለተለያዩ ደንበኞች ይታያል ፣ ለምሳሌ ፣ kubectl ፣ Pulumi ወይም Terraform ፣ GitOps ፣ እንዲሁም የደንበኛ ቤተ-መጽሐፍትን በመጠቀም በራስ የተፃፉ ስክሪፕቶች።

ውጤቶች

በክላስተር ውስጥ ያሉ ሀብቶችን የማዘመን የተለያዩ መንገዶች አጭር መግለጫ ለእርስዎ ጠቃሚ እንደነበረ ተስፋ አደርጋለሁ። በመተካት ብቻ የሚተገበር እንዳልሆነ ማወቅ ጥሩ ነው፣ አፕሊኬሽን፣ አርትዕ፣ ጠጋኝ፣ ወይም ምትክን በመጠቀም ሪሶርስ ማዘመን ይቻላል። ከሁሉም በላይ, በመርህ ደረጃ, እያንዳንዱ አቀራረብ የራሱ የሆነ የማመልከቻ ቦታ አለው. ለአቶሚክ ለውጦች፣ መተካት ተመራጭ ነው፣ ያለበለዚያ፣ በማመልከት ስትራቴጅካዊ-መዋሃድ ፕላስተር መጠቀም አለቦት። ቢያንስ “kubernetes apply vs replace”ን ሲፈልጉ ጎግልን ወይም StackOerflowን ማመን እንደማትችሉ እንድትረዱ እጠብቃለሁ። ቢያንስ ይህ ጽሑፍ የአሁኑን መልስ እስኪተካ ድረስ።

የኩበርኔትስ ትክክለኛ ንፅፅር ይተግብሩ ፣ ይተኩ እና ይለጥፉ

ምንጭ: hab.com

አስተያየት ያክሉ