Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه

Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه

دا شپه place will و.... د Kubernetes راتلونکی خپرونه - 1.14. د هغه دود له مخې چې زموږ د بلاګ لپاره رامینځته شوی ، موږ د دې عالي خلاصې سرچینې محصول نوي نسخه کې د کلیدي بدلونونو په اړه خبرې کوو.

د دې موادو د چمتو کولو لپاره کارول شوي معلومات له دې څخه اخیستل شوي د Kubernetes د پرمختګ تعقیب میزونه, بدلون-1.14 او اړوند مسایل، د پلولو غوښتنې، د کوبرنیټس د ودې وړاندیزونه (KEP).

راځئ چې د SIG کلستر-لائف سایکل څخه یو مهم پیژندنه پیل کړو: متحرک ناکامي کلسترونه Kubernetes (یا ډیر دقیق وي، د ځان کوربه HA ګومارنې) اوس دی رامینځته کیدی شي د پیژندل شوي (د واحد نوډ کلسترونو په شرایطو کې) کمانډونه کارول kubeadm (init и join). په لنډه توګه، د دې لپاره:

  • د کلستر لخوا کارول شوي سندونه رازونو ته لیږدول کیږي؛
  • د K8s کلستر دننه د etcd کلستر کارولو امکان لپاره (د بیلګې په توګه د پخواني موجود بهرني انحصار څخه خلاصیدل) etcd-آپریټر;
  • د بهرني بار بیلنسر لپاره وړاندیز شوي تنظیمات مستند کوي چې د غلطۍ زغمونکي ترتیب چمتو کوي (په راتلونکي کې دا پلان شوی چې دا انحصار له مینځه یوسي ، مګر پدې مرحله کې نه).

Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه
د Kubernetes HA کلستر جوړښت د kubeadm سره جوړ شوی

د تطبیق جزییات په کې موندل کیدی شي د ډیزاین وړاندیز. دا خصوصیت واقعیا اوږد انتظار و: د الفا نسخه بیرته په K8s 1.9 کې تمه کیده ، مګر یوازې اوس راڅرګند شو.

API

ټیم apply او په عمومي توګه خبرې کول اعلاناتي څیز مدیریت تېر شو د kubectl په apiserver کې. پرمخ وړونکي پخپله د دې په ویلو سره خپله پریکړه په لنډه توګه تشریح کوي kubectl apply - په Kubernetes کې د تشکیلاتو سره د کار کولو یوه بنسټیزه برخه، په هرصورت، "دا له کیچونو ډک دی او حل کول یې ستونزمن دي،" او له همدې امله دا فعالیت باید بیرته عادي حالت ته راوړل شي او د کنټرول الوتکې ته لیږدول کیږي. د ستونزو ساده او روښانه مثالونه چې نن ورځ شتون لري:

Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه

د تطبیق په اړه جزئیات په لاندې ډول دي CAP. اوسنی چمتووالی الفا دی (بیټا ته وده د راتلونکي کبرنیټ خوشې کولو لپاره پلان شوې ده).

په الفا نسخه کې شتون لري فرصت لپاره د OpenAPI v3 سکیم کارول د CustomResources لپاره د OpenAPI اسنادو جوړول او خپرول (CR) د K8s د کارونکي لخوا تعریف شوي سرچینې (CustomResourceDefinition, CRD) د اعتبار کولو لپاره کارول کیږي. د CRD لپاره د OpenAPI خپرول پیرودونکو ته اجازه ورکوي (د مثال په توګه kubectl) ستاسو په اړخ کې اعتبار ترسره کړئ (د kubectl create и kubectl apply) او د سکیم مطابق اسناد جاري کړئ (kubectl explain). جزیات - په CAP.

پخوانۍ لاګونه اوس پرانیستل کیږي د بیرغ سره O_APPEND (مګر نه O_TRUNC) په ځینو حاالتو کې د لاګونو له لاسه ورکولو څخه مخنیوي لپاره او د گردش لپاره د خارجي اسانتیاوو سره د لوګو د پرې کولو اسانتیا لپاره.

همدارنګه د Kubernetes API په شرایطو کې، دا یادونه کیدی شي چې په کې PodSandbox и PodSandboxStatus زیاته کړه ساحه runtime_handler د معلوماتو ثبتولو لپاره RuntimeClass په پوډ کې (د دې په اړه نور په متن کې ولولئ Kubernetes 1.12 خپروي، چیرې چې دا ټولګی د الفا نسخه په توګه راڅرګند شو) او د داخلې ویب هکس کې پلي شوي د کومې نسخې ټاکلو وړتیا AdmissionReview دوی ملاتړ کوي. په نهایت کې ، د داخلې ویب هکس قواعد اوس دي محدود کیدی شي د نوم ځایونو او کلستر چوکاټونو لخوا د دوی د کارولو حد.

ذخیره کول

PersistentLocalVolumes، کوم چې د خوشې کیدو راهیسې د بیټا حالت درلود K8s 1.10, اعلان وکړ مستحکم (GA): دا فیچر دروازه نور غیر فعاله نه ده او په کوبرنیټس 1.17 کې به لرې شي.

فرصت د چاپیریال متغیرونو کارول چې ویل کیږي ښکته API (د مثال په توګه، د پوډ نوم) د لارښوونو نومونو لپاره چې ایښودل شوي subPath، وده کړې وه - د نوي ساحې په بڼه subPathExpr، کوم چې اوس د مطلوب لارښود نوم ټاکلو لپاره کارول کیږي. دا فیچر په پیل کې په کبرنیټس 1.11 کې ښکاره شو، مګر د 1.14 لپاره دا د الفا نسخه حالت کې پاتې شو.

لکه څنګه چې د پخوانۍ کبرنیټ خوشې کیدو سره، ډیری مهم بدلونونه د فعاله وده کونکي CSI (د کانټینر ذخیره کولو انٹرفیس) لپاره معرفي شوي:

CSI

شتون درلود (د الفا نسخې برخې په توګه) ملاتړ د CSI حجمونو لپاره اندازه کول. د دې کارولو لپاره تاسو به د فیچر دروازه فعالولو ته اړتیا ولرئ چې په نوم یادیږي ExpandCSIVolumes، په بیله بیا په ځانګړي CSI ډرایور کې د دې عملیاتو لپاره د ملاتړ شتون.

په الفا نسخه کې د CSI لپاره بله ځانګړتیا - فرصت په مستقیم ډول (د مثال په توګه د PV/PVC کارولو پرته) د پوډ مشخصاتو کې د CSI حجمونو ته راجع کړئ. دا د CSI کارولو محدودیت په ځانګړي ډول د لرې پرتو معلوماتو ذخیره کولو په توګه لرې کويد دوی لپاره د نړۍ دروازې پرانیزي محلي لنډمهاله حجمونه. د استعمال لپاره (مثال د اسنادو څخه) باید فعال شي CSIInlineVolume د ځانګړتیا دروازه.

د CSI پورې اړوند د کوبرنیټس "داخلي" کې هم پرمختګ شوی ، کوم چې د پای کاروونکو (سیسټم مدیرانو) لپاره دومره نه لیدل کیږي ... اوس مهال ، پراختیا کونکي اړ دي چې د هر ذخیره کولو پلگ ان دوه نسخې ملاتړ وکړي: یو - "په پخوانۍ لاره"، د K8s کوډبیس دننه (in-tree)، او دوهم - د نوي CSI برخې په توګه (د دې په اړه نور ولولئ، د بیلګې په توګه، په دلته). دا د پوهیدو وړ ناورینونو لامل کیږي چې باید په ګوته شي ځکه چې CSI پخپله ثبات کوي. دا ممکنه نده چې په ساده ډول د داخلي (ان-درې) پلگ انونو API تخریب له امله اړونده Kubernetes پالیسي.

دا ټول د دې حقیقت لامل شو چې الفا نسخه ته ورسید د مهاجرت پروسه د داخلي پلگ ان کوډ، په CSI پلگ انونو کې د in-tree په توګه پلي کیږي ، له دې امله د پراختیا کونکو اندیښنې به د دوی د پلگ انونو یوې نسخې ملاتړ کولو لپاره کمې شي ، او د زړو APIs سره مطابقت به پاتې شي او دوی به په عادي سناریو کې متروک اعلان شي. تمه کیږي چې د کوبرنیټس (1.15) راتلونکي خوشې کیدو پورې به ټول کلاوډ چمتو کونکي پلگ انونه مهاجر شي ، پلي کول به د بیټا حالت ترلاسه کړي او په ډیفالټ به د K8s تاسیساتو کې فعال شي. د جزیاتو لپاره، وګورئ د ډیزاین وړاندیز. دغه مهاجرت هم د دې سبب شو ناکامي د حجم محدودیتونو څخه چې د ځانګړي کلاوډ چمتو کونکو لخوا تعریف شوي (AWS, Azure, GCE, Cinder).

سربیره پردې، د CSI سره د بلاک وسیلو ملاتړ (CSIBlockVolume) لیږدول شوی د بیټا نسخه ته.

نوډز/کوبلیټ

د الفا نسخه وړاندې شوه نوی پای ټکی په کوبیلټ کې، د دې لپاره ډیزاین شوی په کلیدي سرچینو کې میټریکونه بیرته راګرځول. په عموم کې ، که دمخه کوبیلټ د کانټینر کارولو په اړه د cAdvisor څخه احصایې ترلاسه کړې ، اوس دا ډاټا د کانټینر رنټایم چاپیریال څخه د CRI (کانټینر رنټیم انٹرفیس) له لارې راځي ، مګر د ډاکر د زړو نسخو سره د کار کولو مطابقت هم ساتل کیږي. پخوا، په کوبیلټ کې راټول شوي احصایې د REST API له لارې لیږل شوي، مګر اوس د پای ټکی په کې موقعیت لري /metrics/resource/v1alpha1. د پراختیا کونکو اوږدمهاله ستراتیژي دی د کوبلیټ لخوا چمتو شوي میټریکونو سیټ کمول دي. په هرصورت، دا میترونه پخپله اوس دوی غږ کوي "اصلي میټریکونه" نه، مګر "د سرچینو میټریک"، او د "لومړي درجې سرچینې، لکه cpu، او حافظې" په توګه تشریح شوي.

یو ډیر په زړه پوری نزاکت: د GRPC پای ټکي د څرګند فعالیت ګټې سره سره د پرومیټیوس فارمیټ کارولو مختلف قضیو سره په پرتله (د لاندې معیارونو څخه یوه پایله وګورئ)، لیکوالانو په ټولنه کې د دې څارنې سیسټم روښانه مشرتابه له امله د پرومیټیوس متن بڼه غوره کړه.

"gRPC د لوی څارنې پایپ لاینونو سره مطابقت نلري. پای ټکی به یوازې د میټریک سرور ته د میټریکونو رسولو یا د څارنې اجزاو لپاره ګټور وي چې مستقیم ورسره مدغم وي. د پرومیټیوس متن فارمیټ فعالیت کله چې په میټریکس سرور کې کیچنګ کاروي پوره ښه موږ د دې لپاره چې په ټولنه کې د پرومیټیوس پراخه منل په پام کې نیولو سره د gRPC په پرتله پرومیټیوس ته ترجیح ورکړو. یوځل چې د OpenMetrics بڼه نوره هم مستحکمه شي، موږ به وکوالی شو د پروټو پر بنسټ د فارمیټ سره د gRPC فعالیت ته ورسیږو.

Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه
د میټریکونو لپاره په نوي کوبیلټ پای نقطه کې د gRPC او Prometheus فارمیټونو کارولو پرتله کولو فعالیت ازموینو څخه یو. نور ګرافونه او نور توضیحات په کې موندل کیدی شي CAP.

د نورو بدلونونو په منځ کې:

  • کوبیلټ اوس (یو ځل) د بندولو هڅه کوي کانټینرونه په نامعلوم حالت کې مخکې له دې چې عملیات بیا پیل او حذف کړي.
  • کله چې کارول PodPresets اوس init کانټینر ته اضافه شوی د منظم کانټینر په څیر ورته معلومات.
  • کبلیت کارول پیل کړل usageNanoCores د CRI احصایې چمتو کونکي څخه، او په وینډوز کې د نوډونو او کانټینرونو لپاره زیاته کړه د شبکې احصایې.
  • د عملیاتي سیسټم او جوړښت معلومات اوس په لیبلونو کې ثبت شوي kubernetes.io/os и kubernetes.io/arch نوډ توکي (د بیټا څخه GA ته لیږدول شوي).
  • په پوډ کې د کانټینرونو لپاره د ځانګړي سیسټم کارونکي ګروپ مشخص کولو وړتیا (RunAsGroup، کې ښکاره شو K8s 1.11) پرمختللی د بیټا څخه مخکې (د ډیفالټ لخوا فعال شوی).
  • du او موندل په caAdvisor کې کارول کیږي، بدل شوی د تګ په پلي کولو کې.

CLI

په cli-runtime او kubectl کې زیاته کړه -k پرچم سره د یوځای کولو لپاره دودیز کول (په لاره کې، د هغې پراختیا اوس په جلا ذخیره کې ترسره کیږي)، د بیلګې په توګه. د ځانګړي تخصیص لارښودونو څخه د اضافي YAML فایلونو پروسس کولو لپاره (د دوی کارولو په اړه توضیحاتو لپاره ، وګورئ CAP):

Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه
د ساده فایل کارولو مثال اصلاح کول (د kustomize یو ډیر پیچلي غوښتنلیک دننه ممکن دی پوړونه)

برسېره پر دې:

  • زیاته کړه نوی ټیم kubectl create cronjob، د چا نوم د ځان لپاره خبرې کوي.
  • В kubectl logs اوس تاسو کولی شئ یوځای کول بیرغونه -f (--follow د سټرینګ لاګونو لپاره) او -l (--selector د لیبل پوښتنې لپاره).
  • kubectl ښوونه د وائلډ کارت لخوا غوره شوي فایلونه کاپي کړئ.
  • ټیم ته kubectl wait زیاته کړه بیرغ --all د ټاکل شوي سرچینې ډول نوم ځای کې ټولې سرچینې غوره کولو لپاره.

نور

لاندې وړتیاوې د ثبات (GA) حیثیت ترلاسه کړي:

نور بدلونونه په Kubernetes 1.14 کې معرفي شوي:

  • د RBAC ډیفالټ پالیسي نور د API لاسرسي ته اجازه نه ورکوي discovery и access-review کارونکي پرته له تصدیق (بې سنده).
  • د رسمي CoreDNS ملاتړ ډاډمن شوی یوازې لینکس، نو کله چې په کلستر کې د دې (CoreDNS) ځای پرځای کولو لپاره kubeadm وکاروئ، نوډونه باید یوازې په لینکس کې پرمخ بوځي (د دې محدودیت لپاره نوډ سلیکټرز کارول کیږي).
  • د اصلي CoreDNS تشکیل اوس دی کاروي فارورډ پلگ ان د پراکسي پرځای. همدارنګه، په CoreDNS کې زیاته کړه ReadinessProbe، کوم چې په مناسب (خدمت ته چمتو نه) پوډونو کې د بار توازن مخه نیسي.
  • په کوبیډم کې، په مرحلو کې init او یا upload-certs, شونې شوه د نوي کنټرول الوتکې د kubeadm-certs راز سره د نښلولو لپاره اړین سندونه پورته کړئ (بیرغ وکاروئ --experimental-upload-certs).
  • د وینډوز نصبولو لپاره د الفا نسخه ښکاره شوې ملاتړ gMSA (د ګروپ مدیریت شوي خدماتو حساب) - په فعال لارښود کې ځانګړي حسابونه چې د کانټینرونو لخوا هم کارول کیدی شي.
  • د G.C.E. فعال شوی د etcd او kube-apisverer ترمنځ mTLS کوډ کول.
  • په کارول شوي / انحصاري سافټویر کې تازه معلومات: Go 1.12.1، CSI 1.1، CoreDNS 1.3.1، Docker 18.09 ملاتړ په kubeadm کې، او لږترلږه ملاتړ شوی Docker API نسخه اوس 1.26 ده.

PS

زموږ په بلاګ کې هم ولولئ:

سرچینه: www.habr.com

Add a comment