CSE: vCloud дээр байгаа хүмүүст зориулсан Kubernetes

CSE: vCloud дээр байгаа хүмүүст зориулсан Kubernetes
хүн бүрт Сайн байна уу!

Манай жижиг баг саяхан, мэдээжийн хэрэг гэнэт биш, зарим бүтээгдэхүүнийг (мөн ирээдүйд бүх) Kubernetes руу зөөхөөр томорсон юм.

Үүнд олон шалтгаан байсан ч бидний түүх холиварын тухай биш юм.

Дэд бүтцийн суурьтай холбоотой сонголт бидэнд бага байсан. vCloud захирал ба vCloud захирал. Бид шинэ хувилбарыг сонгоод эхлэхээр шийдсэн.

Дахин нэг удаа "Хэцүү арга зам"-ыг судалж үзээд би өчигдөр наад зах нь суурь процессуудыг автоматжуулах хэрэгсэл, тухайлбал байршуулах, хэмжээсийг тохируулах шаардлагатай байна гэсэн дүгнэлтэд хүрсэн. Google-д гүнзгий нэвтэрснээр VMware Container Service Extension (CSE) зэрэг бүтээгдэхүүн гарч ирэв - энэ нь vCloud дээр байгаа хүмүүст k8s кластер үүсгэх, хэмжээг тохируулах боломжийг автоматжуулах боломжийг олгодог нээлттэй эхийн бүтээгдэхүүн юм.

Анхааруулга: CSE өөрийн хязгаарлалттай боловч бидний зорилгын хувьд энэ нь төгс байсан. Мөн уг шийдлийг үүлэн үйлчилгээ үзүүлэгч дэмжсэн байх ёстой, гэхдээ серверийн хэсэг нь бас нээлттэй эх сурвалж учраас хамгийн ойрын менежерээсээ үүнийг бэлэн байлгахыг хүс :)

Үүнийг ашиглаж эхлэхийн тулд танд vCloud байгууллага дахь администраторын бүртгэл болон кластерт зориулж өмнө нь үүсгэсэн чиглүүлсэн сүлжээ хэрэгтэй (байршуулах явцад танд энэ сүлжээнээс интернет нэвтрэх шаардлагатай. Галт хана/NAT тохируулахаа бүү мартаарай). Хаяг хийх нь хамаагүй. Энэ жишээнд 10.0.240.0/24-ийг авч үзье

CSE: vCloud дээр байгаа хүмүүст зориулсан Kubernetes

Үүсгэсэний дараа кластерыг ямар нэгэн байдлаар удирдах шаардлагатай тул үүсгэсэн сүлжээнд чиглүүлэх VPN-тэй байхыг зөвлөж байна. Бид байгууллагынхаа Edge Gateway дээр тохируулагдсан стандарт SSL VPN ашигладаг.

Дараа нь та k8s кластеруудыг удирдах CSE клиентийг суулгах хэрэгтэй. Миний хувьд энэ бол ажиллаж байгаа зөөврийн компьютер, автоматжуулалтыг удирддаг хэд хэдэн сайн далд сав юм.

Үйлчлүүлэгч нь Python 3.7.3 ба түүнээс дээш хувилбарыг суулгаж, модулийг суулгасан байхыг шаарддаг vcd-cli, тэгэхээр хоёуланг нь суулгая.

pip3 install vcd-cli

pip3 install container-service-extension

Суулгасны дараа бид CSE хувилбарыг шалгаад дараахь зүйлийг авна.

# vcd cse version
Error: No such command "cse".

Гэнэтийн, гэхдээ засах боломжтой. Үүнээс харахад CSE-ийг vcd-cli-д модуль болгон хавсаргах шаардлагатай болсон.
Үүнийг хийхийн тулд та эхлээд манай байгууллагад vcd-cli-ээр нэвтрэх ёстой.

# vcd login MyCloud.provider.com org-dev admin
Password: 
admin logged in, org: 'org-dev', vdc: 'org-dev_vDC01'

Үүний дараа vcd-cli тохиргооны файл үүсгэнэ ~/.vcd-cli/profiles.yaml
Төгсгөлд нь та дараахь зүйлийг нэмэх хэрэгтэй.

extensions:
  - container_service_extension.client.cse

Дараа нь бид дахин шалгана:

# vcd cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.5.0

Үйлчлүүлэгчийг суулгах үе шат дууссан. Эхний кластерыг байрлуулахыг хичээцгээе.
CSE нь хэрэглээний параметрүүдийн хэд хэдэн багцтай бөгөөд бүгдийг нь харах боломжтой энд.

Эхлээд ирээдүйн кластерт нууц үггүй нэвтрэх түлхүүрүүдийг үүсгэцгээе. Энэ цэг нь чухал, учир нь анхдагчаар зангилаа руу нэвтрэх нууц үг идэвхгүй болох бөгөөд хэрэв та товчлууруудыг тохируулаагүй бол виртуал машины консолоор дамжуулан маш их ажил хийх боломжтой бөгөөд энэ нь тийм ч тохиромжтой биш юм.

# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Кластер үүсгэж эхлэхийг хичээцгээе:

vcd cse cluster create MyCluster --network k8s_cluster_net --ssh-key ~/.ssh/id_rsa.pub --nodes 3 --enable-nfs

Хэрэв бид алдаа гарвал Алдаа: Сеансын хугацаа дууссан эсвэл хэрэглэгч нэвтэрч ороогүй байна. Дахин нэвтэрнэ үү. — дээр дурдсанчлан vcd-cli руу vCloud руу дахин нэвтэрч дахин оролдоно уу.

Энэ удаад бүх зүйл сайхан болж, кластер байгуулах ажил эхэлсэн.

cluster operation: Creating cluster vApp 'MyCluster' (38959587-54f4-4a49-8f2e-61c3a3e879e0) from template 'photon-v2_k8-1.12_weave-2.3.0' (revision 1)

Даалгаврыг гүйцэтгэхэд ойролцоогоор 20 минут шаардагдах бөгөөд энэ хооронд эхлүүлэх үндсэн параметрүүдийг харцгаая.

—сүлжээ — бидний өмнө нь үүсгэсэн сүлжээ.
—ssh-түлхүүр — бидний үүсгэсэн түлхүүрүүд бөгөөд тэдгээр нь кластерын зангилаанд бичигдэх болно
—nodes n — Кластер дахь Ажилчны зангилааны тоо. Үргэлж нэг мастер байх болно, энэ нь CSE хязгаарлалт юм
—enable-nfs — байнгын эзэлхүүн дор NFS хувьцааны нэмэлт зангилаа үүсгэнэ. Энэ нь жаахан дөрөөний сонголт юм; бид хэсэг хугацааны дараа түүний тохируулга руу буцах болно.

Үүний зэрэгцээ, vCloud дээр та кластер үүсгэхийг нүдээр хянах боломжтой
CSE: vCloud дээр байгаа хүмүүст зориулсан Kubernetes

Кластер үүсгэх ажил дууссаны дараа үүнийг ашиглахад бэлэн болно.

Тушаалын тусламжтайгаар байршуулалтын зөв эсэхийг шалгацгаая vcd cse кластерын мэдээлэл MyCluster

CSE: vCloud дээр байгаа хүмүүст зориулсан Kubernetes

Дараа нь бид ашиглах кластерын тохиргоог авах хэрэгтэй кубектл

# vcd cse cluster config MyCluster > ./.kube/config

Та үүнийг ашиглан кластерийн статусыг шалгаж болно:

CSE: vCloud дээр байгаа хүмүүст зориулсан Kubernetes

Энэ үед бөөгнөрөл нь байнгын боть бүхий түүх биш бол нөхцөлт ажиллаж байгаа гэж үзэж болно. Бид vCloud-д байгаа тул vSphere Provider-ийг ашиглах боломжгүй болно. Сонголт --enable-nfs Энэ таагүй байдлыг арилгах зорилготой байсан ч бүрэн бүтсэнгүй. Гараар тохируулах шаардлагатай.

Эхлэхийн тулд манай зангилаа vCloud дээр тусдаа бие даасан диск үүсгэх шаардлагатай. Энэ нь бидний өгөгдөл устгагдсан тохиолдолд кластертай хамт алга болохгүй гэсэн баталгаа юм. Мөн дискийг NFS-д холбоно уу

# vcd disk create nfs-shares-1 100g --description 'Kubernetes NFS shares'
# vcd vapp attach mycluster nfsd-9604 nfs-shares-1

Үүний дараа бид ssh-ээр дамжуулан (та үнэхээр түлхүүрүүдийг үүсгэсэн үү?) NFS зангилаа руу очиж, эцэст нь дискийг холбоно.

root@nfsd-9604:~# parted /dev/sdb
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) unit GB
(parted) mkpart primary 0 100
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 100GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name     Flags
 1      0.00GB  100GB  100GB               primary

(parted) quit
root@nfsd-9604:~# mkfs -t ext4 /dev/sdb1
Creating filesystem with 24413696 4k blocks and 6111232 inodes
Filesystem UUID: 8622c0f5-4044-4ebf-95a5-0372256b34f0
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Өгөгдлийн лавлах үүсгээд тэнд шинэ хуваалтыг холбоно уу:

mkdir /export
echo '/dev/sdb1  /export   ext4  defaults   0 0' >> /etc/fstab
mount -a

Таван туршилтын хуваалтыг үүсгэж кластерт зориулж хуваалцъя:

>cd /export
>mkdir vol1 vol2 vol3 vol4 vol5
>vi /etc/exports
#Добавим это в конец файла
/export/vol1 *(rw,sync,no_root_squash,no_subtree_check)
/export/vol2 *(rw,sync,no_root_squash,no_subtree_check)
/export/vol3 *(rw,sync,no_root_squash,no_subtree_check)
/export/vol4 *(rw,sync,no_root_squash,no_subtree_check)
/export/vol5 *(rw,sync,no_root_squash,no_subtree_check)
#:wq! ;)
#Далее - экспортируем разделы
>exportfs -r

Энэ бүх ид шидийн дараа бид PV болон PVC-ийг кластертаа дараах байдлаар үүсгэж болно.
Сурвалжлагч:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-vol1
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    # Same IP as the NFS host we ssh'ed to earlier.
    server: 10.150.200.22
    path: "/export/vol1"
EOF

PVC:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 10Gi
EOF

Эндээс нэг кластер үүссэн түүх дуусч, амьдралын мөчлөгийн түүх эхэлдэг. Урамшууллын хувьд заримдаа нөөцийг хэмнэх эсвэл хадгалахгүй байх боломжийг олгодог өөр хоёр хэрэгтэй CSE тушаалууд байдаг:

#Увеличиваем размер кластера до 8 воркер нод
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8

#Выводим ненужные ноды из кластера с их последующим удалением
>vcd cse node delete MyCluster node-1a2v node-6685 --yes

Цаг зав гаргасан та бүхэнд баярлалаа, хэрэв танд асуух зүйл байвал сэтгэгдэл дээр асуугаарай.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх