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 қабылдайтын және жергілікті және тіпті физикалық оқшауланған орталарда жоғары қолжетімді Kubernetes кластерлерін үздіксіз жеткізу және қолдау үшін nodeadm және etcdadm пайдаланатын кластердің өмірлік циклін басқару құралы.

Осы үш құрал бірге келесі тапсырмаларды орындайды:

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

Klusterkit мүмкіндіктері

  • Мульти-мастерлік қолдау (HA кластері K8s).
  • Қауіпсіз etcd кластерлерін жеткізу және басқару.
  • Физикалық оқшауланған орталарда жұмыс істеу.
  • Жылжымалы жаңартуларды және кері қайтаруды қолдайды.
  • Фланел (vxlan) сервер үшін CNI ретінде; Басқа CNI-ға қолдау көрсету жоспарлары бар.
  • Кворум жоғалғаннан кейін etcd кластерлерінің сақтық көшірмесін жасау және қалпына келтіру.
  • Басқару тақтасын жадтың және CPU уақытының таусылуынан қорғайды.

Klusterkit шешімдерінің архитектурасы

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 жүктеу пәрмені арқылы қажетті тәуелділіктерді Интернетке кіру мүмкіндігі бар компьютерге алдын ала оңай жүктеп алуға болады. Содан кейін жүктелген элементтерді (мысалы, systemd үшін 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.

Ақпарат көзі: www.habr.com

пікір қалдыру