PMP: Kubernetes tiem, kas izmanto vCloud

PMP: Kubernetes tiem, kas izmanto vCloud
Sveiki visiem!

Sagadījās, ka mūsu mazā komanda, lai neteiktu, ka pēdējā laikā un noteikti ne pēkšņi, ir izaugusi, lai dažus (un nākotnē visus) produktus pārvietotu uz Kubernetes.

Tam bija daudz iemeslu, taču mūsu stāsts nav par holivāru.

Mums bija maz izvēles attiecībā uz infrastruktūras bāzi. vCloud Director un vCloud Director. Mēs izvēlējāmies jaunāko un nolēmām sākt.

Atkal, pārskatot “The Hard Way”, es ļoti ātri nonācu pie secinājuma, ka vakar bija nepieciešams rīks vismaz pamata procesu automatizēšanai, piemēram, izvietošanai un izmēru noteikšanai. Iedziļinoties Google tīklā, tika atklāts tāds produkts kā VMware Container Service Extension (CSE) — atvērtā pirmkoda produkts, kas ļauj automatizēt k8s klasteru izveidi un izmēru noteikšanu vCloud lietotājiem.

Atruna: PMP ir savi ierobežojumi, taču mūsu vajadzībām tas bija ideāls. Tāpat risinājums ir jāatbalsta mākoņpakalpojumu sniedzējam, taču, tā kā servera daļa ir arī atvērtā pirmkoda, lūdziet tuvākajam menedžerim, lai tas būtu pieejams :)

Lai sāktu to lietot, jums ir nepieciešams administratora konts vCloud organizācijā un iepriekš izveidots maršrutētais tīkls klasterim (izvietošanas procesa laikā ir nepieciešama piekļuve internetam no šī tīkla, neaizmirstiet konfigurēt Firewall/NAT). Uzrunāšanai nav nozīmes. Šajā piemērā pieņemsim 10.0.240.0/24

PMP: Kubernetes tiem, kas izmanto vCloud

Tā kā pēc izveides klasteris būs kaut kā jāpārvalda, ieteicams izveidot VPN ar maršrutēšanu uz izveidoto tīklu. Mēs izmantojam standarta SSL VPN, kas konfigurēts mūsu organizācijas Edge Gateway.

Tālāk jums jāinstalē PMP klients, kurā tiks pārvaldīti k8s klasteri. Manā gadījumā tas ir strādājošs klēpjdators un pāris labi paslēpti konteineri, kas virza automatizāciju.

Klientam ir jāinstalē Python versija 3.7.3 un jaunāka versija un jāinstalē modulis vcd-cli, tāpēc instalēsim abus.

pip3 install vcd-cli

pip3 install container-service-extension

Pēc instalēšanas mēs pārbaudām pielāgotās meklētājprogrammas versiju un iegūstam šādu informāciju:

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

Negaidīti, bet labojami. Kā izrādījās, PMP ir jāpievieno kā modulis vcd-cli.
Lai to izdarītu, vispirms jāpiesakās vcd-cli mūsu organizācijā:

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

Pēc tam vcd-cli izveidos konfigurācijas failu ~/.vcd-cli/profiles.yaml
Beigās jums jāpievieno sekojošais:

extensions:
  - container_service_extension.client.cse

Pēc tam mēs vēlreiz pārbaudām:

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

Klienta instalēšanas posms ir pabeigts. Mēģināsim izvietot pirmo klasteru.
PMP ir vairākas lietošanas parametru kopas, tās visas var apskatīt šeit.

Vispirms izveidosim atslēgas bezparoles piekļuvei nākotnes klasterim. Šis punkts ir svarīgs, jo pēc noklusējuma paroles pieteikšanās mezglos tiks atspējota, un, ja neiestatīsit atslēgas, jūs varat daudz strādāt, izmantojot virtuālās mašīnas konsoles, kas nav ērti.

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

Mēģināsim sākt veidot klasteru:

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

Ja mēs saņemam kļūdu Kļūda: sesija ir beidzies vai lietotājs nav pieteicies. Lūdzu, piesakieties atkārtoti. — vēlreiz piesakieties vcd-cli pakalpojumā vCloud, kā aprakstīts iepriekš, un mēģiniet vēlreiz.

Šoreiz viss kārtībā un sācies klastera veidošanas uzdevums.

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

Uzdevuma veikšana prasīs apmēram 20 minūtes; tikmēr apskatīsim palaišanas pamatparametrus.

— tīkls — tīkls, ko izveidojām iepriekš.
—ssh-key — mūsu izveidotās atslēgas, kuras tiks ierakstītas klastera mezglos
—nodes n — Darbinieku mezglu skaits klasterī. Vienmēr būs viens galvenais, tas ir PMP ierobežojums
—enable-nfs — izveidojiet papildu mezglu NFS koplietošanai pastāvīgos sējumos. Tas ir mazliet pedāļa iespēja; mēs atgriezīsimies pie tā darbības regulēšanas nedaudz vēlāk.

Tikmēr vCloud varat vizuāli uzraudzīt klastera izveidi
PMP: Kubernetes tiem, kas izmanto vCloud

Kad klastera izveides uzdevums ir pabeigts, tas ir gatavs lietošanai.

Pārbaudīsim izvietošanas pareizību ar komandu vcd cse klastera informācija MyCluster

PMP: Kubernetes tiem, kas izmanto vCloud

Tālāk mums jāiegūst izmantojamā klastera konfigurācija kubectl

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

Un jūs varat pārbaudīt klastera statusu, izmantojot to:

PMP: Kubernetes tiem, kas izmanto vCloud

Šajā brīdī kopu var uzskatīt par nosacīti strādājošu, ja ne stāsts ar noturīgiem apjomiem. Tā kā mēs atrodamies vCloud, mēs nevarēsim izmantot vSphere Provider. Opcija --enable-nfs izstrādāts, lai izlīdzinātu šo traucējumu, taču tas pilnībā neizdevās. Nepieciešama manuāla regulēšana.

Lai sāktu, mūsu mezglam vCloud ir jāizveido atsevišķs neatkarīgs disks. Tas garantē, ka mūsu dati nepazudīs kopā ar klasteru, ja tas tiks dzēsts. Tāpat pievienojiet disku NFS

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

Pēc tam mēs ejam caur ssh (jūs tiešām izveidojāt atslēgas?) uz mūsu NFS mezglu un beidzot pievienojam disku:

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

Izveidojiet datu direktoriju un ievietojiet tajā jaunu nodalījumu:

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

Izveidosim piecus testa nodalījumus un kopīgosim tos klasterim:

>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

Pēc visas šīs burvības mēs savā klasterī varam izveidot PV un PVC kaut ko līdzīgu:
Reportieris:

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

Šeit beidzas stāsts par viena klastera tapšanu un sākas stāsts par tā dzīves ciklu. Kā bonuss ir vēl divas noderīgas pielāgotās meklētājprogrammas komandas, kas dažreiz ļauj ietaupīt resursus vai nē:

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

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

Paldies visiem par jūsu laiku, ja jums ir kādi jautājumi, jautājiet komentāros.

Avots: www.habr.com

Pievieno komentāru