በ Helm ውስጥ ሚስጥሮችን በራስ-ሰር ማመንጨት

በ Helm ውስጥ ሚስጥሮችን በራስ-ሰር ማመንጨት

ቡድን Kubernetes aaS ከ Mail.ru አጭር ማስታወሻ ተተርጉሟል በማዘመን ጊዜ የሄልም ሚስጥሮችን እንዴት በራስ ሰር ማመንጨት እንደሚቻል። የሚከተለው የጽሁፉ ደራሲ ጽሑፍ ነው - የ Intoware ቴክኒካል ዳይሬክተር, የ SaaS መፍትሄዎችን የሚያዘጋጅ ኩባንያ.

ኮንቴይነሮች አሪፍ ናቸው. መጀመሪያ ላይ ፀረ-ኮንቴይነር ነበርኩ (ለመቀበሉ አፍሬአለሁ) አሁን ግን የዚህን ቴክኖሎጂ አጠቃቀም ሙሉ በሙሉ እደግፋለሁ። ይህን እያነበብክ ከሆነ፣ የዶከርን ባህር በተሳካ ሁኔታ ሄድክ፣ የኩበርኔትስ ጥቅሞችን ተገንዝበሃል፣ እና ከሄልም ጋር ህይወትህን ቀላል አድርገሃል።

ይሁን እንጂ አንዳንድ ነገሮች ከሚያስፈልጋቸው በላይ በጣም አስቸጋሪ እንደሆኑ ግልጽ ነው.

በማዘመን ጊዜ እንዴት ሚስጥሮችን በራስ ሰር ማመንጨት ይቻላል?

የኩበርኔትስ ሚስጥር በኮድዎ ውስጥ ሊጠቀሙባቸው የሚፈልጓቸውን የቁልፍ/ዋጋ ጥንዶችን የያዘ ሃብት ነው። እነዚህ የውሂብ ጎታ ግንኙነት ሕብረቁምፊዎች፣ የኢሜይል የይለፍ ቃሎች እና የመሳሰሉት ሊሆኑ ይችላሉ። ሚስጥሮችን በመጠቀም በኮድ እና በቅንብሮች መካከል ግልጽ የሆነ መለያየት ይፈጥራሉ፣ ይህም የኮድ ቤዝ ሳይቀይሩ የተለያዩ ማሰማራቶችን በቀላሉ እንዲያበጁ ያስችልዎታል።

አንድ የተለመደ ሁኔታ ሁለት ሞጁሎች የጋራ ቁልፍን በመጠቀም መገናኘት ሲኖርባቸው ነው. ይህ ቁልፍ በክላስተር ውስጥ ለአንድ ለአንድ ግንኙነት የታሰበ ስለሆነ ማንም ከጥቅሉ ውጭ ማንም ሊያውቀው አይገባም።

ሚስጥሮችን መስራት

በተለምዶ በሄልም ውስጥ ምስጢር ለመፍጠር የሚከተሉትን ማድረግ አለብዎት:

  • በእሴቶች ፋይል ውስጥ ያለውን ምስጢር ይግለጹ;
  • በማሰማራት ጊዜ እንደገና ይግለጹ;
  • በማሰማራት / ፖድ ውስጥ ያመልክቱ;
  • ... ትርፍ!

ብዙውን ጊዜ እንደዚህ ያለ ነገር ይመስላል።

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ .Values.MyApiKeySecret | quote }}

ከ values.yml እሴቶችን በመጠቀም ቀላል የኩበርኔትስ ምስጢር

ነገር ግን ሚስጥርህን በእሴት ፋይሉ ውስጥ መግለጽ አትፈልግም እንበል።

ማሰማራት የጋራ ቁልፍ ሲፈልግ ብዙ አማራጮች አሉ፣ ይህም በሚጫንበት ጊዜ መፈጠር አለበት።

ከላይ ባለው ሞጁል-ወደ-ሞዱል የግንኙነት ምሳሌ ውስጥ ምስጢሩን ከማሰማራቱ ውጭ ማካፈል የማይፈለግ ነው። ስለዚህ, Helm በቀጥታ መግለጽ ሳያስፈልግ ሚስጥራዊነትን በራስ-ሰር የማመንጨት ዘዴዎች መኖራቸው በጣም የሚፈለግ ነው.

መንጠቆዎች

መንጠቆዎች በመጫን ሂደት ውስጥ በተወሰኑ ቦታዎች ላይ ኮድ እንዲያሄዱ ያስችሉዎታል። ከመጀመሪያው ጭነት በኋላ መከናወን ያለበት የማዋቀሪያ ሥራ ሊኖር ይችላል, ወይም ማንኛውንም ማሻሻያ ከማካሄድዎ በፊት ማጽዳት ያስፈልጋል.

በመጫን ጊዜ የተፈጠረ ቁልፍ የመጨመር ችግራችንን ለመፍታት ቅድመ-መጫኛ መንጠቆዎች ተስማሚ ናቸው። ነገር ግን አንድ መያዝ አለ: አንድ ጊዜ ማሻሻያ ላይ ምስጢሩን በራስ-ሰር ማመንጨት አይችሉም. መንጠቆዎች በእያንዳንዱ ዝመና ላይ ይሰራሉ።

ሚስጥርህን ከፈጠርክ እና የመጀመሪያ ጭነትህ ገና ካልተከሰተ ማንበብ አቁም ቅድመ-መጫኛ መንጠቆው ለእርስዎ ጥሩ ይሰራል።

ነገር ግን ሚስጥሩ የማሻሻያ አካል ከሆነ (ምናልባትም በመጫን ጊዜ ያልነበረ አዲስ ባህሪ) አንድ ጊዜ ብቻ የሚሰራ የቅድመ-መጫኛ መንጠቆ መፍጠር አለመቻልዎ አሳፋሪ ነው።

ተግባሮች

የሄልም ተግባራት የተለያዩ የስክሪፕት ክፍሎችን ወደ ማሰማሪያ ስክሪፕቶችዎ እንዲያክሉ ያስችሉዎታል።

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ uuidv4 | quote }} #Generate a new UUID and quote it

ይህ ምሳሌ የሚያሳየው የ apiKey ሚስጥር ዋጋ በሚጫንበት ጊዜ የሚፈጠረው አዲሱ UUID ይሆናል።

ሄልም ብጁ ማሰማራቶችን ለመፍጠር አስደናቂውን የGO አብነት ባህሪያትን እና የSprig ባህሪ ቤተ-መጽሐፍትን የሚጠቀም በእውነት ሰፊ የባህሪ ቤተ-መጽሐፍትን ያካትታል።

የፍለጋ ተግባር

በ Helm 3.1 ውስጥ ተጨምሯል የፍለጋ ተግባርነባር ማሰማራትን እንዲጠይቁ የሚያስችልዎ እና፡-

  • የንብረቶች መኖር መኖሩን ያረጋግጡ;
  • ለበኋላ ጥቅም ላይ የዋለውን የንብረቱን እሴት ይመልሱ።

እነዚህን ሁለቱንም ችሎታዎች በመጠቀም፣ የአንድ ጊዜ፣ በተለዋዋጭ የመነጨ ምስጢር መፍጠር እንችላለን!

# 1. Запросить существование секрета и вернуть в переменной $secret
{{- $secret := (lookup "v1" "Secret" .Release.Namespace "some-awesome-secret" -}}
apiVersion: v1
kind: Secret
metadata:
  name: some-awesome-secret
type: Opaque

# 2. Если секрет существует, взять его значение как apiKey (секрет использует кодирование Base64, так что используйте ключ "data")
{{ if $secret -}}
data:
  apiKey: {{ $secret.data.apiKey }}

# 3. Если секрет не существует — создать его (в этот раз используйте "stringData", так как будет обычное значение)!
{{ else -}}
stringData:
  apiKey: {{ uuidv4 | quote }}
{{ end }}

አዲስ ዝመና በአገልጋዩ ላይ በተተገበረ ቁጥር ሄልም አዲስ ሚስጥራዊ እሴት ያመነጫል (እስካሁን ምንም ምስጢር ከሌለ) ወይም ያለውን እሴት እንደገና ይጠቀማል።

መልካም ዕድል!

በርዕሱ ላይ ሌላ ምን ማንበብ:

  1. በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ እና እንዴት እነሱን በብቃት እንደሚጠቀሙባቸው.
  2. ኩበርኔትስ በስርቆት መንፈስ ለትግበራ አብነት.
  3. በቴሌግራም ኩበርኔትስ ዙሪያ የኛ ቻናል.

ምንጭ: hab.com

አስተያየት ያክሉ