CSE: Kubernetes għal dawk fil-vCloud

CSE: Kubernetes għal dawk fil-vCloud
Hello kulħadd!

Ġara li t-tim żgħir tagħna, biex ma ngħidx li reċentement, u ċertament mhux f'daqqa, kiber biex imexxi xi (u fil-futur kollha) prodotti għal Kubernetes.

Kien hemm ħafna raġunijiet għal dan, iżda l-istorja tagħna mhix dwar holivar.

Ftit kellna għażla rigward il-bażi tal-infrastruttura. Direttur vCloud u Direttur vCloud. Għażilna l-aktar ġdid u ddeċidejna li nibdew.

Għal darb'oħra, waqt li nħares minn "Il-Mixja Iebsa," malajr ħafna wasalt għall-konklużjoni li għodda għall-awtomatizzazzjoni tal-inqas proċessi bażiċi, bħall-iskjerament u d-daqs, kienet meħtieġa lbieraħ. Għaddas fil-fond fil-Google ġabet fid-dawl prodott bħal VMware Container Service Extension (CSE) - prodott ta 'sors miftuħ li jippermettilek li awtomatizza l-ħolqien u d-daqs ta' clusters k8s għal dawk f'vCloud.

Ċaħda ta' responsabbiltà: CSE għandha l-limitazzjonijiet tagħha, iżda għall-iskopijiet tagħna kienet perfetta. Ukoll, is-soluzzjoni trid tkun appoġġjata mill-fornitur tas-sħab, iżda peress li l-parti tas-server hija wkoll open-source, staqsi lill-eqreb maniġer tiegħek biex ikollha disponibbli :)

Biex tibda tużah, għandek bżonn kont ta 'amministratur fl-organizzazzjoni vCloud u netwerk inrottat maħluq qabel għall-cluster (matul il-proċess ta' skjerament, għandek bżonn aċċess għall-Internet minn dan in-netwerk, tinsiex tikkonfigura Firewall/NAT). L-indirizzar ma jimpurtax. F'dan l-eżempju, ejja nieħdu 10.0.240.0/24

CSE: Kubernetes għal dawk fil-vCloud

Peress li wara l-ħolqien, il-cluster jeħtieġ li jiġi ġestit b'xi mod, huwa rakkomandat li jkun hemm VPN b'rotta għan-netwerk maħluqa. Aħna nużaw VPN SSL standard konfigurat fuq Edge Gateway tal-organizzazzjoni tagħna.

Sussegwentement, għandek bżonn tinstalla l-klijent CSE fejn se jiġu ġestiti l-clusters k8s. Fil-każ tiegħi, dan huwa laptop li jaħdem u koppja ta 'kontenituri moħbija sew li jmexxu l-awtomazzjoni.

Il-klijent jeħtieġ verżjoni Python 3.7.3 u ogħla installata u l-modulu installat vcd-cli, Mela ejja ninstallaw it-tnejn.

pip3 install vcd-cli

pip3 install container-service-extension

Wara l-installazzjoni, niċċekkjaw il-verżjoni CSE u niksbu dan li ġej:

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

Mhux mistenni, iżda li jista' jiġi ffissat. Kif irriżulta, CSE jeħtieġ li jiġi mehmuż bħala modulu ma 'vcd-cli.
Biex tagħmel dan, l-ewwel trid tidħol vcd-cli mal-organizzazzjoni tagħna:

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

Wara dan, vcd-cli se joħloq fajl ta 'konfigurazzjoni ~/.vcd-cli/profiles.yaml
Fl-aħħar trid iżżid dan li ġej:

extensions:
  - container_service_extension.client.cse

Imbagħad nerġgħu niċċekkjaw:

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

Il-fażi tal-installazzjoni tal-klijent hija kompluta. Ejja nippruvaw niskjeraw l-ewwel cluster.
CSE għandha bosta settijiet ta 'parametri ta' użu, kollha kemm huma jistgħu jitqiesu hawnhekk.

L-ewwel, ejja noħolqu ċwievet għal aċċess mingħajr password għall-cluster futur. Dan il-punt huwa importanti, peress li b'mod awtomatiku, il-login tal-password għan-nodi se jkun diżattivat, u jekk ma tissettjax iċ-ċwievet, tista 'tikseb ħafna xogħol permezz tal-konsols tal-magni virtwali, li mhuwiex konvenjenti.

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

Ejja nippruvaw nibdew noħolqu cluster:

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

Jekk ikollna żball Żball: Is-sessjoni skadiet jew l-utent ma illoggjax. Jekk jogħġbok illoggja mill-ġdid. — erġa' illoggja vcd-cli ma' vCloud kif deskritt hawn fuq u erġa' pprova.

Din id-darba kollox huwa tajjeb u l-kompitu tal-ħolqien ta 'cluster beda.

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

Se tieħu madwar 20 minuta biex tlesti l-kompitu; sadanittant, ejja nħarsu lejn il-parametri bażiċi tat-tnedija.

—network — in-netwerk li ħloqna qabel.
—ssh-key — iċ-ċwievet li ħloqna, li se jinkitbu lin-nodi tal-cluster
—nodes n — Numru ta' nodi tal-Ħaddiema fil-cluster. Dejjem se jkun hemm kaptan wieħed, din hija limitazzjoni CSE
—enable-nfs — toħloq nodu addizzjonali għall-ishma NFS taħt volumi persistenti. Hija għażla daqsxejn ta 'pedala; nerġgħu nerġgħu nirfinaw dak li tagħmel ftit aktar tard.

Sadanittant, f'vCloud tista' tissorvelja viżwalment il-ħolqien ta' cluster
CSE: Kubernetes għal dawk fil-vCloud

Ladarba jitlesta l-kompitu tal-ħolqien ta 'cluster, ikun lest għall-użu.

Ejja niċċekkjaw il-korrettezza tal-iskjerament bil-kmand vcd cse cluster info MyCluster

CSE: Kubernetes għal dawk fil-vCloud

Sussegwentement irridu nġibu l-konfigurazzjoni tal-cluster biex nużaw kubectl

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

U tista 'tiċċekkja l-istatus tal-cluster billi tużah:

CSE: Kubernetes għal dawk fil-vCloud

F'dan il-punt, il-cluster jista 'jitqies li jaħdem b'mod kondizzjonali, jekk mhux għall-istorja b'volumi persistenti. Peress li qegħdin f'vCloud, mhux se nkunu nistgħu nużaw vSphere Provider. Għażla --enable-nfs iddisinjat biex itaffu dan l-inkonvenjent, iżda ma ħadmitx kompletament. Aġġustament manwali meħtieġ.

Biex tibda, in-nodu tagħna jeħtieġ li joħloq disk Indipendenti separat f'vCloud. Dan jiggarantixxi li d-dejta tagħna ma tisparixxix flimkien mal-cluster jekk titħassar. Ukoll, qabbad id-diska ma 'NFS

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

Wara dan, immorru permezz ssh (verament ħloqt iċ-ċwievet?) għan-node NFS tagħna u fl-aħħar qabbad id-diska:

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

Oħloq direttorju għad-dejta u arma partizzjoni ġdida hemmhekk:

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

Ejja noħolqu ħames diviżorji tat-test u naqsmuhom għall-cluster:

>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

Wara din il-maġija kollha, nistgħu noħolqu PV u PVC fil-cluster tagħna xi ħaġa bħal din:
Reporter:

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

Dan huwa fejn tispiċċa l-istorja tal-ħolqien ta 'cluster wieħed u tibda l-istorja taċ-ċiklu tal-ħajja tiegħu. Bħala bonus, hemm żewġ kmandi CSE aktar utli li jippermettulek xi kultant tiffranka r-riżorsi jew le:

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

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

Grazzi kollha tal-ħin tiegħek, jekk għandek xi mistoqsijiet, staqsi fil-kummenti.

Sors: www.habr.com

Żid kumment