Kubernetes – ийн бүрэлдэхүүнүүд
Kubernetes - ийг байршуулахдаа та кластер ажилуулна.
Kubernetes – ийн кластер нь котейнержуулсан програм-ийг ажлуулж буй “node” гэж нэрлэгддэг машинуудын багцаас бүрддэг. Кластер бүрт дор хаяж нэг node ажилладаг. Node нь програмын ажиллах бүрэлдэхүүн хэсэгүүд болох “Pod” ийг байрлуулдаг. Контроллерхэсэг /control plane/ нь кластер дахь Pod болон node-ийг удирддаг. Продакшин орчинд Контроллерхэсэг ихэвчлэн олон компьютер дээр ажилладаг ба кластер ихэвчлэн олон node –ийг ажлуулдаг. Энэ нь алдаанд тэсвэртэй байр чадвар болон хүртээмжтэй байх өндөр боломжоор хангадаг.
Энэ документээр Kubernetes кластер ажлуулахад шаардлагатай яанз бүрийн бүрэлдэхүүн хэсгүүдийг тоймлон харууллаа.
Kubernetes кластерийн бүх бүрэлдэхүүн хэсгүүдийг хооронд нь холбосон зургийг доор харуулж байна.
Контрол хэсгийн бүрэлдэхүүнүүд /control plane/
Контрол хэсгийн бүрэлдэхүүнүүд нь кластерийн тухай (ажиллах хуваарь гаргах гэх мэт) түүнчлэн кластер event(жишээ нь байршуулалтын хуулбарын талбар хангалтгүй байх үед шинэ pod асааж ажлуулах)-ийг илрүүлэх, хариулах зэрэг глобал шийдвэр гаргадаг.
Контрол хэсгийн бүрэлдэхүүнүүдийг кластерийн аль ч машин дээр ажилуулж болно. Гэсэн хэдий ч хялбар байх үүднээс скрипт тохируулахдаа контрол хэсгийн бүх бүрэлдэхүүн хэсгүүдийг ижил машин дээр ажлуулж эхлүүлдэг бөгөөд хэрэглэгчийн контейнеруудыг энэ машин дээр ажиллуулдаггүй.
Kube-apiserver
API сервер нь Kubernetes API –ийг илрүүлдэг контрол хэсгийн нэгэн бүрэлдэхүүн юм. API сервер нь Kubernetes ---ийн контрол хэсгийн урд тал юм.
Kubernetes API серверийн гол хэрэгжилт бол kube-apiserver юм. kube-apiserver нь horizontal байхаар бүтээгдсэн бөгөөд энэ нь илүү олон инстенсийг байрлуулж хэмждэг. Та kube-apiserver -ийн хэд хэдэн инстенсийг ажиллуулж, эдгээр инстенсийн хоорондох урсгалыг тэнцвэржүүлж болно.
etcd
Тогтмол, өндөр хүртээмжтэй түлхүүрийн утга хадгалалт нь бүх кластерийн өгөгдлийн хувьд Kubernetes- ийн нөөц хадгалалт болж ашиглагддаг. Хэрэв таны Kubernetes кластер нь etcd-ийг нөөц хадгалалт болгон ашигладаг бол эдгээр өгөгдлийг нөөцлөх төлөвлөгөөтэй эсэхээ шалгаарай. Мөн та албан ёсны документээс etcd-ийн талаарх гүнзгий мэдээллийг олж авах боломжтой.
kube-scheduler
Шинээр үүсгэгдсэн зангилаа байхгүй Pod-уудыг харж, ажиллуулах зангилааг сонгодог хавтгай хэсгийг хянах.
Контрол хэсгийн бүрэлдэхүүнүүд шинээр үүссэн node хуваарьлагдаагүй pod-ийг харж мөн тэдэнд ажлуулах node –ийг сонгож өгдөг.
Шийдвэр гаргах, schedule хийхэд анхаарах хүчин зүйлүүдэд дараах зүйлс орно: хувь хүний болон хамтын нөөцийн шаардлага, техник хангамж / програм хангамж / бодлогын хязгаарлалт, ижил төстэй байдал ба эсрэг хамаарлын тодорхойлолт, өгөгдөл байршил, ажлын ачааллын хөндлөнгийн оролцоо, эцсийн хугацаа.
kube-controller-manager
Контроллер процессийг ажлуулдаг контрол хэсгийн бүрэлдэхүүн.
Логикийн хувьд контроллер бүр нь тусдаа процесс боловч төвөгтэй байдалыг багасгахын тулд тэдгээрийг нэг binary болгож нэг процесст ажлуулдаг.
Эдгээр контроллеруудын зарим төрлууд нь:
cloud-controller-manager
Kubernetes контрол хэсгийн бүрэлдэхүүн бөгөөд клаудад зориулсан логик контролыг агуулдаг. cloud-controller-manager нь кластераа клауд үйлчилгээ үзүүлэгчийн API-тай холбох боломжийг олгодог бөгөөд клауд платформтой харьцдаг бүрэлдэхүүн хэсгүүдийг зөвхөн таны кластертай харьцдаг бүрэлдэхүүн хэсгүүдээс тусгаарладаг. Cloud-controller-manager нь зөвхөн таны клауд үйлчилгээ үзүүлэгчид тохирсон контроллеруудыг ажлуулдаг. Хэрэв та Kubernetes-ийг өөрийн байранд эсвэл сургалтын орчинд компьютер дээрээ ажиллуулж байгаа бол тухайн кластерт Cloud-controller-manager байхгүй.
kube-controller-manager –ийн нэгэн адил cloud-controller-manager нь хэд хэдэн логик тусдаа удирдлагыг нэг процесс болгон ажлуулж буй дан binarty-д нэгтгэдэг. Гүйцэтгэлийг сайжруулах эсвэл алдаанд тэсвэртэй байх зорилгоор horizontal байдлаар нэгээс олон хувийг ажиллуулж болно.
Дараах контроллерууд клауд үйлчилгээ үзүүлэгчээс хамааралтай байж болно:
Node бүрэлдэхүүнүүд
Node бүрэлдэхүүнүүд нь node тус бүр дээр ажилладаг бөгөөд ажиллаж байгаа pod-уудийг хадгалж Kubernetes-ийн ажиллах орчныг бүрдүүлдэг.
Kubelet
Кластерийн node бүр дээр ажилладаг agent. Энэ нь контейнеруудыг Pod дотор ажиллуулж байгаа эсэхийг баталгаажуулдаг. Kubelet нь янз бүрийн механизмуудаар хангагдсан PodSpecs багцыг авч тэдгээр PodSpec-үүд дээр тодорхойлсон контейнеруудын асуудалгүй ажиллах нөхцлийг бүрдүүлдэг. Kubelet нь Kubernetes –ийн үүсгээгүй контейнерийг удирддаггүй.
Kube-proxy
Kube-proxy бол кластерийн node бүр дээр ажилладаг сүлжээний прокси бөгөөд Kubernetes үйлчилгээний хэсэгийг хэрэгжүүлдэг.
kube-прокси нь node-үүд дээр сүлжээний дүрмийг хэрэгжүүлж зохицуулдаг. Эдгээр сүлжээний дүрмүүд нь таны кластер дотор эсвэл гаднах сүлжээний session-үүдээс таны Pod-уудтай сүлжээний холболт хийхийг зөвшөөрдөг.
Kube-proxy нь үйлдлийн системийн пакет филтер түвшинг ашигладаг.Хэрэв пакет филтер түвшинг ашиглах боломжтой бол ашиглана. Ашиглах боломжгүй бол kube-proxy урсгалыг өөрөө дамжуулдаг.
Container runtime
Container runtime бол контейнерүүдийг ажлуулдаг програм хангамж юм.
Kubernetes нь хэд хэдэн container runtime –ийг дэмждэг (Docker, containerd, CRI-O гэх мэт).
Addons
Addons нь кластер шинж чанарыг хэрэгжүүлэхийн тулд Kubernetes нөөцүүд (DaemonSet, Deployment)-ийг ашигладаг. Эдгээр нь кластерын түвшний онцлог шинж чанаруудыг хангаж байгаа тул addons нь kune-system хэмээх namespace-д хамаардаг.
DNS
Бусад addons-ийг хатуу шаарддаггүй ч бүх kubernetes кластерууд заавал кластер DNS-тэй байх ёстой.
Кластер DNS бол таны орчин дахь бусад DNS сервер (үүд) -ээс гадна тусдаа DNS сервер бөгөөд Kubernetes үйлчилгээнд зориулагдсан DNS бүртгэлийг хэрэгжүүлдэг.
Kubernetes- ийн асаасан контейнерүүд энэ DNS серверийг DNS хайлтандаа автоматаар оруулдаг.
Web UI (Dashboard) /веб хянах самбар/
Dashboard нь Kubernetes кластеруудад зориулсан ерөнхий зориулалттай, вэбэд суурилсан UI юм. Энэ нь хэрэглэгчид кластер дээр ажиллаж байгаа програмууд болон кластеруудыг өөрөө удирдах, алдааг олж засварлах боломжийг олгодог.
Container Resource Monitoring/контейнер нөөцүүдийн хяналт/
Container Resource Monitoring нь төв өгөгдлийн сан дахь контейнеруудын талаарх хэмжигдэхүүнүүдийг цаг хугацааны дарааллаар бүртгэж тухайн өгөгдлийг үзэх UI- ээр хангадаг.
Cluster-level Logging /кластерийн түвшний лог/
Cluster-level logging механизм нь контейнерийн логийг төвлөрсөн лог хадгалаглт дээр хайсан болон үзсэн интерфейстэй нь хадгалах үүрэг гүйцэтгэдэг.
-o0o-
Comments