CSE: Kubernetes maka ndị nọ na vCloud

CSE: Kubernetes maka ndị nọ na vCloud
Ndewo onye ọ bụla!

O mere na obere ìgwè anyị, ọ bụghị ikwu na nso nso a, na ọ bụghị na mberede, toro ịkwaga ụfọdụ (na n'ọdịnihu) ngwaahịa na Kubernetes.

Enwere ọtụtụ ihe kpatara nke a, mana akụkọ anyị abụghị maka holivar.

Anyị nwere obere nhọrọ gbasara ntọala akụrụngwa. Onye isi vCloud na onye isi vCloud. Anyị họọrọ nke ọhụrụ wee kpebie ịmalite.

Ọzọkwa, na-ele anya site na "The Hard Way," M nnọọ ngwa ngwa bịa na nkwubi okwu na ngwá ọrụ maka akpaaka opekempe usoro, dị ka nkenye na size, chọrọ ụnyaahụ. Ntuba miri emi n'ime Google wetara ngwaahịa dị ka VMware Container Service Extension (CSE) - ngwaahịa mepere emepe nke na-enye gị ohere ịmebe imepụta na nha nke ụyọkọ k8s maka ndị nọ na vCloud.

Disclaimer: CSE nwere oke ya, mana maka ebumnuche anyị ọ zuru oke. Ọzọkwa, onye na-eweta igwe ojii ga-akwadorịrị ihe ngwọta ahụ, mana ebe ọ bụ na akụkụ nkesa nwekwara oghere, jụọ onye njikwa kacha nso ka ọ dị :)

Iji malite iji ya, ị ga-achọ akaụntụ nchịkwa na vCloud nzukọ yana netwọk e mepụtara na mbụ maka ụyọkọ (n'oge usoro ntinye, ị chọrọ ịnweta Ịntanetị site na netwọk a, echefula ịhazi Firewall/NAT). Ịgwa okwu adịghị mkpa. N'ihe atụ a, ka anyị were 10.0.240.0/24

CSE: Kubernetes maka ndị nọ na vCloud

Ebe ọ bụ na mgbe e kere eke, ụyọkọ ahụ ga-achọ ka a ga-ejikwa n'ụzọ ụfọdụ, a na-atụ aro ka ịnwe VPN na-agagharị na netwọk nke emepụtara. Anyị na-eji ọkọlọtọ SSL VPN ahaziri na Edge Gateway nzukọ anyị.

Ọzọ, ịkwesịrị ịwụnye onye ahịa CSE ebe a ga-ejikwa ụyọkọ k8s. N'ọnọdụ m, nke a bụ laptọọpụ na-arụ ọrụ yana arịa ole na ole zoro ezo nke ọma na-anya akpaaka.

Onye ahịa chọrọ ụdị Python 3.7.3 na elu arụnyere na modul arụnyere vcd-cli, yabụ ka anyị tinye ha abụọ.

pip3 install vcd-cli

pip3 install container-service-extension

Mgbe echichi gasịrị, anyị na-elele ụdị CSE wee nweta ihe ndị a:

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

Ihe a na-atụghị anya ya, mana enwere ike idozi. Dịka ọ tụgharịrị, CSE kwesịrị ka etinye ya dịka modul na vcd-cli.
Iji mee nke a, ị ga-ebu ụzọ banye vcd-cli na nzukọ anyị:

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

Mgbe nke a gasịrị, vcd-cli ga-emepụta faịlụ nhazi ~/.vcd-cli/profiles.yaml
Na njedebe ị ga-agbakwunye ihe ndị a:

extensions:
  - container_service_extension.client.cse

Mgbe ahụ, anyị na-elele ọzọ:

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

Usoro ntinye nke ndị ahịa ezuola. Ka anyị gbalịa ibubata ụyọkọ nke mbụ.
CSE nwere ọtụtụ usoro ojiji, enwere ike ilele ha niile ebe a.

Nke mbụ, ka anyị mepụta igodo maka ohere enweghị paswọọdụ banye ụyọkọ n'ọdịnihu. Isi ihe a dị mkpa, ebe ọ bụ na ndabara, paswọọdụ nbanye na ọnụ ga-enwe nkwarụ, ma ọ bụrụ na ịtọghị igodo, ị nwere ike nweta ọtụtụ ọrụ site na consoles igwe mebere, nke na-adịghị mma.

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

Ka anyị gbalịa ịmalite ịmepụta ụyọkọ:

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

Ọ bụrụ na anyị enweta njehie Njehie: Oge kubiela ma ọ bụ onye ọrụ abanyeghị. Biko banye ọzọ. - ọzọ banye vcd-cli na vCloud dị ka akọwara n'elu wee gbalịa ọzọ.

Oge a ihe niile dị mma ma ọrụ nke ịmepụta ụyọkọ amalitela.

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

Ọ ga-ewe ihe dị ka nkeji 20 iji rụchaa ọrụ ahụ, ka anyị leba anya na ntọala mmalite mmalite.

netwọk - netwọk anyị mepụtara na mbụ.
— ssh-key — igodo ndị anyị mepụtara, nke a ga-ede na ọnụ ụyọkọ
-ọnụ n - Ọnụọgụ ọnụ ndị ọrụ na ụyọkọ. A ga-enwe otu nna ukwu, nke a bụ mmachi CSE
-enable-nfs - mepụta oghere mgbakwunye maka mbak NFS n'okpuru mpịakọta na-adịgide adịgide. Ọ bụ ntakịrị nhọrọ pedal;

Ka ọ dị ugbu a, na vCloud ị nwere ike ileba anya n'ichepụta ụyọkọ
CSE: Kubernetes maka ndị nọ na vCloud

Ozugbo arụchara ọrụ nke ịmepụta ụyọkọ, ọ dịla njikere maka ojiji.

Ka anyị lelee izi ezi nke ntinye n'ọrụ na iwu vcd cse ụyọkọ ozi MyCluster

CSE: Kubernetes maka ndị nọ na vCloud

Ọzọ anyị kwesịrị ịnweta nhazi ụyọkọ iji mee ihe kubectl

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

Ị nwere ike ịlele ọkwa nke ụyọkọ ahụ site na iji ya:

CSE: Kubernetes maka ndị nọ na vCloud

N'oge a, enwere ike iwere ụyọkọ ahụ ka ọ na-arụ ọrụ, ma ọ bụrụ na ọ bụghị maka akụkọ ahụ nwere mpịakọta na-adịgide adịgide. Ebe anyị nọ na vCloud, iji vSphere Provider agaghị arụ ọrụ. Nhọrọ --enyere-nfs emebere iji dozie nsogbu a, mana ọ naghị arụ ọrụ nke ọma. chọrọ mmezi akwụkwọ ntuziaka.

Iji bido, ọnụ anyị kwesịrị imepụta diski nọọrọ onwe ya na vCloud. Nke a na-ekwe nkwa na data anyị agaghị akwụsị yana ụyọkọ ma ọ bụrụ na ehichapụ ya. Ọzọkwa, jikọọ diski na NFS

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

Mgbe nke ahụ gasịrị, anyị na-aga site na ssh (ị mepụtara igodo ndị ahụ n'ezie?) na oghere NFS anyị wee jikọọ diski ahụ:

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

Mepụta ndekọ maka data wee bulie nkebi ọhụrụ ebe ahụ:

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

Ka anyị mepụta akụkụ ule ise ma kesaa ha maka ụyọkọ:

>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

Mgbe anwansi a gasịrị, anyị nwere ike ịmepụta PV na PVC na ụyọkọ anyị ihe dị ka nke a:
Onye nta akụkọ:

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

Ịkwanyere:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 10Gi
EOF

N'ebe a ka akụkọ banyere okike nke otu ụyọkọ gwụchara ma akụkọ nke usoro ndụ ya na-amalite. Dịka ego, enwere iwu CSE abụọ bara uru nke na-enye gị ohere ịchekwa akụrụngwa mgbe ụfọdụ ma ọ bụ ghara:

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

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

Daalụ maka oge gị niile, ọ bụrụ na ị nwere ajụjụ ọ bụla, jụọ na nkwupụta.

isi: www.habr.com

Tinye a comment