CSE: Kubernetes fun awọn ti o wa ninu vCloud

CSE: Kubernetes fun awọn ti o wa ninu vCloud
Kaabo gbogbo eniyan!

O ṣẹlẹ pe ẹgbẹ kekere wa, kii ṣe lati sọ pe laipẹ, ati pe dajudaju kii ṣe lojiji, ti dagba lati gbe diẹ ninu awọn (ati ni ọjọ iwaju gbogbo) awọn ọja si Kubernetes.

Awọn idi pupọ lo wa fun eyi, ṣugbọn itan wa kii ṣe nipa holivar.

A ni yiyan kekere nipa ipilẹ amayederun. Oludari vCloud ati Oludari vCloud. A yan tuntun ati pinnu lati bẹrẹ.

Lẹẹkansi, ni wiwa nipasẹ “Ọna Lile,” Mo yara yarayara si ipari pe ohun elo kan fun adaṣe adaṣe o kere ju awọn ilana ipilẹ, gẹgẹbi imuṣiṣẹ ati iwọn, nilo lana. Difọ jin sinu Google mu si imọlẹ iru ọja bi VMware Container Service Extension (CSE) - ọja orisun ṣiṣi ti o fun ọ laaye lati ṣe adaṣe adaṣe ati iwọn awọn iṣupọ k8s fun awọn ti o wa ninu vCloud.

AlAIgBA: CSE ni awọn idiwọn rẹ, ṣugbọn fun awọn idi wa o jẹ pipe. Paapaa, ojutu naa gbọdọ jẹ atilẹyin nipasẹ olupese awọsanma, ṣugbọn niwọn igba ti apakan olupin tun jẹ orisun-ìmọ, beere lọwọ oluṣakoso to sunmọ lati ni wa :)

Lati bẹrẹ lilo rẹ, o nilo akọọlẹ oludari kan ninu agbari vCloud ati nẹtiwọọki ti o ti ṣẹda tẹlẹ fun iṣupọ (lakoko ilana imuṣiṣẹ, o nilo iraye si Intanẹẹti lati inu nẹtiwọọki yii, maṣe gbagbe lati tunto Firewall/NAT). Ifọrọranṣẹ ko ṣe pataki. Ni apẹẹrẹ yii, jẹ ki a mu 10.0.240.0/24

CSE: Kubernetes fun awọn ti o wa ninu vCloud

Niwọn igba ti o ti ṣẹda, iṣupọ yoo nilo lati ṣakoso ni ọna kan, o gba ọ niyanju lati ni VPN pẹlu ipa ọna si nẹtiwọọki ti o ṣẹda. A lo boṣewa SSL VPN tunto lori Ẹnu-ọna Edge ti ajo wa.

Nigbamii ti, o nilo lati fi sori ẹrọ alabara CSE nibiti awọn iṣupọ k8s yoo jẹ iṣakoso. Ninu ọran mi, eyi jẹ kọǹpútà alágbèéká ti n ṣiṣẹ ati tọkọtaya awọn apoti ti o farapamọ daradara ti o wakọ adaṣe.

Onibara nilo ẹya Python 3.7.3 ati ti o ga julọ ati fi sori ẹrọ module vcd-cli, nitorina jẹ ki a fi sori ẹrọ mejeeji.

pip3 install vcd-cli

pip3 install container-service-extension

Lẹhin fifi sori ẹrọ, a ṣayẹwo ẹya CSE ati gba atẹle naa:

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

Airotẹlẹ, ṣugbọn fixable. Bi o ti wa ni titan, CSE nilo lati so pọ bi module si vcd-cli.
Lati ṣe eyi, o gbọdọ kọkọ wọle vcd-cli si ile-iṣẹ wa:

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

Lẹhin eyi, vcd-cli yoo ṣẹda faili iṣeto kan ~/.vcd-cli/profiles.yaml
Ni ipari o nilo lati fi awọn wọnyi kun:

extensions:
  - container_service_extension.client.cse

Lẹhinna a tun ṣayẹwo:

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

Alakoso fifi sori alabara ti pari. Jẹ ká gbiyanju lati ran awọn akọkọ iṣupọ.
CSE ni ọpọlọpọ awọn ipilẹ ti lilo, gbogbo wọn ni a le rii nibi.

Ni akọkọ, jẹ ki a ṣẹda awọn bọtini fun iraye si laisi ọrọ igbaniwọle si iṣupọ ọjọ iwaju. Aaye yii jẹ pataki, nitori nipasẹ aiyipada, iwọle ọrọ igbaniwọle si awọn apa yoo jẹ alaabo, ati pe ti o ko ba ṣeto awọn bọtini, o le gba ọpọlọpọ iṣẹ nipasẹ awọn afaworanhan ẹrọ foju, eyiti ko rọrun.

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

Jẹ ki a gbiyanju lati bẹrẹ ṣiṣẹda iṣupọ kan:

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

Ti a ba gba aṣiṣe Aṣiṣe: Ikoni ti pari tabi olumulo ko wọle. Jọwọ tun buwolu wọle. - lẹẹkansi wọle vcd-cli si vCloud bi a ti salaye loke ki o tun gbiyanju lẹẹkansi.

Ni akoko yii ohun gbogbo dara ati iṣẹ-ṣiṣe ti ṣiṣẹda iṣupọ kan ti bẹrẹ.

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

Yoo gba to iṣẹju 20 lati pari iṣẹ-ṣiṣe naa; ni asiko yii, jẹ ki a wo awọn ipilẹ ifilọlẹ ipilẹ.

-nẹtiwọọki - nẹtiwọki ti a ṣẹda tẹlẹ.
— ssh-key — awọn bọtini ti a ṣẹda, eyiti yoo kọ si awọn apa iṣupọ
— nodes n — Nọmba awọn apa Osise ninu iṣupọ. Ọga kan yoo wa nigbagbogbo, eyi jẹ aropin CSE kan
-enable-nfs - ṣẹda ipade afikun fun awọn ipin NFS labẹ awọn ipele itẹramọṣẹ. O jẹ diẹ ninu aṣayan efatelese; a yoo pada si yiyi ohun ti o ṣe diẹ sẹhin.

Nibayi, ni vCloud o le ṣe atẹle wiwo ẹda ti iṣupọ kan
CSE: Kubernetes fun awọn ti o wa ninu vCloud

Ni kete ti iṣẹ-ṣiṣe ti ṣiṣẹda iṣupọ kan ti pari, o ti ṣetan fun lilo.

Jẹ ki a ṣayẹwo deede ti imuṣiṣẹ pẹlu aṣẹ naa vcd cse iṣupọ alaye MyCluster

CSE: Kubernetes fun awọn ti o wa ninu vCloud

Nigbamii ti a nilo lati gba iṣeto iṣupọ lati lo kubectl

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

Ati pe o le ṣayẹwo ipo iṣupọ nipa lilo rẹ:

CSE: Kubernetes fun awọn ti o wa ninu vCloud

Ni aaye yii, iṣupọ le jẹ pe o n ṣiṣẹ ni ipo, ti kii ṣe fun itan pẹlu awọn iwọn itẹramọṣẹ. Niwọn igba ti a wa ni vCloud, a kii yoo ni anfani lati lo Olupese vSphere. Aṣayan --ṣiṣẹ-nfs ti a ṣe apẹrẹ lati ṣafẹri iparun yii, ṣugbọn ko ṣiṣẹ patapata. Atunṣe afọwọṣe nilo.

Lati bẹrẹ, ipade wa nilo lati ṣẹda disk olominira lọtọ ni vCloud. Eyi ṣe iṣeduro pe data wa kii yoo parẹ pẹlu iṣupọ ti o ba paarẹ. Bakannaa, so disk to NFS

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

Lẹhin iyẹn, a lọ nipasẹ ssh (o ṣẹda awọn bọtini gaan?) Si node NFS wa ati nikẹhin so disiki naa:

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

Ṣẹda itọsọna kan fun data ki o gbe ipin tuntun kan sibẹ:

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

Jẹ ki a ṣẹda awọn ipin idanwo marun ki o pin wọn fun iṣupọ naa:

>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

Lẹhin gbogbo idan yii, a le ṣẹda PV ati PVC ninu iṣupọ wa nkan bii eyi:
Onirohin:

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

Eyi ni ibi ti itan ẹda ti iṣupọ kan dopin ati itan-akọọlẹ igbesi aye rẹ bẹrẹ. Gẹgẹbi ẹbun, awọn aṣẹ CSE meji ti o wulo diẹ sii ti o gba ọ laaye lati ṣafipamọ awọn orisun nigbakan tabi rara:

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

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

O ṣeun fun gbogbo akoko rẹ, ti o ba ni ibeere eyikeyi, beere ninu awọn asọye.

orisun: www.habr.com

Fi ọrọìwòye kun