CSE: Kubernetes ar gyfer y rhai yn vCloud

CSE: Kubernetes ar gyfer y rhai yn vCloud
Helo bawb!

Digwyddodd felly bod ein tîm bach, i beidio â dweud bod yn ddiweddar, ac yn sicr nid yn sydyn, wedi tyfu i symud rhai cynhyrchion (ac yn y dyfodol i gyd) i Kubernetes.

Roedd llawer o resymau am hyn, ond nid yw ein stori yn ymwneud â holivar.

Ychydig o ddewis oedd gennym o ran y sylfaen seilwaith. Cyfarwyddwr vCloud a Chyfarwyddwr vCloud. Fe wnaethon ni ddewis yr un mwy newydd a phenderfynu cychwyn.

Unwaith eto, wrth edrych trwy “Y Ffordd Galed,” deuthum i'r casgliad yn gyflym iawn bod angen offeryn ar gyfer awtomeiddio prosesau sylfaenol o leiaf, megis lleoli a maint, ddoe. Daeth plymiad dwfn i Google â chynnyrch o'r fath fel Estyniad Gwasanaeth Cynhwysydd VMware (CSE) i'r amlwg - cynnyrch ffynhonnell agored sy'n eich galluogi i awtomeiddio creu a maint clystyrau k8s ar gyfer y rhai yn vCloud.

Ymwadiad: Mae gan CSE ei gyfyngiadau, ond at ein dibenion ni roedd yn berffaith. Hefyd, rhaid i'r datrysiad gael ei gefnogi gan ddarparwr y cwmwl, ond gan fod rhan y gweinydd hefyd yn ffynhonnell agored, gofynnwch i'ch rheolwr agosaf ei gael :)

I ddechrau ei ddefnyddio, mae angen cyfrif gweinyddwr arnoch yn y sefydliad vCloud a rhwydwaith wedi'i lwybro'n flaenorol ar gyfer y clwstwr (yn ystod y broses leoli, mae angen mynediad Rhyngrwyd arnoch o'r rhwydwaith hwn, peidiwch ag anghofio ffurfweddu Firewall/NAT). Nid yw mynd i'r afael yn bwysig. Yn yr enghraifft hon, gadewch i ni gymryd 10.0.240.0/24

CSE: Kubernetes ar gyfer y rhai yn vCloud

Oherwydd ar ôl ei greu, bydd angen rheoli'r clwstwr rywsut, argymhellir cael VPN gyda llwybro i'r rhwydwaith a grëwyd. Rydym yn defnyddio SSL VPN safonol wedi'i ffurfweddu ar Edge Gateway ein sefydliad.

Nesaf, mae angen i chi osod y cleient CSE lle bydd y clystyrau k8s yn cael eu rheoli. Yn fy achos i, gliniadur sy'n gweithio yw hwn a chwpl o gynwysyddion cudd sy'n gyrru awtomeiddio.

Mae'r cleient angen fersiwn Python 3.7.3 ac uwch wedi'i osod a'r modiwl wedi'i osod vcd-cli, felly gadewch i ni osod y ddau.

pip3 install vcd-cli

pip3 install container-service-extension

Ar ôl gosod, rydym yn gwirio'r fersiwn CSE ac yn cael y canlynol:

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

Annisgwyl, ond y gellir ei drwsio. Fel y digwyddodd, mae angen atodi CSE fel modiwl i vcd-cli.
I wneud hyn, yn gyntaf rhaid i chi fewngofnodi vcd-cli i'n sefydliad:

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

Ar ôl hyn, bydd vcd-cli yn creu ffeil ffurfweddu ~/.vcd-cli/profiles.yaml
Ar y diwedd mae angen i chi ychwanegu'r canlynol:

extensions:
  - container_service_extension.client.cse

Yna rydym yn gwirio eto:

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

Mae cam gosod y cleient wedi'i gwblhau. Gadewch i ni geisio defnyddio'r clwstwr cyntaf.
Mae gan CSE sawl set o baramedrau defnydd, gellir gweld pob un ohonynt yma.

Yn gyntaf, gadewch i ni greu allweddi ar gyfer mynediad heb gyfrinair i'r clwstwr yn y dyfodol. Mae'r pwynt hwn yn bwysig, oherwydd yn ddiofyn, bydd mewngofnodi cyfrinair i nodau yn anabl, ac os na fyddwch chi'n gosod yr allweddi, gallwch chi gael llawer o waith trwy'r consolau peiriannau rhithwir, nad yw'n gyfleus.

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

Gadewch i ni geisio dechrau creu clwstwr:

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

Os cawn gamgymeriad Gwall: Sesiwn wedi dod i ben neu defnyddiwr heb fewngofnodi. Os gwelwch yn dda ail-fewngofnodi. — eto mewngofnodwch vcd-cli i vCloud fel y disgrifir uchod a cheisiwch eto.

Y tro hwn mae popeth yn iawn ac mae'r dasg o greu clwstwr wedi dechrau.

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

Bydd yn cymryd tua 20 munud i gwblhau'r dasg; yn y cyfamser, gadewch i ni edrych ar y paramedrau lansio sylfaenol.

—rhwydwaith — y rhwydwaith a grëwyd gennym yn gynharach.
—ssh-key — yr allweddi a grëwyd gennym, a fydd yn cael eu hysgrifennu i nodau'r clwstwr
—nodes n — Nifer y nodau Gweithiwr yn y clwstwr. Bydd un meistr bob amser, mae hwn yn gyfyngiad CSE
—enable-nfs — creu nod ychwanegol ar gyfer cyfranddaliadau NFS o dan gyfeintiau parhaus. Mae'n dipyn o opsiwn pedal; byddwn yn dychwelyd i diwnio'r hyn y mae'n ei wneud ychydig yn ddiweddarach.

Yn y cyfamser, yn vCloud gallwch fonitro creu clwstwr yn weledol
CSE: Kubernetes ar gyfer y rhai yn vCloud

Unwaith y bydd y dasg o greu clwstwr wedi'i chwblhau, mae'n barod i'w ddefnyddio.

Gadewch i ni wirio cywirdeb y gosodiad gyda'r gorchymyn gwybodaeth clwstwr cse vcd MyCluster

CSE: Kubernetes ar gyfer y rhai yn vCloud

Nesaf mae angen i ni gael y ffurfwedd clwstwr i'w ddefnyddio ciwctl

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

A gallwch wirio statws y clwstwr gan ei ddefnyddio:

CSE: Kubernetes ar gyfer y rhai yn vCloud

Ar y pwynt hwn, gellir ystyried bod y clwstwr yn gweithio'n amodol, os nad ar gyfer y stori gyda chyfrolau parhaus. Gan ein bod yn vCloud, ni fyddwn yn gallu defnyddio vSphere Provider. Opsiwn --galluogi-nfs wedi'i gynllunio i lyfnhau'r niwsans hwn, ond ni weithiodd allan yn llwyr. Angen addasiad â llaw.

I ddechrau, mae angen i'n nod greu disg Annibynnol ar wahân yn vCloud. Mae hyn yn gwarantu na fydd ein data yn diflannu ynghyd â'r clwstwr os caiff ei ddileu. Hefyd, cysylltwch y ddisg i NFS

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

Ar ôl hynny, rydyn ni'n mynd trwy ssh (rydych chi wedi creu'r allweddi mewn gwirionedd?) i'n nod NFS ac yn olaf yn cysylltu'r ddisg:

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

Creu cyfeiriadur ar gyfer data a gosod rhaniad newydd yno:

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

Gadewch i ni greu pum rhaniad prawf a'u rhannu ar gyfer y clwstwr:

>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

Ar ôl yr holl hud hwn, gallwn greu PV a PVC yn ein clwstwr rhywbeth fel hyn:
Gohebydd:

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

Dyma lle mae stori creu un clwstwr yn dod i ben a stori ei gylch bywyd yn dechrau. Fel bonws, mae dau orchymyn CSE defnyddiol arall sy'n caniatáu ichi arbed adnoddau weithiau ai peidio:

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

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

Diolch i chi i gyd am eich amser, os oes gennych unrhyw gwestiynau, gofynnwch yn y sylwadau.

Ffynhonnell: hab.com

Ychwanegu sylw