Kustomize සඳහා කෙටි හැඳින්වීමක්

සටහන. පරිවර්තනය.: ලිපිය ලියා ඇත්තේ මුද්‍රිත පොත් හතක (ප්‍රධාන වශයෙන් VMware vSphere හි) කර්තෘ/සම කර්තෘ වන තොරතුරු තාක්ෂණ පිළිබඳ පුළුල් අත්දැකීම් ඇති ඉංජිනේරුවෙකු වන Scott Lowe විසිනි. ඔහු දැන් එහි VMware අනුබද්ධ ආයතනයක් වන Heptio (2016 දී අත්පත් කර ගන්නා ලද) සඳහා ක්ලවුඩ් කම්පියුටින් සහ Kubernetes පිළිබඳ විශේෂඥයෙකු ලෙස කටයුතු කරයි. තාක්ෂණය භාවිතා කරමින් Kubernetes සඳහා වින්‍යාස කළමනාකරණය පිළිබඳ සංක්ෂිප්ත සහ තේරුම් ගැනීමට පහසු හැඳින්වීමක් ලෙස පෙළම ක්‍රියා කරයි. අභිරුචිකරණය කරන්න, එය මෑතකදී K8 හි කොටසක් බවට පත් විය.

Kustomize සඳහා කෙටි හැඳින්වීමක්

Kustomize යනු පරිශීලකයින්ට "විවිධ අරමුණු සඳහා සරල, සැකිලි රහිත YAML ගොනු අභිරුචිකරණය කිරීමට ඉඩ සලසන මෙවලමකි, මුල් YAML නොවෙනස්ව භාවිතා කළ හැකි" (විස්තරය සෘජුවම ණයට ගෙන ඇත. GitHub මත ගබඩාව kustomize) Kustomize සෘජුවම ධාවනය කළ හැකිය, නැතහොත් Kubernetes 1.14 ලෙස භාවිතා කළ හැක kubectl -k එහි ක්‍රියාකාරීත්වයට ප්‍රවේශ වීමට (කුබර්නෙටස් 1.15 ට අනුව, වෙනම ද්විමය kubectl තුළ ගොඩනගා ඇති හැකියාවන්ට වඩා අලුත් ය). (සටහන. පරිවර්තනය.: සහ මෑත නිකුතුව සමඟ කුබර්නෙට්ස් 1.16 අභිරුචිකරණය සහාය දක්වයි kubeadm උපයෝගීතාවයේ ද ඇත.) මෙම ලිපියෙන්, මට kustomize හි මූලික කරුණු පාඨකයන්ට හඳුන්වා දීමට අවශ්‍යයි.

එහි සරලම ආකාරයෙන්/යෙදුමේදී, kustomize යනු හුදෙක් සම්පත් එකතුවකි (Kubernetes වස්තු නිර්වචනය කරන YAML ගොනු: යෙදවීම්, සේවා, ආදිය) සහ එම සම්පත් වෙත සිදු කළ යුතු වෙනස්කම් සඳහා උපදෙස් ලැයිස්තුවකි. කරන්නා සේම එහි අඩංගු උපදෙස් මාලාව භාවිතා කරයි Makefile, සහ Docker වෙතින් උපදෙස් මත පදනම්ව කන්ටේනරය ගොඩනඟයි Dockerfile, භාවිතය අභිරුචිකරණය කරන්න kustomization.yaml සම්පත් සමූහයකට පරිශීලකයාට කිරීමට අවශ්‍ය වෙනස්කම් මොනවාද යන්න පිළිබඳ උපදෙස් ගබඩා කිරීමට.

මෙන්න උදාහරණ ගොනුවක් kustomization.yaml:

resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

ගොනුවේ ඇති සියලුම ක්ෂේත්ර ගැන කතා කිරීමට මම උත්සාහ නොකරමි. kustomization.yaml (මේ ගැන හොඳින් ලියා ඇත මෙහි), නමුත් මම නිශ්චිත උදාහරණයක් පිළිබඳ කෙටි පැහැදිලි කිරීමක් දෙන්නෙමි:

  • ක්ෂේත්රයේ resources kustomize වෙනස් වන්නේ කුමක්ද යන්න (කුමන සම්පත්) දක්වයි. මෙම අවස්ථාවේදී, එය ගොනු වල සම්පත් සොයනු ඇත deployment.yaml и service.yaml ඔබගේ නාමාවලියෙහි (අවශ්‍ය නම් ඔබට සම්පූර්ණ හෝ සාපේක්ෂ මාර්ග නියම කළ හැක).
  • ක්ෂේත්රයේ namePrefix යම් උපසර්ගයක් එක් කිරීමට kustomize උපදෙස් දෙයි (මෙම අවස්ථාවේදී - dev-) ආරෝපණය කිරීමට name ක්ෂේත්රයේ අර්ථ දක්වා ඇති සියලුම සම්පත් resources. මේ අනුව, යෙදවීම තිබේ නම් name තේරුමක් ඇතුව nginx-deployment, අභිරුචිකරණය එය සාදනු ඇත dev-nginx-deployment.
  • ක්ෂේත්රයේ namespace සියලු සම්පත් වෙත ලබා දී ඇති නාම අවකාශය එක් කිරීමට kustomize උපදෙස් දෙයි. මෙම අවස්ථාවේදී, යෙදවීම සහ සේවාව නාම අවකාශයට වැටේ development.
  • අවසාන වශයෙන්, ක්ෂේත්රය commonLabels සියලු සම්පත් වලට එකතු කරන ලේබල් කට්ටලයක් අඩංගු වේ. අපගේ උදාහරණයේ, kustomize නම සහිත සම්පත් සඳහා ලේබලයක් පවරයි environment සහ අර්ථය development.

පරිශීලකයා කරන්නේ නම් kustomize build . ගොනුව සමඟ නාමාවලියෙහි kustomization.yaml සහ අවශ්ය සම්පත් (එනම් ගොනු deployment.yaml и service.yaml), එවිට ප්‍රතිදානයේදී එයට නිශ්චිතව දක්වා ඇති වෙනස්කම් සහිත පෙළක් ලැබෙනු ඇත kustomization.yaml.

Kustomize සඳහා කෙටි හැඳින්වීමක්
සටහන. පරිවර්තනය.: kustomize හි "සරල" භාවිතය පිළිබඳ ව්යාපෘති ලියකියවිලි වලින් නිදර්ශනය

වෙනස්කම් සිදු කිරීමට අවශ්‍ය නම් ප්‍රතිදානය යළි හරවා යැවිය හැක:

kustomize build . > custom-config.yaml

ප්‍රතිදාන දත්ත තීරණාත්මක වේ (එකම ආදාන දත්ත එකම ප්‍රතිදාන ප්‍රතිඵල නිපදවනු ඇත), එබැවින් ඔබට ප්‍රතිඵලය ගොනුවකට සුරැකීමට අවශ්‍ය නොවේ. ඒ වෙනුවට, එය වෙනත් විධානයකට කෙලින්ම යැවිය හැක:

kustomize build . | kubectl apply -f -

kustomize විශේෂාංග හරහා ද ප්‍රවේශ විය හැක kubectl -k (Kubernetes අනුවාදය 1.14 සිට). කෙසේ වෙතත්, ස්වාධීන kustomize පැකේජය ඒකාබද්ධ kubectl පැකේජයට වඩා වේගයෙන් යාවත්කාලීන වන බව මතක තබා ගන්න (අවම වශයෙන් මෙය Kubernetes 1.15 නිකුතුවේදී සිදු වේ).

පාඨකයන් අසනු ඇත: "ඔබට ලිපිගොනු කෙලින්ම සංස්කරණය කළ හැකි නම් මෙම සංකීර්ණත්වය ඇයි?" නියම ප්‍රශ්නය. අපගේ උදාහරණයේ, ඇත්ත වශයෙන්ම හැකි ගොනු වෙනස් කරන්න deployment.yaml и service.yaml කෙලින්ම, නමුත් ඔවුන් වෙනත් කෙනෙකුගේ ව්‍යාපෘතියක දෙබලක් නම් කුමක් කළ යුතුද? ලිපිගොනු සෘජුවම වෙනස් කිරීම මඟින් මූලාරම්භය/මූලාශ්‍රය වෙත වෙනස්කම් සිදු කරන විට දෙබලක නැවත සකස් කිරීම අපහසු වේ (නොහැකි නම්). kustomize භාවිතා කිරීමෙන් ඔබට ගොනුවක් තුළ මෙම වෙනස්කම් මධ්‍යගත කිරීමට ඉඩ සලසයි kustomization.yaml, මුල් ගොනු නොවෙනස්ව තබා අවශ්‍ය නම් මුල් ගොනු නැවත සකස් කිරීම පහසු කරයි.

kustomize හි ප්‍රතිලාභ වඩාත් සංකීර්ණ භාවිත අවස්ථා වලදී පැහැදිලි වේ. ඉහත උදාහරණයේ kustomization.yaml සහ සම්පත් එකම නාමාවලියෙහි ඇත. කෙසේ වෙතත්, kustomize ආධාරක පාදක වින්‍යාසයක් සහ එහි බොහෝ ප්‍රභේද ඇති අවස්ථා භාවිතා කරයි, ඒවා ලෙසද හැඳින්වේ. ආවරණ. උදාහරණයක් ලෙස, පරිශීලකයාට අවශ්‍ය වූයේ nginx සඳහා යෙදවීම සහ සේවාව ලබා ගැනීමයි, එය මා උදාහරණයක් ලෙස භාවිතා කර, එම ගොනු වල සංවර්ධන, වේදිකාගත සහ නිෂ්පාදන අනුවාද (හෝ ප්‍රභේද) නිර්මාණය කිරීම. මෙය සිදු කිරීම සඳහා, ඔහු ඉහත සඳහන් කරන ලද ආවරණ සහ ඇත්ත වශයෙන්ම මූලික සම්පත් අවශ්ය වනු ඇත.

ආවරණ සහ යටින් පවතින සම්පත් පිළිබඳ අදහස නිදර්ශනය කිරීමට (මූලික සම්පත්), නාමාවලි වල පහත ව්‍යුහය ඇතැයි උපකල්පනය කරමු:

- base
  - deployment.yaml
  - service.yaml
  - kustomization.yaml
- overlays
  - dev
    - kustomization.yaml
  - staging
    - kustomization.yaml
  - prod
    - kustomization.yaml

ගොනුවේ base/kustomization.yaml ක්ෂේත්‍රය භාවිතා කරන පරිශීලකයින් resources kustomize ඇතුළත් විය යුතු සම්පත් සරලව ප්‍රකාශ කරන්න.

එක් එක් ගොනු වල overlays/{dev,staging,prod}/kustomization.yaml පරිශීලකයන් ක්ෂේත්රයේ මූලික වින්යාසය වෙත යොමු කරයි resources, සහ පසුව සඳහා නිශ්චිත වෙනස්කම් දක්වන්න ලබා දී ඇති පරිසරය. උදාහරණයක් ලෙස, ගොනුව overlays/dev/kustomization.yaml කලින් දුන් උදාහරණය වගේ වෙන්න පුළුවන්:

resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

මෙම නඩුවේ ගොනුව overlays/prod/kustomization.yaml සම්පූර්ණයෙන්ම වෙනස් විය හැකිය:

resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
  environment: production
  sre-team: blue

පරිශීලකයා ක්රියාත්මක වන විට kustomize build . නාමාවලියෙහි overlays/dev, kustomize සංවර්ධන විකල්පය උත්පාදනය කරනු ඇත. දුවනවා නම් kustomize build . නාමාවලියෙහි overlays/prod - ඔබට නිෂ්පාදන විකල්පය ලැබේ. සහ මේ සියල්ල - මුල් පිටපතට කිසිදු වෙනසක් නොකර (පදනම) ලිපිගොනු, සියල්ල ප්‍රකාශන සහ නියතිවාදී ආකාරයෙන්. ඔබට මූලික වින්‍යාසය සහ බහලුම් සෘජුවම අනුවාද පාලනයට යොමු කළ හැකිය, මෙම ගොනු මත පදනම්ව ඔබට ඕනෑම වේලාවක අවශ්‍ය වින්‍යාසය ප්‍රතිනිෂ්පාදනය කළ හැකි බව දැනගෙන.

Kustomize සඳහා කෙටි හැඳින්වීමක්
සටහන. පරිවර්තනය.: kustomize හි උඩැතිරි භාවිතා කිරීම පිළිබඳ ව්‍යාපෘති ලියකියවිලි වලින් නිදර්ශනය

අභිරුචිකරණය කළ හැකිය බොහෝ මෙම ලිපියේ ආවරණය කර ඇති දේට වඩා. කෙසේ වෙතත්, එය හොඳ හැඳින්වීමක් ලෙස සේවය කරනු ඇතැයි මම බලාපොරොත්තු වෙමි.

අතිරේක සම්පත්

kustomize ගැන බොහෝ හොඳ ලිපි සහ ප්‍රකාශන තිබේ. මට විශේෂයෙන් ප්‍රයෝජනවත් යැයි හැඟුණු කිහිපයක් මෙන්න:

සටහන. පරිවර්තනය.: ලෙස ප්‍රකාශිත සබැඳි බ්ලොක් එකක් ද ඔබට නිර්දේශ කළ හැක සම්පත් උපයෝගිතා වෙබ් අඩවියේ, පසුව kustomize පිළිබඳ නවතම වාර්තා සහිත වීඩියෝ එකතුවක්.

ඔබට මෙම ද්‍රව්‍ය වැඩිදියුණු කිරීම සඳහා ප්‍රශ්න හෝ යෝජනා තිබේ නම්, මම ප්‍රතිපෝෂණ සඳහා සැමවිටම විවෘතව සිටිමි. ඔබට මාව සම්බන්ධ කර ගත හැක ට්විටර් හෝ Kubernetes Slack නාලිකාව. කස්ටමයිස් සමඟින් ඔබේ මැනිෆෙස්ටය වෙනස් කර විනෝද වන්න!

පරිවර්තකගෙන් PS

අපගේ බ්ලොග් අඩවියේ ද කියවන්න:

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න