CSE: Kubernetes ji bo yên li vCloud

CSE: Kubernetes ji bo yên li vCloud
Hemûyan re merheba!

Wusa çêbû ku tîmê meya piçûk, nebêjin ku vê dawiyê, û bê guman ne ji nişkê ve, mezin bûye ku hin (û di pêşerojê de hemî) hilberan biguhezîne Kubernetes.

Gelek sedemên vê yekê hebûn, lê çîroka me ne li ser holîvarê ye.

Hilbijartina me di derbarê bingeha binesaziyê de hindik bû. Derhênerê vCloud û Derhênerê vCloud. Me ya nûtir hilbijart û biryar da ku em dest pê bikin.

Careke din, li "Riya Zehmet" mêze kir, ez pir zû gihîştim wê encamê ku duh amûrek ji bo otomatîkkirina herî kêm pêvajoyên bingehîn, mîna veqetandin û mezinbûnê, hewce bû. Kevirek kûr di Google de hilberek weha derxist ronahiyê wekî Berfirehkirina Karûbarê Konteynerê VMware (CSE) - hilberek çavkaniyek vekirî ya ku dihêle hûn ji bo yên di vCloud-ê de çêkirin û mezinbûna komên k8s otomatîk bikin.

Daxuyanî: CSE sînorên xwe hene, lê ji bo mebestên me ew bêkêmasî bû. Di heman demê de, pêdivî ye ku çareserî ji hêla peydakerê ewr ve were piştgirî kirin, lê ji ber ku beşa serverê jî çavkaniyek vekirî ye, ji rêveberê xweya herî nêzîk bipirsin ku ew hebe :)

Ji bo ku hûn dest bi karanîna wê bikin, hûn hewce ne ku di rêxistina vCloud de hesabek rêveber û torgilokek rêvekirî ya berê hatî afirandin ji bo komê (di dema pêvajoya danînê de, hûn hewceyê gihîştina Înternetê ji vê torê ne, ji bîr nekin ku Firewall / NAT-ê mîheng bikin). Navnîşan ne girîng e. Di vê nimûneyê de, em 10.0.240.0/24 bigirin

CSE: Kubernetes ji bo yên li vCloud

Ji ber ku piştî afirandinê, dê pêdivî ye ku kom bi rengekî were rêvebirin, tê pêşniyar kirin ku VPNek bi rêvekirina tora çêkirî hebe. Em SSL VPN-ya standard ku li ser Deriyê Edge ya rêxistina me hatî mîheng kirin bikar tînin.

Dûv re, hûn hewce ne ku muwekîlê CSE-ê saz bikin ku dê komikên k8s werin rêvebirin. Di doza min de, ev laptopek xebitî ye û çend konteynerên baş veşartî ku otomatê dimeşînin.

Xerîdar pêdivî ye ku guhertoya Python 3.7.3 û bilindtir were saz kirin û modul were saz kirin vcd-cli, ji ber vê yekê em herdu saz bikin.

pip3 install vcd-cli

pip3 install container-service-extension

Piştî sazkirinê, em guhertoya CSE-ê kontrol dikin û jêrîn digirin:

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

Bêhêvî, lê rastkirin. Wekî ku derket holê, CSE pêdivî ye ku wekî modulek bi vcd-cli ve were girêdan.
Ji bo vê yekê, divê hûn pêşî têkevin vcd-cli rêxistina me:

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

Piştî vê yekê, vcd-cli dê pelek veavakirinê biafirîne ~/.vcd-cli/profiles.yaml
Di dawiyê de hûn hewce ne ku jêrîn zêde bikin:

extensions:
  - container_service_extension.client.cse

Hingê em dîsa kontrol bikin:

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

Qonaxa sazkirina xerîdar qediya. Werin em hewl bidin ku koma yekem bicîh bikin.
CSE çend rêzikên pîvanên karanîna hene, hemî dikarin bêne dîtin here.

Pêşîn, bila em ji bo gihîştina bê şîfre ya koma pêşerojê mifteyan biafirînin. Ev xal girîng e, ji ber ku ji hêla xwerû ve, têketina şîfreya girêkan dê were neçalak kirin, û heke hûn bişkojan saz nekin, hûn dikarin bi navgîniya konsolên makîneyên virtual, ku ne rehet e, gelek kar bistînin.

# 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 em biceribînin ku dest bi çêkirina komekê bikin:

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

Ger em xeletiyek bistînin Çewtî: Danişîn qediya ye an bikarhêner têketî nebûye. Ji kerema xwe ji nû ve têketinê. - dîsa wekî ku li jor hatî destnîşan kirin vcd-cli têkevin vCloud û dîsa biceribîne.

Vê carê her tişt baş e û karê çêkirina komê dest pê kiriye.

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

Di vê navberê de ew ê bi qasî 20 hûrdem bigire, em li pîvanên destpêkirina bingehîn binêrin.

-tor - tora ku me berê çêkir.
-ssh-key - mifteyên ku me çêkirine, ku dê li ser girêkên komê bêne nivîsandin
- nodes n - Hejmara girêkên Karker di komê de. Dê her gav yek master hebe, ev sînorek CSE ye
-enable-nfs - ji bo parvekirinên NFS di bin cildên domdar de girêkek zêde biafirînin. Ew vebijarkek pedalek e ku em ê hinekî paşê vegerin ser ahenga ku ew dike.

Di vê navberê de, di vCloud-ê de hûn dikarin bi dîtbarî çêkirina komekê bişopînin
CSE: Kubernetes ji bo yên li vCloud

Dema ku karê çêkirina komê qediya, ew ji bo karanîna amade ye.

Ka em bi fermanê rastbûna bicîhkirinê kontrol bikin Agahdariya koma vcd cse MyCluster

CSE: Kubernetes ji bo yên li vCloud

Dûv re pêdivî ye ku em konfigurasyona komê bistînin ku bikar bînin kubectl

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

Û hûn dikarin rewşa komê bi karanîna wê kontrol bikin:

CSE: Kubernetes ji bo yên li vCloud

Di vê nuqteyê de, ger ne ji bo çîroka bi cildên domdar be, kom dikare bi şertî bixebite. Ji ber ku em li vCloud-ê ne, em ê nikaribin Pêşkêşkara vSphere bikar bînin. Dibe --enable-nfs ji bo sivikkirina vê aciziyê hatî çêkirin, lê ew bi tevahî bi ser neket. Guhertina manual pêwîst.

Ji bo destpêkê, girêka me pêdivî ye ku di vCloud de dîskek Serbixwe ya cihêreng biafirîne. Ev garantî dike ku heke ew were jêbirin dê daneyên me digel komê winda nebin. Di heman demê de, dîskê bi NFS-ê ve girêdin

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

Piştî wê, em bi riya ssh (we bi rastî bişkok afirandin?) diçin nodeya xweya NFS û di dawiyê de dîskê girêdidin:

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

Ji bo daneyan pelrêçek biafirînin û dabeşek nû li wir saz bikin:

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

Ka em pênc dabeşên ceribandinê biafirînin û wan ji bo komê parve bikin:

>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

Piştî hemî vê sêrbaziyê, em dikarin di koma xwe de PV û PVC tiştek mîna vî rengî biafirînin:
Nûçevan:

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

Li vir çîroka afirandina yek komê diqede û çîroka çerxa jiyana wê dest pê dike. Wekî bonus, du fermanên CSE-ê yên kêrhatî hene ku dihêle hûn carinan çavkaniyan hilînin an na:

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

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

Spas ji we hemîyan re ji bo dema we, heke pirsên we hebin, di şîroveyan de bipirsin.

Source: www.habr.com

Add a comment