CSE: Kubernetes kwa wale walio katika vCloud

CSE: Kubernetes kwa wale walio katika vCloud
Hello kila mtu!

Ilifanyika kwamba timu yetu ndogo, bila kusema kwamba hivi karibuni, na kwa hakika si ghafla, imeongezeka ili kuhamisha baadhi (na katika siku zijazo zote) bidhaa kwa Kubernetes.

Kulikuwa na sababu nyingi za hii, lakini hadithi yetu sio juu ya likizo.

Tulikuwa na chaguo kidogo kuhusu msingi wa miundombinu. Mkurugenzi wa vCloud na Mkurugenzi wa vCloud. Tulichagua mpya zaidi na tukaamua kuanza.

Kwa mara nyingine tena, nikitazama "Njia Ngumu," nilifikia hitimisho haraka sana kwamba zana ya kufanya otomatiki angalau michakato ya kimsingi, kama vile kupeleka na kuweka ukubwa, ilihitajika jana. Kuzama kwa kina katika Google kumedhihirisha bidhaa kama vile Upanuzi wa Huduma ya VMware Container (CSE) - bidhaa huria inayokuruhusu kugeuza kiotomatiki kwa vikundi vya k8s kwa wale walio katika vCloud.

Kanusho: CSE ina mapungufu yake, lakini kwa madhumuni yetu ilikuwa kamili. Pia, suluhisho lazima liungwe mkono na mtoaji wa wingu, lakini kwa kuwa sehemu ya seva pia ni chanzo-wazi, muulize meneja wako wa karibu aipate :)

Ili kuanza kuitumia, unahitaji akaunti ya msimamizi katika shirika la vCloud na mtandao uliopangwa hapo awali kwa kikundi (wakati wa mchakato wa kupeleka, unahitaji upatikanaji wa mtandao kutoka kwa mtandao huu, usisahau kusanidi Firewall/NAT). Kuhutubia haijalishi. Katika mfano huu, hebu tuchukue 10.0.240.0/24

CSE: Kubernetes kwa wale walio katika vCloud

Kwa kuwa baada ya uumbaji, nguzo itahitaji kusimamiwa kwa namna fulani, inashauriwa kuwa na VPN na njia ya mtandao iliyoundwa. Tunatumia SSL VPN ya kawaida iliyosanidiwa kwenye Edge Gateway ya shirika letu.

Ifuatayo, unahitaji kusakinisha mteja wa CSE ambapo nguzo za k8s zitasimamiwa. Kwa upande wangu, hii ni kompyuta ndogo inayofanya kazi na vyombo kadhaa vilivyofichwa vizuri ambavyo huendesha otomatiki.

Mteja anahitaji toleo la Python 3.7.3 na toleo jipya zaidi kusakinishwa na moduli imewekwa vcd-cli, kwa hivyo wacha tusakinishe zote mbili.

pip3 install vcd-cli

pip3 install container-service-extension

Baada ya usakinishaji, tunaangalia toleo la CSE na kupata zifuatazo:

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

Isiyotarajiwa, lakini inaweza kurekebishwa. Kama ilivyotokea, CSE inahitaji kuambatishwa kama moduli kwa vcd-cli.
Ili kufanya hivyo, lazima kwanza uingie vcd-cli kwa shirika letu:

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

Baada ya hayo, vcd-cli itaunda faili ya usanidi ~/.vcd-cli/profiles.yaml
Mwishowe, unahitaji kuongeza zifuatazo:

extensions:
  - container_service_extension.client.cse

Kisha tunaangalia tena:

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

Awamu ya ufungaji wa mteja imekamilika. Wacha tujaribu kupeleka nguzo ya kwanza.
CSE ina seti kadhaa za vigezo vya matumizi, zote zinaweza kutazamwa hapa.

Kwanza, hebu tuunde funguo za ufikiaji usio na nenosiri kwa nguzo ya baadaye. Hatua hii ni muhimu, kwa kuwa kwa default, kuingia kwa nenosiri kwa nodes kutazimwa, na ikiwa hutaweka funguo, unaweza kupata kazi nyingi kupitia vifungo vya mashine ya virtual, ambayo si rahisi.

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

Wacha tujaribu kuanza kuunda nguzo:

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

Ikiwa tunapata kosa Hitilafu: Muda wa Kipindi umekwisha au mtumiaji hajaingia. Tafadhali ingia tena. - tena ingia vcd-cli kwa vCloud kama ilivyoelezwa hapo juu na ujaribu tena.

Wakati huu kila kitu kiko sawa na kazi ya kuunda nguzo imeanza.

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

Itachukua kama dakika 20 kukamilisha kazi; wakati huo huo, wacha tuangalie vigezo vya msingi vya uzinduzi.

-mtandao - mtandao tuliounda hapo awali.
-ssh-key - funguo ambazo tumeunda, ambazo zitaandikwa kwa nodi za nguzo
-nodi n - Idadi ya nodi za Wafanyakazi kwenye nguzo. Kutakuwa na bwana mmoja kila wakati, hii ni kizuizi cha CSE
-wezesha-nfs - tengeneza nodi ya ziada kwa hisa za NFS chini ya viwango vinavyoendelea. Ni chaguo kidogo la kanyagio; tutarejea kurekebisha kile inachofanya baadaye kidogo.

Wakati huo huo, katika vCloud unaweza kufuatilia kuibua uundaji wa nguzo
CSE: Kubernetes kwa wale walio katika vCloud

Mara tu kazi ya kuunda nguzo imekamilika, iko tayari kutumika.

Hebu tuangalie usahihi wa kupelekwa kwa amri vcd cse maelezo ya nguzo MyCluster

CSE: Kubernetes kwa wale walio katika vCloud

Ifuatayo tunahitaji kupata usanidi wa nguzo kutumia kubectl

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

Na unaweza kuangalia hali ya nguzo ukitumia:

CSE: Kubernetes kwa wale walio katika vCloud

Katika hatua hii, nguzo inaweza kuchukuliwa kuwa inafanya kazi kwa masharti, ikiwa si kwa hadithi yenye juzuu zinazoendelea. Kwa kuwa tuko katika vCloud, hatutaweza kutumia vSphere Provider. Chaguo --wezesha-nfs iliyoundwa ili kulainisha kero hii, lakini haikufaulu kabisa. Marekebisho ya mwongozo yanahitajika.

Kuanza, nodi yetu inahitaji kuunda diski inayojitegemea katika vCloud. Hii inahakikisha kwamba data yetu haitapotea pamoja na nguzo ikiwa itafutwa. Pia, unganisha diski kwa NFS

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

Baada ya hayo, tunapitia ssh (uliunda funguo kweli?) kwa nodi yetu ya NFS na mwishowe unganisha diski:

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

Unda saraka ya data na uweke kizigeu kipya hapo:

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

Wacha tuunde sehemu tano za majaribio na tuzishiriki kwa nguzo:

>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

Baada ya uchawi huu wote, tunaweza kuunda PV na PVC kwenye nguzo yetu kitu kama hiki:
Mwandishi:

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

Hapa ndipo hadithi ya kuundwa kwa nguzo moja inapoishia na hadithi ya mzunguko wa maisha yake huanza. Kama bonasi, kuna amri mbili muhimu zaidi za CSE ambazo hukuruhusu kuokoa rasilimali au la:

#Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра Π΄ΠΎ 8 Π²ΠΎΡ€ΠΊΠ΅Ρ€ Π½ΠΎΠ΄
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8

#Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½ΠΎΠ΄Ρ‹ ΠΈΠ· кластСра с ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
>vcd cse node delete MyCluster node-1a2v node-6685 --yes

Asante nyote kwa wakati wako, ikiwa una maswali yoyote, uliza kwenye maoni.

Chanzo: mapenzi.com

Kuongeza maoni