እንኳን ወደ Kubernetes Quick Start Series እንኳን በደህና መጡ። ይህ በመስመር ላይ እና በስልጠናዎቻችን ውስጥ የምናገኛቸው በጣም አስደሳች ጥያቄዎች ያለው መደበኛ አምድ ነው። Kubernetes ባለሙያ መልሶች.
የዛሬው ባለሙያ ዳንኤል ፖልቺክ (እ.ኤ.አ.)
ዳንኤል ፖለንቺክ ). ዳንኤል ኢንስትራክተር እና ሶፍትዌር ገንቢ ሆኖ ይሰራልተማር 8 .
በሚቀጥለው ጽሁፍ ላይ ለጥያቄዎ መልስ ከፈለጉ,
ቀዳሚ ልጥፎች ጠፍተዋል?
በተለያዩ የመረጃ ቋቶች ውስጥ የኩበርኔትስ ስብስቦችን እንዴት ማገናኘት ይቻላል?
በአጭሩ:
ኩበፌድ v2 በቅርቡ ይመጣል እና እንዲያነቡ እመክራችኋለሁመርከብ иባለብዙ ክላስተር-መርሃግብር አዘጋጅ ፕሮጀክት .
ብዙ ጊዜ የመሠረተ ልማት አውታሮች ይባዛሉ እና በተለያዩ ክልሎች በተለይም በቁጥጥር ስር ባሉ አካባቢዎች ይሰራጫሉ።
አንድ ክልል ከሌለ መቆራረጥን ለማስወገድ ትራፊክ ወደ ሌላ አቅጣጫ ይዛወራል።
በ Kubernetes, ተመሳሳይ ስልት መጠቀም እና የስራ ጫናዎችን በተለያዩ ክልሎች ማሰራጨት ይችላሉ.
በአንድ ቡድን፣ ክልል፣ አካባቢ ወይም የእነዚህ ጥምረት አንድ ወይም ከዚያ በላይ ዘለላዎች ሊኖሩዎት ይችላሉ።
የእርስዎ ዘለላዎች በበርካታ ደመናዎች እና በግቢው ላይ ሊስተናገዱ ይችላሉ።
ግን ለእንደዚህ ዓይነቱ ጂኦግራፊያዊ ስርጭት መሠረተ ልማት እንዴት ማቀድ እንደሚቻል?
በአንድ አውታረ መረብ ላይ ለብዙ የደመና አካባቢዎች አንድ ትልቅ ዘለላ መፍጠር አለቦት?
ወይም ብዙ ትናንሽ ዘለላዎች አሉዎት እና እነሱን ለመቆጣጠር እና ለማመሳሰል መንገድ ይፈልጉ?
አንድ የአመራር ስብስብ
በአንድ አውታረ መረብ ላይ አንድ ዘለላ መፍጠር በጣም ቀላል አይደለም።
አደጋ አጋጥሞህ አስብ፣ በክላስተር ክፍሎች መካከል ያለው ግንኙነት ጠፍቷል።
አንድ ዋና አገልጋይ ካለህ፣ ከሀብቱ ውስጥ ግማሹ አዲስ ትዕዛዞችን መቀበል አይችሉም ምክንያቱም ጌታውን ማግኘት አይችሉም።
እና በተመሳሳይ ጊዜ የድሮ ማዞሪያ ጠረጴዛዎች አሉዎት (kube-proxy
አዳዲሶችን ማውረድ አይችልም) እና ምንም ተጨማሪ ፖድ (kubelet ለዝማኔዎች መጠይቅ አይችልም)።
ይባስ ብሎ ኩበርኔትስ መስቀለኛ መንገድን ማየት ካልቻለ ወላጅ አልባ መሆኑን ይጠቁማል እና የጎደሉትን እንክብሎችን አሁን ባሉት አንጓዎች ያከፋፍላል።
በውጤቱም, ሁለት እጥፍ ፖድሎች አሉዎት.
በየክልሉ አንድ ዋና አገልጋይ ከሰሩ፣ በ etcd ዳታቤዝ ውስጥ ባለው የጋራ ስምምነት ስልተ ቀመር ላይ ችግሮች ይኖራሉ። (በግምት እትም። - እንደ እውነቱ ከሆነ የ etcd ዳታቤዝ በዋና አገልጋዮች ላይ መቀመጥ የለበትም. በተመሳሳይ ክልል ውስጥ በተለየ የአገልጋዮች ቡድን ላይ ሊሰራ ይችላል. ሆኖም፣ በተመሳሳይ ጊዜ የክላስተር ውድቀት ነጥብ ተቀብሏል። ግን በፍጥነት።)
ወዘተ ይጠቀማል
ማለትም፣ ግዛቱ ወደ ወዘተ ከመጻፉ በፊት አብዛኞቹ ጉዳዮች ስምምነት ላይ መድረስ አለባቸው።
በ etcd አጋጣሚዎች መካከል ያለው መዘግየት ከሰማይ ከሰማይ ፣በተለያዩ ክልሎች ውስጥ በሶስት etcd አጋጣሚዎች እንደሚታየው ፣ በአንድ እሴት ላይ ለመስማማት እና ወደ ዲስክ ለመፃፍ ረጅም ጊዜ ይወስዳል።
ይህ በኩበርኔትስ መቆጣጠሪያዎች ውስጥም ይንጸባረቃል.
የመቆጣጠሪያው አስተዳዳሪ ስለ ለውጡ ለማወቅ እና ምላሹን ወደ ዳታቤዝ ለመጻፍ ተጨማሪ ጊዜ ይፈልጋል።
እና ተቆጣጣሪው አንድ ስላልሆነ ፣ ግን ብዙ ፣ የሰንሰለት ምላሽ ተገኝቷል፣ እና አጠቃላይ ክላስተር በጣም በዝግታ መስራት ይጀምራል.
etcd በጣም የመዘግየት ስሜት አለው
በአሁኑ ጊዜ ለአንድ ዘለላ የአንድ ትልቅ አውታረ መረብ ጥሩ ምሳሌዎች የሉም።
በመሠረቱ፣ የገንቢው ማህበረሰብ እና የ SIG-cluster ቡድን ኩበርኔትስ ኮንቴይነሮችን በሚያቀናጅበት መንገድ ክላስተርን እንዴት ማቀናጀት እንደሚቻል ለማወቅ እየሞከሩ ነው።
አማራጭ 1፡ የፌዴሬሽን ዘለላዎች በኩቤፌድ
ይፋዊ መልስ ከ SIG-cluster -
ለመጀመሪያ ጊዜ የኩቤ ፌደሬሽን መሳሪያ በመጠቀም የክላስተር ስብስቦችን እንደ አንድ ነገር ለማስተዳደር ሞክረናል።
አጀማመሩ ጥሩ ነበር በስተመጨረሻ ግን የቁቤ ፌደሬሽን ተወዳጅነት አላገኘም ምክንያቱም ሁሉንም ሀብት አልደገፈም።
የፌዴራል አቅርቦቶችን እና አገልግሎቶችን ይደግፋል፣ ግን ለምሳሌ StatefulSetsን አይደግፍም።
እንዲሁም የፌዴሬሽኑ ውቅር በማብራሪያ መልክ ተላልፏል እና ተለዋዋጭ አልነበረም.
በፌዴሬሽኑ ውስጥ ለእያንዳንዱ ክላስተር የተባዛ ክፍፍልን አንድ ማብራሪያ በመጠቀም እንዴት እንደሚገልጹ አስቡት።
ሙሉ ለሙሉ የተመሰቃቀለ ሆነ።
SIG-cluster ከ kubefed v1 በኋላ ጥሩ ስራ ሰርቶ ችግሩን ከተለየ አቅጣጫ ለመቅረብ ወሰነ።
ከማብራሪያዎች ይልቅ, በክላስተር ላይ የተጫነ መቆጣጠሪያ ለመልቀቅ ወሰኑ. ብጁ የመረጃ ፍቺዎችን (ብጁ የመረጃ ፍቺ፣ ሲአርዲ) በመጠቀም ሊዋቀር ይችላል።
ለእያንዳንዱ ለሚደረገው ሃብት፣ ብጁ የሲአርዲ ፍቺ በሦስት ክፍሎች አለዎት፡
- እንደ ማሰማራት የመሰለ የንብረት መደበኛ ትርጉም;
- ክፍል
placement
, ሀብቱ በፌዴሬሽኑ ውስጥ እንዴት እንደሚከፋፈል በሚገልጹበት; - ክፍል
override
, ለአንድ የተወሰነ ምንጭ ክብደትን እና መለኪያዎችን ከምደባ መሻር ይችላሉ.
ከአቀማመጥ እና ከመሻር ክፍሎች ጋር የተጠቃለለ ማድረስ ምሳሌ እዚህ አለ።
apiVersion: types.federation.k8s.io/v1alpha1
kind: FederatedDeployment
metadata:
name: test-deployment
namespace: test-namespace
spec:
template:
metadata:
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
placement:
clusterNames:
- cluster2
- cluster1
overrides:
- clusterName: cluster2
clusterOverrides:
- path: spec.replicas
value: 5
እንደምታየው አቅርቦቱ በሁለት ስብስቦች የተከፈለ ነው። cluster1
и cluster2
.
የመጀመሪያው ክላስተር ሶስት ቅጂዎችን ያቀርባል, ሁለተኛው ደግሞ 5 ዋጋ አለው.
በቅጂዎች ብዛት ላይ ተጨማሪ ቁጥጥር ከፈለጉ፣ kubefed2 ቅጂዎች የሚመዘኑበት አዲስ ReplicaSchedulingPreference ነገር ያቀርባል፡-
apiVersion: scheduling.federation.k8s.io/v1alpha1
kind: ReplicaSchedulingPreference
metadata:
name: test-deployment
namespace: test-ns
spec:
targetKind: FederatedDeployment
totalReplicas: 9
clusters:
A:
weight: 1
B:
weight: 2
የሲአርዲ መዋቅር እና ኤፒአይ ገና ዝግጁ አይደሉም፣ እና በይፋዊው የፕሮጀክት ማከማቻ ውስጥ ንቁ ስራ በመካሄድ ላይ ነው።
ለ kubefed2 ይከታተሉ፣ ግን ለምርት አካባቢ ገና በቂ እንዳልሆነ ያስታውሱ።
ስለ kubefed2 ከ የበለጠ ይወቁ
አማራጭ 2፡ ክላስተር ቡኪንግ.ኮም ዘይቤ
የBooking.com ገንቢዎች ከ kubefed v2 ጋር አልተገናኙም፣ ነገር ግን በብዙ ዘለላዎች፣ በርካታ ክልሎች እና በርካታ ደመናዎች ላይ ለማድረስ ኦፕሬተር የሆነውን Shipperን ይዘው መጡ።
ሁለቱም መሳሪያዎች የብዝሃ-ክላስተር ማሰማራት ስልትዎን (የትኞቹ ስብስቦች ጥቅም ላይ እንደሚውሉ እና ምን ያህል ቅጂዎች እንዳሏቸው) እንዲያበጁ ያስችሉዎታል።
ግን የላኪው ተግባር የመላኪያ ስህተቶችን አደጋ መቀነስ ነው።
በ Shipper ውስጥ በቀድሞው እና በአሁን ጊዜ ማሰማራቶች እና በመጪው ትራፊክ መጠን መካከል የተባዛዎችን ክፍፍል የሚገልጹ ተከታታይ እርምጃዎችን መግለፅ ይችላሉ።
ሀብትን ወደ ክላስተር ሲገፉ፣ የላኪው ተቆጣጣሪው ለውጡን ወደ ሁሉም የፌዴራል ዘለላዎች እየጨመረ ያሰፋል።
እንዲሁም ላኪ በጣም ውስን ነው።
ለምሳሌ ያህል, የ Helm ገበታዎችን እንደ ግብአት ይወስዳል እና የቫኒላ ሀብቶችን አይደግፍም.
በአጠቃላይ ቃላቶች, Shipper እንደሚከተለው ይሰራል.
ከመደበኛ ስርጭት ይልቅ የ Helm ቻርትን የሚያካትት የመተግበሪያ ግብዓት መፍጠር ያስፈልግዎታል፡-
apiVersion: shipper.booking.com/v1alpha1
kind: Application
metadata:
name: super-server
spec:
revisionHistoryLimit: 3
template:
chart:
name: nginx
repoUrl: https://storage.googleapis.com/shipper-demo
version: 0.0.1
clusterRequirements:
regions:
- name: local
strategy:
steps:
- capacity:
contender: 1
incumbent: 100
name: staging
traffic:
contender: 0
incumbent: 100
- capacity:
contender: 100
incumbent: 0
name: full on
traffic:
contender: 100
incumbent: 0
values:
replicaCount: 3
ላኪ ብዙ ዘለላዎችን ለማስተዳደር ጥሩ አማራጭ ነው፣ ነገር ግን ከሄልም ጋር ያለው የቅርብ ግኑኝነት መንገዱን ብቻ ያመጣል።
ሁላችንም ከሄልም ወደ ብንቀየርስ?
ስለ Shipper እና ስለ ፍልስፍናው በ ላይ የበለጠ ይረዱ
ኮዱን ለመቆፈር ከፈለጉ ፣
አማራጭ 3፡ "አስማት" የክላስተር ውህደት
ኩቤፌድ v2 እና ላኪ ከክላስተር ፌደሬሽን ጋር በብጁ የመርጃ ፍቺ አማካኝነት አዳዲስ ግብአቶችን ለክላስተሮች በማቅረብ ይሰራሉ።
ግን ሁሉንም አቅርቦቶች ፣ StatefulSets ፣ DaemonSets ፣ ወዘተ ለመዋሃድ እንደገና መጻፍ ካልፈለጉስ?
YAML ን ሳይቀይሩ በፌዴሬሽኑ ውስጥ ያለውን ክላስተር እንዴት ማካተት ይቻላል?
ነገር ግን በብጁ ፍቺዎች ውስጥ ከክላስተር እና የመጠቅለያ ሀብቶች ጋር ለመገናኘት አዲስ መንገድ ከመፍጠር ይልቅ መልቲ-ክላስተር-መርሐግብር አውጪ ወደ መደበኛው የኩበርኔትስ የሕይወት ዑደት ውስጥ ገብቷል እና ፖድ የሚፈጥሩ ሁሉንም ጥሪዎች ይቋረጣል።
እያንዳንዱ የተፈጠረ ፖድ ወዲያውኑ በዱሚ ይተካል.
ባለብዙ ክላስተር-መርሐግብር አጠቃቀሞች
መዳረሻን ለመቀየር የድር መንጠቆዎች ጥሪውን ለመጥለፍ እና ስራ ፈት የዱሚ ፖድ ለመፍጠር።
ዋናው ፖድ በሌላ የመርሐግብር ዑደት ውስጥ ያልፋል፣ ጠቅላላ ፌዴሬሽኑን ከምርጫ በኋላ የማስተናገጃ ውሳኔ ይሰጣል።
በመጨረሻም, ፖድ ወደ ዒላማው ስብስብ ይደርሳል.
በውጤቱም, ምንም የማይሰራ, ቦታ የሚይዝ ተጨማሪ ፖድ አለዎት.
ጥቅሙ አቅርቦቶችን ለማጣመር አዲስ ሀብቶችን መጻፍ አያስፈልግዎትም።
ፖድ የሚፈጥር እያንዳንዱ ምንጭ በቀጥታ ለመቀላቀል ዝግጁ ነው።
ይህ አስደሳች ነው፣ ምክንያቱም በድንገት በተለያዩ ክልሎች የተከፋፈሉ አቅርቦቶች ስላሎት እና እርስዎ አላስተዋሉም። ሆኖም ፣ ይህ በጣም አደገኛ ነው ፣ ምክንያቱም እዚህ ሁሉም ነገር በአስማት ላይ ነው።
ነገር ግን Shipper በዋናነት የማጓጓዣ ውጤቶችን ለመቀነስ እየሞከረ ሳለ፣ ባለብዙ ክላስተር-መርሐግብር ተቆጣጣሪ የበለጠ አጠቃላይ እና ምናልባትም ለቡድን ስራዎች የበለጠ ተስማሚ ነው።
የላቀ ቀስ በቀስ የማድረስ ዘዴ የለውም።
ስለ መልቲ-ክላስተር-መርሐግብር አዘጋጅ የበለጠ በ ላይ ይገኛል።
ስለ መልቲ-ክላስተር-መርሃግብር በድርጊት ማንበብ ከፈለጉ አድሚራልቲ አለው።
ሌሎች መሳሪያዎች እና መፍትሄዎች
ብዙ ዘለላዎችን ማገናኘት እና ማስተዳደር ውስብስብ ስራ ነው፣ እና ለሁሉም የሚስማማ መፍትሄ የለም።
ስለዚህ ርዕስ የበለጠ ለማወቅ ከፈለጉ አንዳንድ ምንጮች እነኚሁና፡-
ሰርጓጅ በራንቸር የተለያዩ የኩበርኔትስ ክላስተር ተደራቢ አውታረ መረቦችን የሚያገናኝ መሳሪያ ነው።- የዒላማው የችርቻሮ ሰንሰለት ይጠቀማል
ዩኒማትሪክስ ከSpinnaker ጋር ተደምሮ በበርካታ ዘለላስተር ላይ ማሰማራትን ለማቀናበር . - IPV6 ለመጠቀም ይሞክሩ እና
ነጠላ አውታረ መረብ በበርካታ ክልሎች . - ለምሳሌ የአገልግሎት መረብን መጠቀም ትችላለህ
ብዙ ዘለላዎችን ለማገናኘት ኢስቲዮ . - ሲሊየም፣ የመያዣ አውታረ መረብ በይነገጽ ተሰኪ፣ ያቀርባል
ክላስተር ሜሽ ተግባር , ይህም ብዙ ዘለላዎችን እንዲያዋህዱ ያስችልዎታል
ለዛሬ ያ ብቻ ነው።
እስከ መጨረሻው ስላነበቡ እናመሰግናለን!
ብዙ ዘለላዎችን እንዴት በብቃት ማገናኘት እንደሚችሉ ካወቁ፣
የእርስዎን ዘዴ ወደ ማገናኛዎች እንጨምራለን.
ልዩ ምስጋና ለ Chris Nesbitt-Smith (
ምንጭ: hab.com