කුබර්නෙටෙස් 1.14: අලුත් දේ පිළිබඳ විශේෂ අවස්ථා

කුබර්නෙටෙස් 1.14: අලුත් දේ පිළිබඳ විශේෂ අවස්ථා

මේ රාත්රිය සිදුවනු ඇත Kubernetes හි මීළඟ නිකුතුව - 1.14. අපගේ බ්ලොග් අඩවිය සඳහා වර්ධනය වී ඇති සම්ප්‍රදායට අනුව, අපි මෙම අපූරු විවෘත මූලාශ්‍ර නිෂ්පාදනයේ නව අනුවාදයේ ප්‍රධාන වෙනස්කම් ගැන කතා කරමු.

මෙම ද්රව්යය සකස් කිරීම සඳහා භාවිතා කරන තොරතුරු ලබාගෙන ඇත Kubernetes වැඩිදියුණු කිරීම් ලුහුබැඳීමේ වගු, වෙනස් කිරීම-1.14 සහ අදාළ ගැටළු, ඇදීමේ ඉල්ලීම්, Kubernetes වැඩිදියුණු කිරීමේ යෝජනා (KEP).

SIG පොකුරු-ජීවිත චක්‍රයේ වැදගත් හැඳින්වීමකින් පටන් ගනිමු: ගතික අසාර්ථක පොකුරු Kubernetes (හෝ වඩාත් නිවැරදිව, ස්වයං-සත්කාරක HA යෙදවීම්) දැන් නිර්මාණය කළ හැකිය හුරුපුරුදු (තනි-නෝඩ් පොකුරු සන්දර්භය තුළ) විධාන භාවිතා කිරීම kubeadm (init и join) කෙටියෙන් කිවහොත්, මේ සඳහා:

  • පොකුර භාවිතා කරන සහතික රහස් වෙත මාරු කරනු ලැබේ;
  • K8s පොකුර තුළ etcd පොකුර භාවිතා කිරීමේ හැකියාව සඳහා (එනම් කලින් පැවති බාහිර පරායත්තතාවයෙන් මිදීම) etcd-ක්‍රියාකරු;
  • දෝෂ-ඉවසන වින්‍යාසයක් සපයන බාහිර පැටවුම් සමතුලිතයක් සඳහා නිර්දේශිත සැකසුම් ලේඛනගත කරයි (අනාගතයේ දී මෙම යැපීම ඉවත් කිරීමට සැලසුම් කර ඇත, නමුත් මෙම අදියරේදී නොවේ).

කුබර්නෙටෙස් 1.14: අලුත් දේ පිළිබඳ විශේෂ අවස්ථා
Kubeadm සමඟින් නිර්මාණය කරන ලද Kubernetes HA පොකුරක ගෘහ නිර්මාණ ශිල්පය

ක්රියාත්මක කිරීම පිළිබඳ විස්තර සොයාගත හැකිය සැලසුම් යෝජනාව. මෙම විශේෂාංගය සැබවින්ම දිගු කලක් බලා සිටි එකක් විය: ඇල්ෆා අනුවාදය K8s 1.9 හි නැවත අපේක්ෂා කරන ලදී, නමුත් දැන් පමණක් දර්ශනය විය.

API

කණ්ඩායම apply සහ පොදුවේ කතා කිරීම ප්රකාශිත වස්තු කළමනාකරණය සමත් විය සිට kubectl apiserver හි. සංවර්ධකයින් විසින්ම එය පවසමින් ඔවුන්ගේ තීරණය කෙටියෙන් පැහැදිලි කරයි kubectl apply - Kubernetes හි වින්‍යාසයන් සමඟ වැඩ කිරීමේ මූලික කොටසක්, කෙසේ වෙතත්, “එය දෝෂ වලින් පිරී ඇති අතර නිවැරදි කිරීමට අපහසුය”, එබැවින් මෙම ක්‍රියාකාරිත්වය සාමාන්‍ය තත්වයට ගෙන ගොස් පාලන තලයට මාරු කළ යුතුය. අද පවතින ගැටළු සඳහා සරල සහ පැහැදිලි උදාහරණ:

කුබර්නෙටෙස් 1.14: අලුත් දේ පිළිබඳ විශේෂ අවස්ථා

ක්රියාත්මක කිරීම පිළිබඳ විස්තර ඇත කේ.ඊ.පී. වත්මන් සූදානම ඇල්ෆා වේ (මීළඟ Kubernetes නිකුතුව සඳහා බීටා වෙත ප්‍රවර්ධනය සැලසුම් කර ඇත).

ඇල්ෆා අනුවාදයෙන් ලබා ගත හැකිය අවස්ථාව සඳහා OpenAPI v3 යෝජනා ක්රමය භාවිතා කරයි CustomResources සඳහා OpenAPI ලේඛන නිර්මාණය කිරීම සහ ප්‍රකාශයට පත් කිරීම (CR) වලංගු කිරීමට භාවිතා කරන (සේවාදායක පැත්තේ) K8s පරිශීලක-නිර්වචනය කළ සම්පත් (CustomResourceDefinition, CRD). CRD සඳහා OpenAPI ප්‍රකාශනය සේවාලාභීන්ට ඉඩ සලසයි (උදා. kubectl) ඔබේ පැත්තෙන් වලංගුකරණය සිදු කරන්න (ඇතුළත kubectl create и kubectl apply) සහ යෝජනා ක්රමය අනුව ලියකියවිලි නිකුත් කරන්න (kubectl explain) විස්තර - තුළ කේ.ඊ.පී.

පෙර පැවති ලඝු-සටහන් දැන් විවෘත වේ කොඩිය සමඟ O_APPEND (නමුත් නොවේ O_TRUNC) සමහර අවස්ථාවන්හිදී ලඝු-සටහන් අහිමි වීම වැළැක්වීම සඳහා සහ භ්රමණය සඳහා බාහිර උපයෝගිතා සහිත ලොග් කප්පාදු කිරීමේ පහසුව සඳහා.

Kubernetes API හි සන්දර්භය තුළ, එය සටහන් කළ හැකිය PodSandbox и PodSandboxStatus එකතු කළා ක්ෂේත්‍රය runtime_handler පිළිබඳ තොරතුරු වාර්තා කිරීමට RuntimeClass පොඩ් එකේ (ඒ ගැන වැඩිදුර කියවන්න Kubernetes 1.12 නිකුතුව, මෙම පන්තිය ඇල්ෆා අනුවාදයක් ලෙස දර්ශනය වූ තැන), සහ ඇතුළත් කිරීමේ වෙබ්හූක්ස් හි ක්රියාත්මක කර ඇත කුමන අනුවාදයන් තීරණය කිරීමට හැකියාව AdmissionReview ඔවුන් සහාය දක්වයි. අවසාන වශයෙන්, ඇතුළත් කිරීමේ වෙබ්හුක්ස් නීති දැන් වේ සීමා කළ හැක නාම අවකාශයන් සහ පොකුරු රාමු මගින් ඒවායේ භාවිතයේ තරම.

ගබඞා

PersistentLocalVolumes, නිකුතුවේ සිට බීටා තත්ත්වය තිබූ K8s 1.10, නිවේදනය කළේය ස්ථාවර (GA): මෙම විශේෂාංග ද්වාරය තවදුරටත් අබල කර නොමැති අතර Kubernetes 1.17 හි ඉවත් කරනු ලැබේ.

අවස්ථාව ලෙස හඳුන්වන පරිසර විචල්‍ය භාවිතා කිරීම පහළට API (උදාහරණයක් ලෙස, පොඩ් නම) ලෙස සවිකර ඇති නාමාවලිවල නම් සඳහා subPath, සංවර්ධනය කරන ලදී - නව ක්ෂේත්රයක ස්වරූපයෙන් subPathExpr, දැන් අපේක්ෂිත නාමාවලියේ නම තීරණය කිරීමට භාවිතා කරයි. විශේෂාංගය මුලින් Kubernetes 1.11 හි දර්ශනය වූ නමුත් 1.14 සඳහා එය ඇල්ෆා අනුවාද තත්ත්වයේ පැවතුනි.

පෙර Kubernetes නිකුතුවේදී මෙන්ම, සක්‍රියව සංවර්ධනය වෙමින් පවතින CSI (බහාලුම් ගබඩා අතුරුමුහුණත) සඳහා බොහෝ වැදගත් වෙනස්කම් හඳුන්වා දෙනු ලැබේ:

CSI

ලබා ගත හැකි විය (ඇල්ෆා අනුවාදයේ කොටසක් ලෙස) සහාය CSI වෙළුම් සඳහා ප්‍රමාණය වෙනස් කිරීම. එය භාවිතා කිරීම සඳහා ඔබ නමින් හැඳින්වෙන විශේෂාංග ද්වාරය සක්රිය කිරීමට අවශ්ය වනු ඇත ExpandCSIVolumes, මෙන්ම විශේෂිත CSI ධාවකයක් තුළ මෙම මෙහෙයුම සඳහා සහාය තිබීම.

ඇල්ෆා අනුවාදයේ CSI සඳහා තවත් විශේෂාංගයක් - අවස්ථාව පොඩ් පිරිවිතර තුළ ඇති CSI වෙළුම් වෙත කෙලින්ම (එනම් PV/PVC භාවිතා නොකර) යොමු කරන්න. මෙය තනිකරම දුරස්ථ දත්ත ගබඩාවක් ලෙස CSI භාවිතයට ඇති සීමාව ඉවත් කරයි, ඔවුන්ට ලෝකයට දොරටු විවර කිරීම දේශීය ephemeral පරිමාවන්. භාවිතය සඳහා (ලේඛන වලින් උදාහරණයක්) සක්රිය කළ යුතුය CSIInlineVolume විශේෂාංග දොරටුව.

අවසාන පරිශීලකයින්ට (පද්ධති පරිපාලකයින්ට) එතරම් දෘශ්‍යමාන නොවන CSI හා සම්බන්ධ Kubernetes හි "අභ්‍යන්තර" වල ප්‍රගතියක් ද ඇත ... දැනට, සංවර්ධකයින්ට එක් එක් ගබඩා ප්ලගිනයෙහි අනුවාද දෙකකට සහය දැක්වීමට බල කෙරේ: එකක් - " පැරණි මාර්ගය”, K8s කේත පදනම තුළ (ගස තුළ), සහ දෙවන - නව CSI හි කොටසක් ලෙස (ඒ ගැන වැඩිදුර කියවන්න, උදාහරණයක් ලෙස, in මෙහි). මෙය CSI විසින්ම ස්ථායී වන විට විසඳිය යුතු තේරුම් ගත හැකි අපහසුතාවයන් ඇති කරයි. හේතුවෙන් අභ්‍යන්තර (ගස තුළ) ප්ලගීන වල API නිකම්ම ඉවත් කළ නොහැක අදාළ Kubernetes ප්රතිපත්තිය.

මේ සියල්ල ඇල්ෆා අනුවාදය ළඟා වීමට හේතු විය සංක්රමණ ක්රියාවලිය අභ්යන්තර ප්ලගින කේතය, CSI ප්ලගීන තුළ, ගස-තුළ ලෙස ක්‍රියාවට නංවා ඇති අතර, සංවර්ධකයින්ගේ කරදර ඔවුන්ගේ ප්ලගීනවල එක් අනුවාදයකට සහාය වීම දක්වා අඩු කරනු ඇති අතර පැරණි API සමඟ ගැළපුම පවතිනු ඇති අතර ඒවා සාමාන්‍ය තත්වයේදී යල්පැන ඇති බව ප්‍රකාශ කළ හැකිය. Kubernetes (1.15) හි මීළඟ නිකුතුව වන විට සියලුම cloud provider ප්ලගීන සංක්‍රමණය වනු ඇතැයි අපේක්ෂා කෙරේ, ක්‍රියාත්මක කිරීම බීටා තත්ත්වය ලැබෙනු ඇති අතර පෙරනිමියෙන් K8s ස්ථාපනයන් තුළ සක්‍රිය වනු ඇත. විස්තර සඳහා, බලන්න සැලසුම් යෝජනාව. මෙම සංක්‍රමණය ද හේතු විය අසාර්ථකයි නිශ්චිත වලාකුළු සපයන්නන් (AWS, Azure, GCE, Cinder) විසින් නිර්වචනය කරන ලද පරිමා සීමාවන්ගෙන්.

අතිරේකව, CSI සමග බ්ලොක් උපාංග සඳහා සහාය (CSIBlockVolume) මාරු කළා බීටා අනුවාදයට.

නෝඩ් / කුබෙලෙට්

ඇල්ෆා අනුවාදය ඉදිරිපත් කර ඇත නව අන්ත ලක්ෂ්‍යය සඳහා නිර්මාණය කර ඇති Kubelet හි ප්‍රධාන සම්පත් මත ප්‍රමිතික ලබා දෙන්න. සාමාන්‍යයෙන් කිවහොත්, මීට පෙර Kubelet හට cAdvisor වෙතින් බහාලුම් භාවිතය පිළිබඳ සංඛ්‍යාලේඛන ලැබුණේ නම්, දැන් මෙම දත්ත CRI (Container Runtime Interface) හරහා බහාලුම් ධාවන කාල පරිසරයෙන් පැමිණේ, නමුත් Docker හි පැරණි අනුවාද සමඟ වැඩ කිරීම සඳහා වන ගැළපුම ද සංරක්ෂණය කර ඇත. මීට පෙර, Kubelet හි එකතු කරන ලද සංඛ්‍යාලේඛන REST API හරහා යවන ලද නමුත් දැන් එය අවසන් ලක්ෂ්‍යයක් /metrics/resource/v1alpha1. සංවර්ධකයින්ගේ දිගුකාලීන උපාය මාර්ගය සමන්විත වේ Kubelet විසින් සපයන ලද මිනුම් කට්ටලය අවම කිරීමයි. මාර්ගය වන විට, මෙම මිනුම් දඬු ම දැන් ඔවුන් කතා කරනවා "core metrics" නොව, "Resource metrics", සහ "cpu, සහ memory වැනි පළමු පන්තියේ සම්පත්" ලෙස විස්තර කෙරේ.

ඉතා සිත්ගන්නා සුළු සූක්ෂ්මතාවයක්: Prometheus ආකෘතිය භාවිතා කිරීමේ විවිධ අවස්ථා හා සසඳන විට gRPC අන්ත ලක්ෂ්‍යයේ පැහැදිලි කාර්ය සාධන වාසිය තිබියදීත් (පහත මිණුම් සලකුණු වලින් එකක ප්‍රතිඵලය බලන්න), ප්‍රජාව තුළ මෙම අධීක්ෂණ පද්ධතියේ පැහැදිලි නායකත්වය හේතුවෙන් කතුවරුන් Prometheus හි පෙළ ආකෘතියට වැඩි කැමැත්තක් දැක්වීය.

"gRPC ප්රධාන නිරීක්ෂණ නල මාර්ග සමඟ නොගැලපේ. එන්ඩ්පොයින්ට් ප්‍රයෝජනවත් වනුයේ මෙට්‍රික් සේවාදායකය වෙත ප්‍රමිතික බෙදා හැරීමට හෝ එය සමඟ සෘජුවම ඒකාබද්ධ වන සංරචක අධීක්‍ෂණය කිරීමට පමණි. Metrics Server තුළ හැඹිලි භාවිතා කරන විට Prometheus පෙළ ආකෘති කාර්ය සාධනය ප්රමාණවත් තරම් හොඳයි ප්‍රජාව තුළ ප්‍රොමිතියස් පුලුල්ව පැතිරී ඇති බැවින්, gRPC ට වඩා Prometheus ට වඩා අප කැමති වීමට. OpenMetrics ආකෘතිය වඩාත් ස්ථායී වූ පසු, අපට ප්‍රෝටෝ-පාදක ආකෘතියක් සමඟ gRPC කාර්ය සාධනය වෙත ප්‍රවේශ වීමට හැකි වනු ඇත."

කුබර්නෙටෙස් 1.14: අලුත් දේ පිළිබඳ විශේෂ අවස්ථා
ප්‍රමිතික සඳහා නව කුබෙල්ට් අන්ත ලක්ෂ්‍යයේ gRPC සහ Prometheus ආකෘති භාවිතා කිරීමේ සංසන්දනාත්මක කාර්ය සාධන පරීක්ෂණවලින් එකකි. තවත් ප්‍රස්ථාර සහ අනෙකුත් විස්තර සොයා ගත හැක කේ.ඊ.පී.

වෙනත් වෙනස්කම් අතර:

  • Kubelet දැන් (එක් වරක්) නතර කිරීමට උත්සාහ කරයි මෙහෙයුම් නැවත ආරම්භ කිරීමට සහ මකා දැමීමට පෙර නොදන්නා තත්වයක ඇති බහාලුම්.
  • භාවිතා කිරීම PodPresets දැන් init කන්ටේනරය වෙත එකතු කරන ලදි සාමාන්‍ය බහාලුමක් සඳහා සමාන තොරතුරු.
  • කුබෙලෙට් භාවිතා කිරීමට පටන් ගත්තේය usageNanoCores CRI සංඛ්‍යාලේඛන සපයන්නා වෙතින්, සහ Windows මත නෝඩ් සහ බහාලුම් සඳහා එකතු කළා ජාල සංඛ්යා ලේඛන.
  • මෙහෙයුම් පද්ධතිය සහ ගෘහ නිර්මාණ තොරතුරු දැන් ලේබලවල සටහන් කර ඇත kubernetes.io/os и kubernetes.io/arch නෝඩ් වස්තු (බීටා සිට GA වෙත මාරු කර ඇත).
  • පොඩ් එකක ඇති බහාලුම් සඳහා නිශ්චිත පද්ධති පරිශීලක කණ්ඩායමක් නියම කිරීමේ හැකියාව (RunAsGroup, පෙනී සිටියේය K8s 1.11) උසස් බීටා පෙර (පෙරනිමියෙන් සක්රිය කර ඇත).
  • du සහ cAdvisor හි භාවිතා වන සොයා ගන්න, වෙනුවට Go ක්රියාත්මක කිරීම මත.

CLI

ක්ලි ධාවන කාලය සහ kubectl එකතු කළා සමග ඒකාබද්ධ කිරීම සඳහා -k ධජය අභිරුචිකරණය (මාර්ගය වන විට, එහි සංවර්ධනය දැන් වෙනම ගබඩාවක සිදු කරනු ලැබේ), i.e. විශේෂ kustomization නාමාවලි වලින් අමතර YAML ගොනු සැකසීමට (ඒවා භාවිතා කිරීම පිළිබඳ විස්තර සඳහා, බලන්න කේ.ඊ.පී):

කුබර්නෙටෙස් 1.14: අලුත් දේ පිළිබඳ විශේෂ අවස්ථා
සරල ගොනු භාවිතය පිළිබඳ උදාහරණයක් අභිරුචිකරණය (kustomize හි වඩාත් සංකීර්ණ යෙදුමක් ඇතුළත කළ හැකිය ආවරණ)

මීට අමතරව:

  • එකතු කරන ලදී නව කණ්ඩායම kubectl create cronjob, ඔහුගේ නම තමාටම කතා කරයි.
  • В kubectl logs දැන් ඔබට පුළුවන් ඒකාබද්ධ කිරීමට කොඩි -f (--follow ප්‍රවාහ ලොග සඳහා) සහ -l (--selector ලේබල් විමසුම සඳහා).
  • kubectl ඉගැන්නුවා වයිල්ඩ් කාඩ් මගින් තෝරාගත් ගොනු පිටපත් කරන්න.
  • කණ්ඩායමට kubectl wait එකතු කළා ධජය --all නිශ්චිත සම්පත් වර්ගයෙහි නාම අවකාශයේ ඇති සියලුම සම්පත් තේරීමට.

වෙනත්

පහත හැකියාවන්ට ස්ථාවර (GA) තත්ත්වය ලැබී ඇත:

  • ReadinessGate, කරල් පිරිවිතරයේ භාවිතා කර, කරල් වල සූදානම සැලකිල්ලට ගන්නා අමතර කොන්දේසි නිර්වචනය කිරීම;
  • විශාල පිටු සඳහා සහාය (විශේෂාංග දොරටුව ලෙස හැඳින්වේ HugePages);
  • CustomPodDNS;
  • PriorityClass API Pod Priority & Premption.

Kubernetes 1.14 හි හඳුන්වා දුන් අනෙකුත් වෙනස්කම්:

  • පෙරනිමි RBAC ප්‍රතිපත්තිය තවදුරටත් API ප්‍රවේශයට ඉඩ නොදේ discovery и access-review සත්‍යාපනය නොමැතිව භාවිතා කරන්නන් (සත්‍යාපනය නොකළ).
  • නිල CoreDNS සහාය සහතික කර ඇත ලිනක්ස් පමණි, එබැවින් පොකුරක් තුළ එය (CoreDNS) යෙදවීමට kubeadm භාවිතා කරන විට, නෝඩ් ක්‍රියාත්මක විය යුත්තේ Linux මත පමණි (මෙම සීමාව සඳහා nodeSelectors භාවිතා වේ).
  • පෙරනිමි CoreDNS වින්‍යාසය දැන් වේ භාවිතා කරයි ඉදිරි ප්ලගිනය ප්‍රොක්සි වෙනුවට. එසේම, CoreDNS හි එකතු කළා redinessProbe, එය සුදුසු (සේවා සඳහා සූදානම් නැති) කරල් මත බර සමතුලිත වීම වළක්වයි.
  • kubeadm දී, අදියර මත init හෝ upload-certs, හැකි වුණා නව පාලන තලය kubeadm-certs රහසට සම්බන්ධ කිරීමට අවශ්‍ය සහතික පූරණය කරන්න (කොඩිය භාවිතා කරන්න --experimental-upload-certs).
  • වින්ඩෝස් ස්ථාපනයන් සඳහා ඇල්ෆා අනුවාදයක් දර්ශනය වී ඇත සහාය gMSA (සමූහ කළමණාකරන සේවා ගිණුම) - බහාලුම් මගින්ද භාවිතා කළ හැකි සක්‍රීය නාමාවලියෙහි විශේෂ ගිණුම්.
  • සඳහා G.C.E. සක්රිය කර ඇත etcd සහ kube-apiserver අතර mTLS සංකේතනය.
  • භාවිත/යැපෙන මෘදුකාංගවල යාවත්කාලීන: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 සහය kubeadm, සහ අවම සහාය දක්වන Docker API අනුවාදය දැන් 1.26 වේ.

ප්රාදේශීය සභා

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

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

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