KlusterKit

KlusterKit: Kubernetes жайылтууларын жөнөкөйлөтүү жана физикалык жактан обочолонгон жерде иштөө үчүн ачык булак куралдар топтому

KlusterKit

Бүгүн биз Platform9 GitHub'тагы Apache v2.0 лицензиясынын алкагында үч куралдан турган Klusterkitтин ачык булагы экенин жарыялоого кубанычтабыз.

Биздин кардарлар программалык камсыздоону көбүнчө Интернетке туташпаган жеке маалымат борборлорунда чыгарышат (коопсуздук же башка себептер боюнча). Бул ири компаниялар Kubernetesтин артыкчылыктарын пайдаланып, тиркемелерин модернизациялоону жана ошол эле учурда аларды тышкы дүйнө менен байланышпаган ар кандай маалымат борборлорунда жайылтууну каалашат. Бул жерде Klusterkit келип, физикалык жактан обочолонгон чөйрөлөрдө K8s кластерлерин камсыздоону жана башкарууну жеңилдетет.

Klusterkit Kubernetes өндүрүш кластеринин жашоо циклин башкаруу үчүн чогуу же өзүнчө колдонула турган үч көз карандысыз инструментти камтыйт:

  1. etcdadm, жөнөкөйлөтүлгөн etcd кластерин башкаруу үчүн CLI.
  2. nodeadm, kubeadmди кеңейтүүчү жана kubeadmге керектүү көз карандылыктарды жайылткан түйүн башкаруу үчүн CLI.
  3. cctl, кластердин жашоо циклин башкаруу куралы, ал Kubernetes коомчулугунан Cluster API'ди кабыл алган жана nodeadm жана etcdadm колдонот.

Бул үч курал чогуу төмөнкү милдеттерди аткарат:

  • Cluster API аркылуу физикалык жактан обочолонгон жергиликтүү чөйрөлөрдө жогорку жеткиликтүү etcd кластерин жана Kubernetes тактасын оңой камсыздап, башкарыңыз.
  • etcd камдык көчүрмөсүн колдонуу менен катачылыктан кийин кластердин башкаруу панелин калыбына келтирүү.
  • Кубернеттерди физикалык жактан обочолонгон чөйрөлөргө жеткирүү үчүн зарыл болгон бардык артефакттарды таңгактоо.

Klusterkit өзгөчөлүктөрү

  • Көп мастер колдоосу (HA кластери K8s).
  • Коопсуз etcd кластерлерин жеткирүү жана башкаруу.
  • Физикалык жактан обочолонгон чөйрөдө иштөө.
  • Толук жаңыртууларды жана артка кайтарууну колдойт.
  • Flanel (vxlan) арка үчүн CNI катары; Башка CNIлерди колдоо пландары бар.
  • Кворум жоголгондон кийин etcd кластерлеринин резервдик көчүрмөсүн сактоо жана калыбына келтирүү.
  • Башкаруу панелин эстутум жана CPU убактысы түгөнүп калуудан коргойт.

Klusterkit Solution Architecture

KlusterKit

Күнөөлөргө сабырдуулук жана жөнөкөйлүк үчүн Klusterkit Kubernetes кластеринин метадайындарын сактоо үчүн бир cctl-state.yaml файлын колдонот. Cctl CLI аркылуу сиз Kubernetes кластеринин жашоо циклин ушул абал файлы бар каалаган машинада башкара аласыз. Бул оператордун ноутбуку же Kubernetes кластеринин бир бөлүгү болгон башка компьютер болушу мүмкүн.

Cctl кластерлердеги CRUD операциялары үчүн китепкана катары кластер-api интерфейсин ишке ашырат жана чакырат. Ал колдонот ssh-провайдери, Platform9дан ачык булактуу металл кластер-api провайдери, ал өз кезегинде кластерде операцияларды аткаруу үчүн etcdadm жана nodeadm чакырат.

Klusterkit жана анын компоненттерин кантип колдонуу керек:

1 – Үч куралдын кайсынысын болбосун go get буйругу менен оңой чогултса болот:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 - Бул аткарылуучу файлдарды пакеттөө жана максаттуу машиналарга көчүрүүгө болот, ал жерде жогорку жеткиликтүү Kubernetes кластери иштеши керек. Nodeadm жана etcdadm файлдарын версия каталогдоруна жайгаштырыңыз:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – Эгер сизге Kubernetes кластерин локалдык түрдө, физикалык жактан обочолонгон чөйрөдө уюштуруу керек болсо, nodeadm жана etcdadm жүктөө буйругун колдонуп, Интернетке кирүү мүмкүнчүлүгү бар компьютерге керектүү көз карандылыктарды алдын ала оңой жүктөсө болот. Андан кийин жүктөлүп алынган элементтерди (мисалы, kubelet жана kubelet бирдиги үчүн системалык файл, CNI аткарылуучу файлдар, kubeadm файлы, бардык контейнер сүрөттөрү, анын ичинде Kubernetes, сакталган сүрөт жана системалык файл, ж.б. контейнер сүрөтү жана тиешелүү конфигурация файлдары) физикалык жактан обочолонгон хостторго оңой көчүрүлүшү мүмкүн. cctl, nodeadm жана etcdadm менен. (Чоо-жайын караңыз Магазин).

4 – Баары ордунда болгондон кийин, сиз бир нече буйруктар менен биринчи Kubernetes кластерин түзө аласыз:

– Алгач кластер үчүн эсептик дайындарды түзүңүз.

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

– Андан кийин кластердик объект түзүңүз. –жардам колдоого алынган опциялардын тизмесин көрсөтөт.

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– Акыры, кластерде биринчи машинаны түзүңүз.

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

Көбүрөөк документтерди бул жерден окуңуз GitHub.

Source: www.habr.com

Комментарий кошуу