CSE: Kubernetes fyrir þá sem eru í vCloud

CSE: Kubernetes fyrir þá sem eru í vCloud
Halló allir!

Það gerðist svo að litla teymið okkar, svo ekki sé meira sagt, nýlega, og alls ekki skyndilega, hefur vaxið til að flytja sumar (og í framtíðinni allar) vörur til Kubernetes.

Það voru margar ástæður fyrir þessu, en sagan okkar er ekki um holivar.

Við höfðum lítið val varðandi grunninn. vCloud Director og vCloud Director. Við völdum þann nýrri og ákváðum að byrja.

Enn og aftur, þegar ég leitaði í gegnum „The Hard Way“, komst ég mjög fljótt að þeirri niðurstöðu að tæki til að gera að minnsta kosti sjálfvirkan grunnferla, eins og uppsetningu og stærðarsnið, væri þörf í gær. Djúp kafa í Google leiddi í ljós vöru eins og VMware Container Service Extension (CSE) - opinn uppspretta vara sem gerir þér kleift að gera sjálfvirkan stofnun og stærð k8s klasa fyrir þá sem eru í vCloud.

Fyrirvari: CSE hefur sínar takmarkanir, en í okkar tilgangi var það fullkomið. Lausnin verður líka að vera studd af skýjaveitunni, en þar sem miðlarahlutinn er einnig opinn skaltu biðja næsta stjórnanda um að hafa hann tiltækan :)

Til að byrja að nota það þarftu stjórnandareikning í vCloud stofnuninni og áður búið til beint netkerfi fyrir þyrpinguna (meðan á dreifingarferlinu stendur þarftu netaðgang frá þessu neti, ekki gleyma að stilla Firewall/NAT). Heimilisfang skiptir ekki máli. Í þessu dæmi skulum við taka 10.0.240.0/24

CSE: Kubernetes fyrir þá sem eru í vCloud

Þar sem eftir stofnun þarf að stjórna þyrpingunni á einhvern hátt, er mælt með því að hafa VPN með leið á stofnaða netið. Við notum staðlað SSL VPN sem er stillt á Edge Gateway fyrirtækis okkar.

Næst þarftu að setja upp CSE biðlarann ​​þar sem k8s klösunum verður stjórnað. Í mínu tilfelli er þetta vinnandi fartölva og nokkrir vel faldir ílát sem knýja sjálfvirkni.

Viðskiptavinurinn krefst þess að Python útgáfu 3.7.3 og nýrri sé uppsett og einingin uppsett vcd-cli, svo við skulum setja upp bæði.

pip3 install vcd-cli

pip3 install container-service-extension

Eftir uppsetningu athugum við CSE útgáfuna og fáum eftirfarandi:

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

Óvænt, en hægt að laga. Eins og það kom í ljós þarf að tengja CSE sem einingu við vcd-cli.
Til að gera þetta verður þú fyrst að skrá þig inn vcd-cli í samtökin okkar:

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

Eftir þetta mun vcd-cli búa til stillingarskrá ~/.vcd-cli/profiles.yaml
Í lokin þarftu að bæta við eftirfarandi:

extensions:
  - container_service_extension.client.cse

Þá athugum við aftur:

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

Uppsetningarfasa viðskiptavinarins er lokið. Við skulum reyna að dreifa fyrsta klasanum.
CSE hefur nokkur sett af notkunarbreytum, þær allar er hægt að skoða hér.

Fyrst skulum við búa til lykla fyrir lykilorðslausan aðgang að framtíðarþyrpingunni. Þetta atriði er mikilvægt, þar sem sjálfgefið er að innskráning með lykilorði að hnútum verður óvirk, og ef þú stillir ekki lyklana geturðu fengið mikla vinnu í gegnum leikjatölvur sýndarvéla, sem er ekki þægilegt.

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

Við skulum reyna að byrja að búa til klasa:

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

Ef við fáum villu Villa: Fundur er útrunninn eða notandi ekki skráður inn. Vinsamlegast skráðu þig aftur inn. — skráðu þig aftur inn vcd-cli í vCloud eins og lýst er hér að ofan og reyndu aftur.

Að þessu sinni er allt í lagi og verkefnið að búa til klasa er hafið.

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

Það mun taka um það bil 20 mínútur að klára verkefnið; Í millitíðinni skulum við skoða helstu ræsingarfæribreytur.

—net — netið sem við bjuggum til áðan.
—ssh-lykill — lyklarnir sem við bjuggum til, sem verða skrifaðir á þyrpinguna
—hnútar n — Fjöldi starfsmannahnúta í þyrpingunni. Það verður alltaf einn meistari, þetta er CSE takmörkun
—enable-nfs — búðu til viðbótarhnút fyrir NFS hlutdeild undir viðvarandi magni. Það er svolítið pedali valkostur; við munum snúa aftur til að stilla hvað það gerir aðeins síðar.

Á meðan, í vCloud geturðu sjónrænt fylgst með stofnun klasa
CSE: Kubernetes fyrir þá sem eru í vCloud

Þegar verkefninu að búa til klasa er lokið er það tilbúið til notkunar.

Við skulum athuga réttmæti dreifingarinnar með skipuninni vcd cse þyrping upplýsingar MyCluster

CSE: Kubernetes fyrir þá sem eru í vCloud

Næst þurfum við að fá klasastillinguna til að nota kubectl

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

Og þú getur athugað stöðu klasans með því að nota það:

CSE: Kubernetes fyrir þá sem eru í vCloud

Á þessum tímapunkti má líta á klasann sem skilyrt virki, ef ekki væri sagan með viðvarandi bindi. Þar sem við erum í vCloud munum við ekki geta notað vSphere Provider. Valkostur --virkja-nfs hannað til að jafna þetta ónæði, en það tókst ekki alveg. Handvirk stilling nauðsynleg.

Til að byrja þarf hnúturinn okkar að búa til sérstakan óháðan disk í vCloud. Þetta tryggir að gögnin okkar hverfa ekki ásamt klasanum ef þeim er eytt. Tengdu líka diskinn við NFS

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

Eftir það förum við í gegnum ssh (þú bjóst virkilega til lyklana?) í NFS hnútinn okkar og tengjum að lokum diskinn:

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

Búðu til möppu fyrir gögn og settu upp nýja skipting þar:

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

Við skulum búa til fimm prófunarsneiðar og deila þeim fyrir klasann:

>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

Eftir allan þennan töfra getum við búið til PV og PVC í þyrpingunni okkar eitthvað á þessa leið:
Fréttamaður:

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

Þar lýkur sagan um stofnun eins klasa og sagan um lífsferil hans hefst. Sem bónus eru tvær gagnlegar CSE skipanir í viðbót sem gera þér kleift að vista auðlindir eða ekki:

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

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

Þakka þér öllum fyrir tíma þinn, ef þú hefur einhverjar spurningar skaltu spyrja í athugasemdunum.

Heimild: www.habr.com

Bæta við athugasemd