Hola a todos!
Gertatu zen gure talde txikia, zer esanik ez duela gutxi, eta zalantzarik gabe ez bat-batean, produktu batzuk (eta etorkizunean guztiak) Kubernetesera mugitzeko hazi egin dela.
Arrazoi asko zeuden, baina gure istorioa ez da holivarri buruzkoa.
Aukera gutxi genuen azpiegituren oinarriari dagokionez. vCloud Zuzendaria eta vCloud Zuzendaria. Berriagoa aukeratu genuen eta hastea erabaki genuen.
Berriro ere, "The Hard Way"-tik begiratuta, oso azkar ondorioztatu nuen atzo gutxienez oinarrizko prozesuak automatizatzeko tresna bat behar zela, hedapena eta dimentsionatzea. Google-n murgiltze sakon batek VMware Container Service Extension (CSE) bezalako produktu bat atera zuen argitara, vCloud-en daudenentzat k8s klusterren sorrera eta tamaina automatizatzeko aukera ematen duen kode irekiko produktua.
Lege-oharra: CSEk bere mugak ditu, baina gure helburuetarako ezin hobea zen. Gainera, soluzioak hodeiko hornitzaileak onartu behar du, baina zerbitzariaren zatia ere kode irekikoa denez, eskatu hurbilen duzun kudeatzaileari eskuragarri izan dezala :)
Erabiltzen hasteko, vCloud erakundean administratzaile-kontu bat eta aldez aurretik sortutako sare bideratu bat behar dituzu klusterrako (hedapen-prozesuan zehar, sare honetatik Interneterako sarbidea behar duzu, ez ahaztu Firewall/NAT konfiguratzea). Helbideak ez du axola. Adibide honetan, har dezagun 10.0.240.0/24
Sortu ondoren, clusterra nolabait kudeatu beharko denez, sorturiko sarera bideratzearekin VPN bat izatea gomendatzen da. Gure erakundearen Edge Gateway-n konfiguratutako SSL VPN estandar bat erabiltzen dugu.
Ondoren, k8s klusterrak kudeatuko diren CSE bezeroa instalatu behar duzu. Nire kasuan, hau da, funtzionatzen duen ordenagailu eramangarri bat eta automatizazioa gidatzen duten ondo ezkutuko edukiontzi pare bat.
Bezeroak Python 3.7.3 bertsioa eta berriagoa instalatuta eta modulua instalatuta behar du
pip3 install vcd-cli
pip3 install container-service-extension
Instalatu ondoren, CSE bertsioa egiaztatu eta hurrengoa lortzen dugu:
# vcd cse version
Error: No such command "cse".
Ezustekoa, baina konpondu daitekeena. Horrexegatik, CSE modulu gisa erantsi behar da vcd-cli-ra.
Horretarako, lehenengo vcd-cli saioa hasi behar duzu gure erakundean:
# vcd login MyCloud.provider.com org-dev admin
Password:
admin logged in, org: 'org-dev', vdc: 'org-dev_vDC01'
Horren ondoren, vcd-cli-k konfigurazio fitxategi bat sortuko du ~/.vcd-cli/profiles.yaml
Bukaeran honako hau gehitu behar duzu:
extensions:
- container_service_extension.client.cse
Ondoren, berriro egiaztatuko dugu:
# vcd cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.5.0
Bezeroaren instalazio fasea amaitu da. Saia gaitezen lehen clusterra zabaltzen.
CSEk hainbat erabilera-parametro ditu, denak ikus daitezke
Lehenik eta behin, sor ditzagun etorkizuneko klusterera pasahitzik gabeko sarbidea izateko gakoak. Puntu hau garrantzitsua da, lehenespenez, pasahitza nodoetan saioa hasteko desgaituta egongo baita, eta gakoak ezartzen ez badituzu, lan asko lor dezakezu makina birtualen kontsolen bidez, eta hori ez da erosoa.
# 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.
Saia gaitezen kluster bat sortzen hasten:
vcd cse cluster create MyCluster --network k8s_cluster_net --ssh-key ~/.ssh/id_rsa.pub --nodes 3 --enable-nfs
Errore bat jasotzen badugu Errorea: saioa iraungi da edo erabiltzailea ez da saioa hasi. Mesedez, berriro hasi saioa. β Hasi saioa berriro vcd-cli vCloud-en goian azaldu bezala eta saiatu berriro.
Oraingoan dena ondo dago eta kluster bat sortzeko lana hasi da.
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 minutu inguru beharko ditu zeregina burutzeko; bitartean, ikus ditzagun oinarrizko abiarazteko parametroak.
βsarea β lehenago sortu genuen sarea.
βssh-key β sortu ditugun gakoak, cluster nodoetan idatziko direnak
βnodes n β Klustereko Worker nodo kopurua. Beti egongo da maisu bat, hau CSE muga bat da
βenable-nfs β sortu NFS partekatzeetarako nodo gehigarri bat bolumen iraunkorretan. Pedalaren aukera apur bat da; geroxeago itzuliko gara egiten duena sintonizatzera.
Bien bitartean, vCloud-en kluster baten sorrera ikus dezakezu
Kluster bat sortzeko zeregina amaitutakoan, erabiltzeko prest dago.
Egiazta dezagun inplementazioa zuzena den komandoarekin vcd cse cluster info MyCluster
Ondoren, kluster konfigurazioa erabili behar dugu kubectl
# vcd cse cluster config MyCluster > ./.kube/config
Eta klusterraren egoera egiaztatu dezakezu hura erabiliz:
Une honetan, klusterrak baldintzapean funtzionatzen duela har daiteke, bolumen iraunkorrak dituen istorioa ez bada. vCloud-en gaudenez, ezin izango dugu vSphere Provider erabili. Aukera --enable-nfs traba hori leuntzeko diseinatua, baina ez zen guztiz konpontzen. Eskuzko doikuntza behar da.
Hasteko, gure nodoak disko independente bat sortu behar du vCloud-en. Horrek bermatzen du gure datuak ezabatu egingo direla klusterrekin batera ezabatzen bada. Gainera, konektatu diskoa NFSra
# vcd disk create nfs-shares-1 100g --description 'Kubernetes NFS shares'
# vcd vapp attach mycluster nfsd-9604 nfs-shares-1
Horren ostean, ssh bidez joango gara (benetan sortu dituzu gakoak?) gure NFS nodora eta azkenik diskoa konektatuko dugu:
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
Sortu datuetarako direktorio bat eta muntatu partizio berri bat bertan:
mkdir /export
echo '/dev/sdb1 /export ext4 defaults 0 0' >> /etc/fstab
mount -a
Sor ditzagun bost proba-partizio eta parteka ditzagun klustererako:
>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
Magia honen guztiaren ondoren, PV eta PVC gure klusterrean honelako zerbait sor dezakegu:
Berriemailea:
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
Hor amaitzen da kluster baten sorreraren istorioa eta bere bizi-zikloaren istorioa hasten da. Hobari gisa, beste bi CSE komando erabilgarriak daude batzuetan baliabideak gordetzeko edo ez gordetzeko aukera ematen dutenak:
#Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π΄ΠΎ 8 Π²ΠΎΡΠΊΠ΅Ρ Π½ΠΎΠ΄
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8
#ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π½ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Ρ ΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
>vcd cse node delete MyCluster node-1a2v node-6685 --yes
Eskerrik asko guztioi zure denboragatik, galderarik baduzu, galdetu iruzkinetan.
Iturria: www.habr.com