CSE: Kubernetes rau cov hauv vCloud

CSE: Kubernetes rau cov hauv vCloud
Nyob zoo txhua leej txhua tus!

Nws thiaj li tshwm sim hais tias peb pab pawg me, tsis yog hais tias tsis ntev los no, thiab yeej tsis dheev, tau loj hlob mus rau qee qhov (thiab yav tom ntej tag nrho) cov khoom rau Kubernetes.

Muaj ntau qhov laj thawj rau qhov no, tab sis peb zaj dab neeg tsis yog hais txog holivar.

Peb muaj kev xaiv me ntsis txog lub hauv paus infrastructure. vCloud Director thiab vCloud Director. Peb xaiv qhov tshiab thiab txiav txim siab pib.

Ib zaug ntxiv, saib los ntawm "Txoj Kev nyuaj," Kuv tau los xaus sai sai tias cov cuab yeej rau kev ua haujlwm tsawg kawg yog cov txheej txheem yooj yim, xws li kev xa tawm thiab qhov loj me, xav tau nag hmo. Kev dhia dej tob rau hauv Google coj mus rau lub teeb xws li cov khoom lag luam xws li VMware Container Service Extension (CSE) - cov khoom lag luam qhib uas tso cai rau koj los kho qhov tsim thiab qhov loj ntawm k8s pawg rau cov hauv vCloud.

Kev lees paub: CSE muaj nws cov kev txwv, tab sis rau peb lub hom phiaj nws zoo meej. Tsis tas li ntawd, cov kev daws teeb meem yuav tsum tau txais kev txhawb nqa los ntawm tus neeg muab kev pabcuam huab, tab sis txij li cov server feem tseem yog qhov qhib, nug koj tus neeg saib xyuas ze tshaj plaws kom nws muaj :)

Txhawm rau pib siv nws, koj xav tau tus thawj tswj hwm tus account hauv vCloud lub koom haum thiab yav dhau los tsim kev sib txuas network rau pawg (thaum lub sijhawm xa mus, koj xav tau Internet nkag los ntawm lub network no, tsis txhob hnov ​​​​qab teeb tsa Firewall / NAT). Qhov chaw nyob tsis muaj teeb meem. Hauv qhov piv txwv no, cia peb coj 10.0.240.0/24

CSE: Kubernetes rau cov hauv vCloud

Txij li thaum tom qab tsim, pawg yuav tsum tau tswj hwm qee yam, nws raug pom zoo kom muaj VPN nrog routing rau lub network tsim. Peb siv tus qauv SSL VPN teeb tsa ntawm peb lub koom haum Edge Gateway.

Tom ntej no, koj yuav tsum nruab CSE tus neeg siv khoom qhov twg k8s pawg yuav raug tswj hwm. Hauv kuv rooj plaub, qhov no yog lub khoos phis tawj ua haujlwm thiab ob peb lub thawv zoo zais uas tsav automation.

Tus neeg siv yuav tsum tau Python version 3.7.3 thiab siab dua tau teeb tsa thiab cov qauv teeb tsa vcd ua, yog li cia peb nruab ob qho tib si.

pip3 install vcd-cli

pip3 install container-service-extension

Tom qab kev teeb tsa, peb tshawb xyuas CSE version thiab tau txais cov hauv qab no:

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

Unexpected, tab sis fixable. Raws li nws tau muab tawm, CSE yuav tsum tau txuas ua ib qho module rau vcd-cli.
Txhawm rau ua qhov no, koj yuav tsum xub nkag rau hauv vcd-cli rau peb lub koom haum:

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

Tom qab no, vcd-cli yuav tsim cov ntaub ntawv teeb tsa ~/.vcd-cli/profiles.yaml
Thaum kawg koj yuav tsum tau ntxiv cov hauv qab no:

extensions:
  - container_service_extension.client.cse

Tom qab ntawd peb rov xyuas dua:

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

Cov neeg siv khoom installation theem tiav. Wb sim mus deploy thawj pawg.
CSE muaj ntau yam kev siv tsis tau, txhua tus tuaj yeem pom ntawm no.

Ua ntej, cia peb tsim cov yuam sij rau passwordless nkag mus rau pawg yav tom ntej. Cov ntsiab lus no yog qhov tseem ceeb, txij li lub neej ntawd, lo lus zais nkag mus rau cov nodes yuav raug xiam, thiab yog tias koj tsis teeb cov yuam sij, koj tuaj yeem tau txais ntau txoj haujlwm los ntawm lub tshuab virtual consoles, uas tsis yooj yim.

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

Cia peb sim pib tsim ib pawg:

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

Yog tias peb tau txais qhov yuam kev yuam kev: Session tau tas sij hawm los yog tus neeg siv tsis tau nkag rau hauv. Thov rov nkag mus. - rov nkag rau hauv vcd-cli rau vCloud raws li tau piav qhia saum toj no thiab sim dua.

Lub sijhawm no txhua yam zoo thiab txoj haujlwm ntawm kev tsim pawg tau pib.

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

Nws yuav siv sijhawm li 20 feeb los ua kom tiav txoj haujlwm; lub sijhawm no, cia peb saib cov txheej txheem pib pib.

-network - lub network peb tsim ua ntej.
-ssh-key — cov yuam sij peb tsim, uas yuav muab sau rau hauv pawg nodes
—nodes n — Tus naj npawb ntawm cov neeg ua hauj lwm nodes hauv pawg. Yuav muaj ib tus tswv, qhov no yog CSE txwv
-enable-nfs - tsim ib qho ntxiv rau NFS sib koom hauv cov ntim tsis tu ncua. Nws yog ib qho kev xaiv pedal me ntsis; peb yuav rov qab mus kho qhov nws ua me ntsis tom qab.

Lub caij no, hauv vCloud koj tuaj yeem saib xyuas qhov tsim ntawm pawg
CSE: Kubernetes rau cov hauv vCloud

Thaum lub luag haujlwm ntawm kev tsim ib pawg ua tiav, nws yog npaj rau kev siv.

Cia peb xyuas qhov tseeb ntawm kev xa mus nrog cov lus txib vcd cse pawg info MyCluster

CSE: Kubernetes rau cov hauv vCloud

Tom ntej no peb yuav tsum tau txais cov pawg configuration siv kubtl ua

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

Thiab koj tuaj yeem tshawb xyuas cov xwm txheej ntawm pawg siv nws:

CSE: Kubernetes rau cov hauv vCloud

Lub sijhawm no, pawg tuaj yeem suav tias ua haujlwm raws cai, yog tias tsis yog rau zaj dab neeg nrog cov ntim tsis tu ncua. Txij li thaum peb nyob hauv vCloud, peb yuav tsis tuaj yeem siv vSphere Provider. Kev xaiv --enable-nfs tsim los kom tshem tawm qhov teeb meem no, tab sis nws tsis ua haujlwm tag nrho. Yuav tsum tau hloov kho manually.

Txhawm rau pib, peb cov node yuav tsum tsim kom muaj kev ywj pheej disk cais hauv vCloud. Qhov no tau lees tias peb cov ntaub ntawv yuav tsis ploj nrog rau pawg yog tias nws raug tshem tawm. Ntxiv thiab, txuas lub disk rau NFS

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

Tom qab ntawd, peb mus ntawm ssh (koj tiag tiag tsim cov yuam sij?) rau peb NFS node thiab thaum kawg txuas lub 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

Tsim ib daim ntawv teev npe rau cov ntaub ntawv thiab mount ib qho tshiab muab faib rau ntawd:

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

Cia peb tsim tsib qhov kev xeem sib faib thiab muab faib rau pawg:

>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

Tom qab tag nrho cov khawv koob no, peb tuaj yeem tsim PV thiab PVC hauv peb pawg xws li:
Tus neeg sau xov xwm:

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

Qhov no yog qhov uas zaj dab neeg ntawm kev tsim ntawm ib pawg xaus thiab zaj dab neeg ntawm nws lub neej voj voog pib. Raws li qhov nyiaj ntxiv, muaj ob qhov txiaj ntsig CSE cov lus txib uas tso cai rau koj qee zaum txuag cov peev txheej lossis tsis:

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

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

Ua tsaug rau koj lub sijhawm, yog tias koj muaj lus nug, nug hauv cov lus.

Tau qhov twg los: www.hab.com

Ntxiv ib saib