ஹெல்மில் ரகசியங்களை தானாக உருவாக்குதல்

ஹெல்மில் ரகசியங்களை தானாக உருவாக்குதல்

அணி Mail.ru இலிருந்து Kubernetes aaS ஒரு சிறு குறிப்பை மொழிபெயர்த்தார் புதுப்பிக்கும் போது ஹெல்ம் ரகசியங்களை எவ்வாறு தானாக உருவாக்குவது என்பது பற்றி. SaaS தீர்வுகளை உருவாக்கும் நிறுவனமான Intoware இன் தொழில்நுட்ப இயக்குநர் - கட்டுரையின் ஆசிரியரின் உரை கீழே உள்ளது.

கொள்கலன்கள் குளிர்ச்சியாக இருக்கும். முதலில் நான் கண்டெய்னர் எதிர்ப்பாளராக இருந்தேன் (அதை ஒப்புக்கொள்வதற்கு நான் வெட்கப்படுகிறேன்), ஆனால் இப்போது இந்த தொழில்நுட்பத்தைப் பயன்படுத்துவதை நான் முழுமையாக ஆதரிக்கிறேன். நீங்கள் இதைப் படிக்கிறீர்கள் என்றால், நீங்கள் வெற்றிகரமாக டோக்கரின் கடல்களுக்குச் சென்று, குபெர்னெட்டஸின் நன்மைகளை உணர்ந்து, ஹெல்ம் மூலம் உங்கள் வாழ்க்கையை எளிதாக்கியுள்ளீர்கள்.

இருப்பினும், சில விஷயங்கள் தெளிவாக இருக்க வேண்டியதை விட கடினமாக உள்ளன.

புதுப்பிக்கும்போது தானாக ரகசியங்களை உருவாக்குவது எப்படி?

குபெர்னெட்ஸ் ரகசியம் என்பது உங்கள் குறியீட்டில் நீங்கள் பயன்படுத்த விரும்பும் விசை/மதிப்பு ஜோடிகளைக் கொண்ட ஒரு ஆதாரமாகும். இவை தரவுத்தள இணைப்பு சரங்கள், மின்னஞ்சல் கடவுச்சொற்கள் மற்றும் பலவாக இருக்கலாம். ரகசியங்களைப் பயன்படுத்துவதன் மூலம், குறியீடு மற்றும் அமைப்புகளுக்கு இடையே ஒரு தெளிவான பிரிவை உருவாக்குகிறீர்கள், இது குறியீட்டுத் தளத்தை மாற்றாமல் வெவ்வேறு வரிசைப்படுத்தல்களை எளிதாகத் தனிப்பயனாக்க அனுமதிக்கிறது.

ஒரு பொதுவான சூழ்நிலை என்பது இரண்டு தொகுதிகள் ஒரு பொதுவான விசையைப் பயன்படுத்தி தொடர்பு கொள்ள வேண்டும். இந்த விசையை க்ளஸ்டருக்கு வெளியே உள்ள யாருக்கும் தெரியக்கூடாது, ஏனெனில் இது கிளஸ்டருக்குள் ஒருவருக்கு ஒருவர் தொடர்பு கொள்ள வேண்டும்.

இரகசியங்களை உருவாக்குதல்

பொதுவாக, ஹெல்மில் ஒரு ரகசியத்தை உருவாக்க நீங்கள் செய்ய வேண்டியது:

  • மதிப்புகள் கோப்பில் உள்ள ரகசியத்தை விவரிக்கவும்;
  • வரிசைப்படுத்தலின் போது அதை மறுவரையறை;
  • வரிசைப்படுத்தல்/பாட் உள்ளே அதை பார்க்கவும்;
  • ... லாபம்!

இது பொதுவாக இது போல் தெரிகிறது:

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

values.yml இலிருந்து மதிப்புகளைப் பயன்படுத்தி ஒரு எளிய குபெர்னெட்ஸ் ரகசியம்

ஆனால் மதிப்புகள் கோப்பில் உங்கள் ரகசியத்தைக் குறிப்பிட விரும்பவில்லை என்று வைத்துக்கொள்வோம்.

வரிசைப்படுத்தலுக்கு பகிரப்பட்ட விசை தேவைப்படும்போது பல விருப்பங்கள் உள்ளன, அவை நிறுவலின் போது உருவாக்கப்பட வேண்டும்.

மேலே உள்ள மாட்யூல்-டு-மாட்யூல் கம்யூனிகேஷன் உதாரணத்தில், வரிசைப்படுத்தலுக்கு வெளியே உள்ள ரகசியத்தைப் பகிர்வது விரும்பத்தக்கது அல்ல. எனவே, ஹெல்ம் ஒரு ரகசியத்தை நேரடியாகக் குறிப்பிடாமல் தானாகவே உருவாக்கும் வழிமுறைகளைக் கொண்டிருப்பது மிகவும் விரும்பத்தக்கது.

கொக்கிகள்

நிறுவலின் போது குறிப்பிட்ட இடங்களில் குறியீட்டை இயக்க ஹூக்ஸ் உங்களை அனுமதிக்கிறது. முதல் நிறுவலுக்குப் பிறகு இயக்க வேண்டிய ஒரு உள்ளமைவு வேலை இருக்கலாம் அல்லது ஏதேனும் புதுப்பிப்பைச் செய்வதற்கு முன் சுத்தம் செய்யப்பட வேண்டும்.

நிறுவலின் போது உருவாக்கப்பட்ட விசையைச் சேர்ப்பதில் உள்ள சிக்கலைத் தீர்க்க, முன் நிறுவல் கொக்கிகள் சிறந்தவை. ஆனால் ஒரு கேட்ச் உள்ளது: புதுப்பித்தலின் போது நீங்கள் தானாகவே ரகசியத்தை உருவாக்க முடியாது. ஒவ்வொரு புதுப்பித்தலிலும் ஹூக்ஸ் வேலை செய்யும்.

உங்கள் ரகசியத்தை நீங்கள் உருவாக்கி, உங்கள் முதல் நிறுவல் இன்னும் நடக்கவில்லை என்றால், படிப்பதை நிறுத்துங்கள், முன் நிறுவல் ஹூக் உங்களுக்கு நன்றாக வேலை செய்யும்.

ஆனால் ரகசியம் புதுப்பிப்பின் ஒரு பகுதியாக இருந்தால் (நிறுவலின் போது இல்லாத புதிய அம்சம்), ஒரு முறை மட்டுமே செயல்படும் முன் நிறுவல் கொக்கியை உங்களால் உருவாக்க முடியாது என்பது அவமானம்.

செயல்பாடுகளை

ஹெல்ம் செயல்பாடுகள் உங்கள் வரிசைப்படுத்தல் ஸ்கிரிப்ட்களில் பல்வேறு ஸ்கிரிப்டிங் கூறுகளைச் சேர்க்க உங்களை அனுமதிக்கின்றன.

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

நிறுவலின் போது உருவாக்கப்பட்ட புதிய UUID ஆனது apiKey ரகசியத்தின் மதிப்பு என்பதை இந்த எடுத்துக்காட்டு காட்டுகிறது.

தனிப்பயன் வரிசைப்படுத்தல்களை உருவாக்க அற்புதமான GO டெம்ப்ளேட் அம்சங்கள் மற்றும் Sprig இன் அம்ச நூலகத்தை மேம்படுத்தும் உண்மையான விரிவான அம்ச நூலகத்தை ஹெல்ம் கொண்டுள்ளது.

தேடல் செயல்பாடு

ஹெல்ம் 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. குபெர்னெட்ஸில் ஆட்டோஸ்கேலிங் மூன்று நிலைகள் மற்றும் அவற்றை எவ்வாறு திறம்பட பயன்படுத்துவது.
  2. செயல்படுத்துவதற்கான டெம்ப்ளேட்டுடன் திருட்டு உணர்வில் குபெர்னெட்ஸ்.
  3. Telegram இல் Kubernetes சுற்றி எங்கள் சேனல்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்