CSE: vCloud-da olanlar üçün Kubernetes

CSE: vCloud-da olanlar üçün Kubernetes
Hello!

Elə oldu ki, kiçik komandamız, bu yaxınlarda və əlbəttə ki, birdən-birə deyil, bəzi məhsulları (və gələcəkdə hamısını) Kubernetes-ə köçürmək üçün böyüdü.

Bunun bir çox səbəbi var idi, amma bizim hekayəmiz holivarla bağlı deyil.

İnfrastruktur bazası ilə bağlı seçimimiz az idi. vCloud direktoru və vCloud direktoru. Biz daha yenisini seçdik və başlamaq qərarına gəldik.

Bir daha “Çətin yol”a nəzər salaraq, mən çox tez belə qənaətə gəldim ki, dünən yerləşdirmə və ölçü kimi ən azı əsas prosesləri avtomatlaşdırmaq üçün alətə ehtiyac var. Google-a dərindən nəzər salmaq vCloud-da olanlar üçün k8s klasterlərinin yaradılmasını və ölçülərini avtomatlaşdırmağa imkan verən açıq mənbəli məhsul olan VMware Konteyner Xidməti Genişləndirilməsi (CSE) kimi məhsulu üzə çıxardı.

İmtina: CSE-nin məhdudiyyətləri var, lakin bizim məqsədlərimiz üçün mükəmməl idi. Həmçinin, həll bulud provayderi tərəfindən dəstəklənməlidir, lakin server hissəsi də açıq mənbə olduğundan, ən yaxın menecerinizdən onun mövcud olmasını xahiş edin :)

Onu istifadə etməyə başlamaq üçün sizə vCloud təşkilatında administrator hesabı və klaster üçün əvvəlcədən yaradılmış marşrutlaşdırılmış şəbəkə lazımdır (yerləşdirmə prosesi zamanı bu şəbəkədən İnternetə çıxış lazımdır, Firewall/NAT-ı konfiqurasiya etməyi unutmayın). Ünvan fərq etməz. Bu misalda 10.0.240.0/24 götürək

CSE: vCloud-da olanlar üçün Kubernetes

Yaradıldıqdan sonra klaster bir şəkildə idarə edilməli olduğundan, yaradılmış şəbəkəyə marşrutlaşdırıcı bir VPN-nin olması tövsiyə olunur. Biz təşkilatımızın Edge Gateway-də konfiqurasiya edilmiş standart SSL VPN-dən istifadə edirik.

Sonra, k8s klasterlərinin idarə olunacağı CSE müştərisini quraşdırmalısınız. Mənim vəziyyətimdə bu işləyən noutbuk və avtomatlaşdırmanı idarə edən bir neçə yaxşı gizli konteynerdir.

Müştəri Python 3.7.3 və daha yüksək versiyanın quraşdırılmasını və modulun quraşdırılmasını tələb edir vcd-cli, gəlin hər ikisini quraşdıraq.

pip3 install vcd-cli

pip3 install container-service-extension

Quraşdırıldıqdan sonra CSE versiyasını yoxlayırıq və aşağıdakıları əldə edirik:

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

Gözlənilməz, lakin düzəldilə bilər. Məlum oldu ki, CSE vcd-cli-yə modul kimi qoşulmalıdır.
Bunun üçün ilk öncə təşkilatımıza vcd-cli daxil olmalısınız:

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

Bundan sonra vcd-cli konfiqurasiya faylı yaradacaq ~/.vcd-cli/profiles.yaml
Sonda aşağıdakıları əlavə etməlisiniz:

extensions:
  - container_service_extension.client.cse

Sonra yenidən yoxlayırıq:

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

Müştərinin quraşdırılması mərhələsi tamamlandı. Gəlin birinci klasteri yerləşdirməyə çalışaq.
CSE-də bir neçə istifadə parametrləri dəsti var, onların hamısına baxmaq olar burada.

Əvvəlcə gələcək klasterə parolsuz daxil olmaq üçün açarlar yaradaq. Bu məqam vacibdir, çünki standart olaraq qovşaqlara parol girişi deaktiv ediləcək və açarları təyin etməsəniz, virtual maşın konsolları vasitəsilə çox iş əldə edə bilərsiniz, bu da əlverişli deyil.

# 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.

Bir klaster yaratmağa çalışaq:

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

Səhv alırıqsa Xəta: Sessiyanın vaxtı bitib və ya istifadəçi daxil olmayıb. Zəhmət olmasa yenidən daxil olun. — yuxarıda təsvir olunduğu kimi vcd-cli-yə yenidən vCloud-a daxil olun və yenidən cəhd edin.

Bu dəfə hər şey qaydasındadır və klaster yaratmaq tapşırığı başlayıb.

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

Tapşırığı yerinə yetirmək təxminən 20 dəqiqə çəkəcək, bu vaxt əsas işəsalma parametrlərinə baxaq.

—şəbəkə — əvvəllər yaratdığımız şəbəkə.
—ssh-key — yaratdığımız açarlar, klaster qovşaqlarına yazılacaq
—qovşaqlar n — Klasterdəki İşçi qovşaqlarının sayı. Həmişə bir usta olacaq, bu CSE məhdudiyyətidir
—enable-nfs — davamlı həcmlər altında NFS paylaşımları üçün əlavə node yaradın. Bu, bir az pedal variantıdır; biz onun nə etdiyini tənzimləməyə bir az sonra qayıdacayıq.

Eyni zamanda, vCloud-da klasterin yaradılmasını vizual olaraq izləyə bilərsiniz
CSE: vCloud-da olanlar üçün Kubernetes

Klaster yaratmaq tapşırığı tamamlandıqdan sonra o, istifadəyə hazırdır.

Komanda ilə yerləşdirmənin düzgünlüyünü yoxlayaq vcd cse klaster məlumatı MyCluster

CSE: vCloud-da olanlar üçün Kubernetes

Sonra istifadə etmək üçün klaster konfiqurasiyasını əldə etməliyik kubectl

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

Bundan istifadə edərək klasterin vəziyyətini yoxlaya bilərsiniz:

CSE: vCloud-da olanlar üçün Kubernetes

Bu nöqtədə, klaster davamlı həcmli hekayə üçün olmasa da, şərti olaraq işləyən hesab edilə bilər. Biz vCloud-da olduğumuz üçün vSphere Provider-dən istifadə edə bilməyəcəyik. Seçim --enable-nfs bu narahatlığı aradan qaldırmaq üçün nəzərdə tutulmuşdur, lakin tamamilə nəticə vermədi. Manual tənzimləmə tələb olunur.

Başlamaq üçün qovşağımız vCloud-da ayrıca Müstəqil disk yaratmalıdır. Bu, məlumatlarımızın silindiyi təqdirdə klasterlə birlikdə itməyəcəyinə zəmanət verir. Həmçinin, diski NFS-ə qoşun

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

Bundan sonra ssh vasitəsilə (açarları həqiqətən yaratmısınız?) NFS qovşağımıza gedirik və nəhayət diski birləşdiririk:

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

Məlumat üçün qovluq yaradın və orada yeni bölmə quraşdırın:

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

Gəlin beş test bölməsi yaradaq və onları klaster üçün paylaşaq:

>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

Bütün bu sehrdən sonra biz klasterimizdə PV və PVC-ni belə yarada bilərik:
Müxbir:

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

Burada bir klasterin yaradılması hekayəsi bitir və onun həyat dövrü hekayəsi başlayır. Bonus olaraq, bəzən resurslara qənaət etməyə və ya etməməyə imkan verən daha iki faydalı CSE əmri var:

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

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

Vaxt ayırdığınız üçün hamınıza təşəkkür edirəm, hər hansı bir sualınız varsa, şərhlərdə soruşun.

Mənbə: www.habr.com

Добавить комментарий