CSE: Kubernetes bakeng sa ba vCloud

CSE: Kubernetes bakeng sa ba vCloud
Hello mong le e mong!

Ho ile ha etsahala hore sehlopha sa rona se senyenyane, re se ke ra bolela hore haufinyane, 'me ka sebele eseng ka tšohanyetso, se hōlile ho tsamaisa lihlahisoa tse ling (le nakong e tlang) ho Kubernetes.

Ho ne ho e-na le mabaka a mangata a sena, empa pale ea rona ha e bue ka phomolo.

Re ne re se na boikhethelo mabapi le motheo oa litšebeletso tsa motheo. vCloud Director le vCloud Director. Re ile ra khetha e ncha ’me ra etsa qeto ea ho qala.

Hape, ha ke sheba "The Hard Way," ke ile ka potlakela ho fihlela qeto ea hore sesebelisoa sa ho iketsetsa bonyane lits'ebetso tsa mantlha, tse kang ho tsamaisa le ho etsa boholo, se ne se hlokahala maobane. Ho kenella ka botebo ho Google ho hlahisitse sehlahisoa se kang VMware Container Service Extension (CSE) - sehlahisoa se bulehileng se u lumellang hore u iketsetse popo le boholo ba lihlopha tsa k8s bakeng sa ba vCloud.

Boitlhotlhollo: CSE e na le mefokolo ea eona, empa molemong oa rona e ne e nepahetse. Hape, tharollo e tlameha ho tšehetsoa ke mofani oa leru, empa kaha karolo ea seva e boetse e le mohloli o bulehileng, botsa mookameli oa hau ea haufi hore a fumanehe :)

Ho qala ho e sebelisa, o hloka ak'haonte ea motsamaisi mokhatlong oa vCloud le marang-rang a neng a entsoe pele bakeng sa sehlopha (nakong ea ts'ebetso ea ho tsamaisa, o hloka phihlello ea Marang-rang ho tsoa marang-rang ana, u se ke oa lebala ho lokisa Firewall / NAT). Ho bua ha ho na taba. Mohlala ona, ha re nke 10.0.240.0/24

CSE: Kubernetes bakeng sa ba vCloud

Ho tloha ka mor'a pōpo, sehlopha se tla hloka ho laoloa ka tsela e itseng, ho kgothaletswa ho ba le VPN e nang le routing ho marang-rang a entsoeng. Re sebelisa SSL VPN e tloaelehileng e hlophisitsoeng ho Edge Gateway ea mokhatlo oa rona.

E latelang, o hloka ho kenya moreki oa CSE moo lihlopha tsa k8s li tla laoloa. Tabeng ea ka, ena ke laptop e sebetsang le lijana tse 'maloa tse patiloeng hantle tse tsamaisang boiketsetso.

Moreki o hloka mofuta oa Python 3.7.3 le holimo ho kenyeletsoa mme module e kentsoe vcd-cli, kahoo a re ke re kenya bobeli.

pip3 install vcd-cli

pip3 install container-service-extension

Kamora ho kenya, re hlahloba mofuta oa CSE mme re fumana tse latelang:

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

E sa lebelloang, empa e ka lokisoa. Joalokaha ho bile teng, CSE e hloka ho hokelloa joalo ka mojule ho vcd-cli.
Ho etsa sena, o tlameha ho qala ka ho kena vcd-cli mokhatlong oa rona:

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

Kamora sena, vcd-cli e tla theha faele ea tlhophiso ~/.vcd-cli/profiles.yaml
Qetellong, o hloka ho eketsa tse latelang:

extensions:
  - container_service_extension.client.cse

Ebe re hlahloba hape:

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

Mokhahlelo oa ho kenya bareki o phethetsoe. Ha re leke ho tsamaisa sehlopha sa pele.
CSE e na le lihlopha tse 'maloa tsa lisebelisoa tsa tšebeliso, kaofela ha tsona li ka bonoa mona.

Taba ea pele, ha re theheng linotlolo tsa phihlello e se nang password ho sehlopha sa kamoso. Ntlha ena ke ea bohlokoa, kaha ka ho sa feleng, ho kena ka password ho li-node ho tla holofala, 'me haeba u sa behe linotlolo, u ka fumana mosebetsi o mongata ka li-consoles tsa mochine, tse sa lokelang.

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

Ha re leke ho qala ho theha sehlopha:

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

Haeba re fumana phoso Phoso: Nako e felile kapa mosebelisi ha a kena. Ke kopa o kene hape. - hape kena vcd-cli ho vCloud joalo ka ha ho hlalositsoe ka holimo ebe o leka hape.

Lekhetlong lena ntho e 'ngoe le e' ngoe e hantle 'me mosebetsi oa ho theha sehlopha o qalile.

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

Ho tla nka metsotso e ka bang 20 ho phethela mosebetsi; khabareng, ha re shebeng lintlha tsa mantlha tsa ho qala.

— marangrang — marangrang ao re a entseng pejana.
-ssh-key - linotlolo tseo re li entseng, tse tla ngolloa ho lihlopha tsa lihlopha
-nodes n - Palo ea li-node tsa Basebetsi sehlopheng. Ho tla lula ho na le monghali a le mong, ona ke moeli oa CSE
-enable-nfs - theha node e eketsehileng bakeng sa likarolo tsa NFS tlas'a meqolo e tsitsitseng. Ke khetho ea pedal; re tla khutlela ho lokisa seo e se etsang hamorao.

Ho sa le joalo, ho vCloud u ka shebella ka mahlo ho thehoa ha sehlopha
CSE: Kubernetes bakeng sa ba vCloud

Hang ha mosebetsi oa ho theha sehlopha o phethiloe, e se e loketse ho sebelisoa.

A re hlahlobeng ho nepahala ha ho tsamaisoa ka taelo lintlha tsa sehlopha sa vcd cse MyCluster

CSE: Kubernetes bakeng sa ba vCloud

Ka mor'a moo re hloka ho fumana tlhophiso ea cluster ho e sebelisa kubctl

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

'Me u ka sheba boemo ba sehlopha seo u se sebelisang:

CSE: Kubernetes bakeng sa ba vCloud

Mothating ona, sehlopha se ka nkuoa se sebetsa ka maemo, haeba e se bakeng sa pale e nang le melumo e phehellang. Kaha re vCloud, re ke ke ra khona ho sebelisa vSphere Provider. Khetho --etsa-nfs e etselitsoe ho kokobetsa khathatso ena, empa ha ea ka ea sebetsa ka botlalo. Ho hlokahala phetoho ka letsoho.

Ho qala, node ea rona e hloka ho theha disk e ikemetseng e ikemetseng ho vCloud. Sena se tiisa hore data ea rona e ke ke ea nyamela hammoho le sehlopha haeba e ka hlakoloa. Hape, hokela disk ho NFS

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

Kamora moo, re ea ka ssh (u hlile u thehile linotlolo?) ho node ea rona ea NFS mme qetellong re hokela disk:

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

Theha lethathamo la lintlha 'me u kenye karolo e ncha moo:

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

Ha re theheng likarolo tse hlano tsa liteko 'me re li arolelane bakeng sa sehlopha:

>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

Kamora boselamose bona bohle, re ka theha PV le PVC sehlopheng sa rona ntho e kang ena:
Motlalehi:

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

Mona ke moo pale ea ho bōptjoa ha sehlopha se le seng e qetellang 'me pale ea potoloho ea bophelo ba eona e qala. Joaloka bonase, ho na le litaelo tse ling tse peli tsa CSE tse u lumellang hore ka linako tse ling u boloke lisebelisoa kapa che:

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

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

Ke leboha bohle ka nako ea hau, haeba u na le lipotso, botsa maikutlong.

Source: www.habr.com

Eketsa ka tlhaloso