د Kubernetes غوره 10 چلونه او لارښوونې

د Kubernetes غوره 10 چلونه او لارښوونې

په انټرنیټ کې د حوالې ډیری ادبيات شتون لري، مګر ځینې وختونه ساده مشوره خورا ارزښتناکه وي. ټیم Kubernetes aaS له Mail.ru څخه ژباړه د لسو چلونو او لارښوونو انتخاب، کوم چې د مقالې لیکوال د کوبرنیټس سره د کار کولو یو کال وروسته راټول کړی. لارښوونې د اهمیت له مخې ندي ترتیب شوي، مګر موږ فکر کوو چې هرڅوک به د ځان لپاره یو څه ګټور ومومي.

د Kubernetes سره کار کولو لپاره ترټولو ساده کمانډ

د پیل کولو لپاره، شاید د Kubernetes سره کار کولو کې ترټولو ساده او خورا ګټور عمل. لاندې کمانډ د کمانډ بشپړولو وړتیا ورکوي kubectl په باش شیل کې:

echo "source <(kubectl completion bash)" >> ~/.bashrc

ځان ډکول kubectl د .bashrc فایل ته به لیکل کیږي او هرکله چې شیل پیل شي په اتوماتيک ډول به فعال شي. دا د اوږدې کمانډونو او پیرامیټونو ټایپ کول ګړندي کوي لکه all-namespaces. نور په کې ولولئ Kubernetes bash مرسته.

په نوم ځای کې ډیفالټ حافظه او CPU محدودیتونه

که غوښتنلیک په غلط ډول لیکل شوی وي، د بیلګې په توګه، دا په هره ثانیه کې ډیټابیس ته یو نوی پیوستون پرانیزي مګر هیڅکله یې نه بندوي، نو کلستر د حافظې لیک لري. او که چیرې غوښتنلیک د ګمارنې پرمهال د حافظې حد نه وي ټاکل شوی ، نو دا کولی شي د نوډ ناکامۍ لامل شي.

د دې د مخنیوي لپاره، Kubernetes تاسو ته اجازه درکوي د هر نوم ځای په اساس د ډیفالټ محدودیتونه تنظیم کړئ. دوی د یو ځانګړي نوم ځای لپاره د yaml فایل کې لیکل شوي. دلته د داسې فایل یوه بیلګه ده:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

دا ډول یامل جوړ کړئ او په هر نوم ځای کې پلي کړئ. د مثال په توګه، د نوم ځای ته limit-example. اوس کوم کانټینر چې په دې نوم ځای کې ځای په ځای شوی وي د 512Mi حد به ولري، پرته لدې چې د دې کانټینر لپاره بل انفرادي حد اضافه شي.

د Kubernetes په زړو نسخو کې د کثافاتو راټولول

Kubelet د ډیفالټ په واسطه د کثافاتو راټولول پیل کوي کله چې var/lib/docker د شته ډیسک 90٪ ځای نیسي. دا خورا ښه دی، په هرصورت، تر دې چې د Kubernetes 1.7 پورې د کارول شوي انډونو شمیر په اړه کوم ډیفالټ حد نه و، کوم چې د فایل سیسټم کې د فایلونو شمیر سره مطابقت لري.

په احتمالي توګه ستاسو کانټینر var/lib/docker کیدای شي یوازې د ډیسک 50٪ ځای وکاروي، مګر کیدای شي د انډونو څخه تیر شي، کوم چې به د کارمندانو لپاره ستونزې رامینځته کړي.

د کبلیټ په زړو نسخو کې له 1.4 څخه تر 1.6 پورې تاسو باید دا بیرغ اضافه کړئ:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

په 1.7 او وروسته نسخو کې دا بیرغ د ډیفالټ لخوا تنظیم شوی. په هرصورت، پخوانۍ نسخې د انوډ حد نه څارنه کوي.

مینیکیوب... کوچنی خو پیاوړی ځایی کبرنیټس

مینیکیوب د ځایی کبرنیټس کلستر چلولو ترټولو اسانه لار ده. دا د ساده کمانډ سره پیل شوی:

minikube start

د دې کمانډ چلول ستاسو په کمپیوټر کې د ریښتیني Kubernetes کلستر چلولو پایله لري.

د Kubernetes غوره 10 چلونه او لارښوونې
د انځورګرۍ سرچینه

چال دا دی چې څنګه غوښتنلیک رامینځته کړئ او په محلي ډول یې په دې کلستر کې پرمخ وړئ. پرته لدې چې په ځانګړي ډول لارښوونه شوې وي ، د ډاکر عکس به ستاسو په کمپیوټر کې جوړ شي نه په کلستر کې.

د دې لپاره چې ډاکر دې ته اړ کړي چې عکس ځایی کوبرنیټس کلستر ته واړوي ، د ډاکر ماشین لاندې کمانډ ورکړل شوی:

eval $(minikube docker-env)

اوس موږ کولی شو غوښتنلیکونه په محلي Kubernetes کلستر کې جوړ کړو.

هرچا ته کیوبیکل لاسرسی مه ورکوئ

دا روښانه ښکاري، مګر که ډیری ټیمونه د دوی غوښتنلیکونو لپاره ورته کلستر کاروي (کوم چې د کوبرنیټس لپاره رامینځته شوی)، تاسو باید یوازې هرچا ته نه ورکړئ kubectl. دا غوره ده چې کمانډونه جلا کړئ، هر یو یې د خپل نوم ځای وټاکئ او د RBAC پالیسیو په کارولو سره لاسرسی محدود کړئ.

تاسو کولی شئ د هر پوډ لپاره د لاسرسي ، لوستلو ، رامینځته کولو ، حذف کولو او نورو عملیاتو لپاره د حقونو په ورکولو سره مغشوش شئ. مګر اصلي شی دا دی چې رازونو ته لاسرسی محدود کړي، دا یوازې مدیرانو ته اجازه ورکوي. پدې توګه به موږ د هغو کسانو ترمنځ توپیر وکړو چې کولی شي کلستر اداره کړي او هغه څوک چې کولی شي په ساده ډول دې ځای پرځای کړي.

د پوډ بودیجې اداره کول

څنګه کولی شو د کوبرنیټس کلستر کې د غوښتنلیک لپاره د ځنډ وخت ډاډمن کړو؟ PodDisruptionBudget او بیا PodDisruptionBudget.

کلسترونه په دوره توګه تازه کیږي او نوډونه خالي کیږي. هیڅ شی لاهم ولاړ نه دی، دا واقعیت دی. هره ګمارنه چې له یو څخه ډیرو مثالونو سره باید PDB (PodDisruptionBudget) ولري. دا په ساده یامل فایل کې رامینځته شوی چې په کلستر کې پلي کیږي. د یو ځانګړي PDB پوښښ ساحه د لیبل انتخاب کونکو لخوا ټاکل کیږي.

نوټ: د PDB بودیجه یوازې هغه وخت په پام کې نیول کیږي کله چې د بودیجې سرغړونې بیرته راګرځیدونکي وي (داوطلبانه ګډوډي). د هارډویر ناکامیو په څیر حالتونو کې، PDB به کار ونکړي.

د PDB بېلګه:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

دوه اصلي پیرامیټونه دي matchLabels и minAvailable. لومړی پیرامیټر مشخص کوي چې کوم غوښتنلیکونه بودیجه پلي کوي. د مثال په توګه، که زه د لیبلونو سره ځای پرځای کړم app: app-a и app: app-b، بیا دا PDB به یوازې په لومړي کې پلي شي.

پارسيم minAvailable په پام کې نیول کله چې د نوډ خالي کول (پاک کول). د مثال په توګه، زموږ په مثال کې، د خالي کولو په وخت کې، ټول مثالونه ایستل کیږي app: app-aپرته له دوو.

دا تاسو ته اجازه درکوي کنټرول کړئ چې په هر وخت کې د غوښتنلیک څومره مثالونه باید پرمخ ولاړ شي.

د غوښتنلیک روغتیا څارنه

دا ډول څارنه په دوه لارو ممکنه ده: د چمتووالي یا ژوندۍ ازموینې کارول.

لومړی تحقیقات (تیاری) د ټرافیک ترلاسه کولو لپاره د کانټینر چمتووالی ټاکي.

دوهم (ژوندیتوب) ښیي چې ایا کانټینر صحي دی یا اړتیا لري چې بیا پیل شي.

اړونده تشکیلات په ساده ډول د ګمارلو لپاره یامل ته اضافه شوي. هلته تاسو کولی شئ مهال ویش، د ځنډ وخت او د بیا محاکمې شمیر مشخص کړئ. د دوی په اړه نور جزییات وګورئ د Kubernetes اسناد.

ټاګونه هرچیرې دي

لیبلونه په Kubernetes کې یو له بنسټیزو مفکورو څخه دي. دوی شیانو ته اجازه ورکوي چې په آزاده توګه له یو بل سره اړیکه ونیسي، په بیله بیا د لیبلونو پراساس پوښتنې رامینځته کړي. په Kubernetes کې، تاسو حتی پیرودونکي ته لاړ شئ او د ځانګړو ټاګونو لپاره پیښې وګورئ.

تاسو کولی شئ د ټاګونو سره نږدې هرڅه ترسره کړئ، مګر یو ښه مثال به په ورته کلستر کې د پروګرامونو چلولو لپاره ډیری چاپیریال رامینځته کړي.

راځئ چې ووایو تاسو د ورته کلستر لپاره کاروئ dev и qa. دا پدې مانا ده چې تاسو کولی شئ یو غوښتنلیک ولرئ app-aپه ورته وخت کې په دواړو چاپیریالونو کې کار کول qa и dev. په دې حالت کې، موږ کولی شو د مناسب پیرامیټر په ټاکلو سره په ځانګړي چاپیریال کې د غوښتنلیک مثال ته په جلا توګه لاسرسی ومومئ environment. د مثال په توګه app: app-a и environment: dev د یو چاپیریال لپاره، او app: app-a и environment: qa د دوهم لپاره.

دا تاسو ته اجازه درکوي د غوښتنلیک دواړو مثالونو ته لاسرسی ومومئ ، د مثال په توګه ، په ورته وخت کې ازموینې ترسره کول.

تنظیم کړئ

Kubernetes یو خورا پیاوړی سیسټم دی، مګر هر سیسټم په پای کې د ډیرو پروسو سره تړل کیدی شي. کوبیلټ ټولې پروسې او چکونه پرمخ وړي چې تاسو یې مشخص کوئ، په بیله بیا خپل.

البته، یو یتیم خدمت به سیسټم سست نه کړي، او کوبرنیټس د ځمکې څخه د اندازه کولو لپاره ډیزاین شوی. مګر که د یو خدمت پرځای یو ملیون څرګند شي ، کبلټ په ټپه پیل کیږي.

که د کوم دلیل لپاره تاسو ځای پرځای کول حذف کړئ (کانټینر ، عکس ، هرڅه) ، یوازې ډاډ ترلاسه کړئ چې بشپړ پاکول ترسره کړئ.

لاړ شه

موږ د وروستي لپاره اصلي مشوره خوندي کړه. د Go پروګرام کولو ژبه زده کړئ.

کوبرنیټس په Go کې رامینځته شوی ، ټول توسیعونه په Go کې لیکل شوي ، او د پیرودونکي-ګو پیرودونکي کتابتون هم په رسمي ډول ملاتړ کیږي.

دا د مختلف او زړه پورې شیانو لپاره کارول کیدی شي. د مثال په توګه، ستاسو د خوند لپاره د Kubernetes سیسټم پراخول. نو، تاسو کولی شئ خپل پروګرامونه د معلوماتو راټولولو، غوښتنلیکونو ځای پرځای کولو، یا په ساده ډول د کانتینرونو پاکولو لپاره وکاروئ.

د Go پروګرامینګ ژبه زده کول او د پیرودونکي-ګو ماسټر کول شاید ترټولو مهمه مشوره وي چې تاسو یې د کوبرنیټ نوي کاروونکو ته ورکوئ.

د Mail.ru کلاوډ حلونو په ملاتړ ژباړل شوی

نور څه لوستل:

  1. په کبرنیټس کې د اتوماتیک کولو درې کچې او څنګه یې په مؤثره توګه کارول.
  2. د کوبرنیټس کارګر نوډونه: ډیری کوچني یا یو څو لوی?
  3. 25 د کوبرنیټس د ځای په ځای کولو او اداره کولو لپاره ګټورې وسیلې.

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

Add a comment