CSE: Kubernetes para sa mga naa sa vCloud

CSE: Kubernetes para sa mga naa sa vCloud
Hello sa tanan!

Nahitabo nga ang among gamay nga team, dili sa pag-ingon nga bag-o lang, ug siguradong dili kalit, mitubo aron ibalhin ang pipila (ug sa umaabot nga tanan) nga mga produkto sa Kubernetes.

Adunay daghang mga hinungdan niini, apan ang among istorya dili bahin sa holivar.

Kami adunay gamay nga kapilian bahin sa base sa imprastraktura. vCloud Director ug vCloud Director. Gipili namo ang mas bag-o ug mihukom nga magsugod.

Sa makausa pa, nagtan-aw sa "Ang Lisud nga Dalan," dali kaayo kong nakahinapos nga ang usa ka himan alang sa pag-automate sa labing menos mga batakang proseso, sama sa pag-deploy ug pagsukod, gikinahanglan kagahapon. Ang usa ka lawom nga pag-dive sa Google nagpakita sa usa ka produkto sama sa VMware Container Service Extension (CSE) - usa ka open source nga produkto nga nagtugot kanimo sa pag-automate sa paghimo ug pagsukod sa mga k8s clusters alang niadtong anaa sa vCloud.

Disclaimer: Ang CSE adunay mga limitasyon, apan alang sa among katuyoan kini perpekto. Usab, ang solusyon kinahanglan suportahan sa cloud provider, apan tungod kay ang bahin sa server bukas usab nga gigikanan, hangyoa ang imong labing duol nga manager nga magamit kini :)

Aron masugdan ang paggamit niini, kinahanglan nimo ang usa ka account sa tagdumala sa organisasyon sa vCloud ug usa ka kaniadto nga gihimo nga ruta nga network alang sa cluster (sa panahon sa proseso sa pag-deploy, kinahanglan nimo ang pag-access sa Internet gikan sa kini nga network, ayaw kalimti ang pag-configure sa Firewall / NAT). Dili igsapayan ang pag-address. Niini nga pananglitan, atong kuhaon ang 10.0.240.0/24

CSE: Kubernetes para sa mga naa sa vCloud

Tungod kay pagkahuman sa paghimo, ang cluster kinahanglan nga madumala sa usa ka paagi, girekomenda nga adunay usa ka VPN nga adunay ruta sa gihimo nga network. Gigamit namo ang standard SSL VPN nga gi-configure sa Edge Gateway sa among organisasyon.

Sunod, kinahanglan nimo nga i-install ang kliyente sa CSE kung diin ang mga k8s cluster madumala. Sa akong kaso, kini usa ka nagtrabaho nga laptop ug usa ka magtiayon nga maayo nga natago nga mga sudlanan nga nagmaneho sa automation.

Ang kliyente nagkinahanglan sa Python nga bersyon 3.7.3 ug mas taas nga na-install ug ang module na-install vcd-cli, mao nga atong i-install ang duha.

pip3 install vcd-cli

pip3 install container-service-extension

Human sa pag-instalar, among susihon ang bersyon sa CSE ug makuha ang mosunod:

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

Wala damha, apan masulbad. Ingon sa nahimo, ang CSE kinahanglan nga gilakip ingon usa ka module sa vcd-cli.
Aron mahimo kini, kinahanglan ka una nga mag-log in sa vcd-cli sa among organisasyon:

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

Human niini, ang vcd-cli maghimo og configuration file ~/.vcd-cli/profiles.yaml
Sa katapusan kinahanglan nimo nga idugang ang mosunod:

extensions:
  - container_service_extension.client.cse

Unya atong susihon pag-usab:

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

Ang yugto sa pag-instalar sa kliyente nahuman. Atong sulayan ang pag-deploy sa unang cluster.
Ang CSE adunay daghang mga set sa mga parameter sa paggamit, silang tanan mahimong tan-awon dinhi.

Una, maghimo kita og mga yawe alang sa walay password nga pag-access sa umaabot nga cluster. Kini nga punto hinungdanon, tungod kay pinaagi sa default, ang pag-login sa password sa mga node ma-disable, ug kung dili nimo ibutang ang mga yawe, makakuha ka daghang trabaho pinaagi sa mga virtual machine console, nga dili kombenyente.

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

Atong sulayan ang pagsugod sa paghimo og cluster:

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

Kung kita adunay sayup Sayop: Na-expire na ang sesyon o wala naka-log in ang user. Palihug pag-login pag-usab. — pag-log in vcd-cli sa vCloud sama sa gihulagway sa ibabaw ug sulayi pag-usab.

Niining higayona maayo ang tanan ug nagsugod na ang tahas sa paghimo og cluster.

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

Nagkinahanglan kini og mga 20 ka minuto aron makompleto ang buluhaton; sa kasamtangan, atong tan-awon ang sukaranang mga parameter sa paglansad.

—network — ang network nga among gibuhat kaniadto.
—ssh-key — ang mga yawe nga among gibuhat, nga isulat sa mga cluster node
—nodes n — Gidaghanon sa Worker node sa cluster. Adunay kanunay nga usa ka agalon, kini usa ka limitasyon sa CSE
-enable-nfs - paghimo og dugang nga node alang sa NFS shares ubos sa padayon nga volume. Kini usa ka gamay nga kapilian sa pedal; mobalik kami sa pag-tune kung unsa ang mahimo niini sa ulahi.

Sa kasamtangan, sa vCloud mahimo nimong makita nga makita ang paghimo sa usa ka cluster
CSE: Kubernetes para sa mga naa sa vCloud

Kung nahuman na ang tahas sa paghimo og cluster, andam na kini gamiton.

Atong susihon ang pagkahusto sa pag-deploy gamit ang mando vcd cse cluster info MyCluster

CSE: Kubernetes para sa mga naa sa vCloud

Sunod kinahanglan naton makuha ang configuration sa cluster nga gamiton kubectl

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

Ug mahimo nimong susihon ang kahimtang sa cluster gamit kini:

CSE: Kubernetes para sa mga naa sa vCloud

Niini nga punto, ang cluster mahimong makonsiderar nga kondisyon nga nagtrabaho, kung dili alang sa istorya nga adunay padayon nga mga volume. Tungod kay naa kami sa vCloud, dili kami makagamit sa vSphere Provider. Opsyon --enable-nfs gidisenyo sa pagpahapsay niini nga kasamok, apan kini wala molampos sa hingpit. Gikinahanglan ang manual adjustment.

Sa pagsugod, ang among node kinahanglan nga maghimo usa ka bulag nga Independent disk sa vCloud. Gigarantiyahan niini nga dili mawala ang among datos kauban ang cluster kung kini matangtang. Usab, ikonektar ang disk sa NFS

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

Pagkahuman niana, moadto kami pinaagi sa ssh (gibuhat gyud nimo ang mga yawe?) Sa among NFS node ug sa katapusan ikonektar ang 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

Paghimo usa ka direktoryo alang sa datos ug i-mount ang usa ka bag-ong partisyon didto:

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

Maghimo kita og lima ka mga partisyon sa pagsulay ug ipaambit kini alang sa cluster:

>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

Human niining tanan nga salamangka, makahimo kita og PV ug PVC sa atong cluster nga sama niini:
Reporter:

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

Dinhi natapos ang istorya sa pagmugna sa usa ka cluster ug nagsugod ang istorya sa siklo sa kinabuhi niini. Isip usa ka bonus, adunay duha pa ka mapuslanon nga CSE nga mga sugo nga nagtugot kanimo sa pag-save usahay sa mga kapanguhaan o dili:

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

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

Salamat sa tanan sa imong oras, kung adunay ka pangutana, pangutana sa mga komento.

Source: www.habr.com

Idugang sa usa ka comment