హలో అందరికీ!
మా చిన్న బృందం, ఇటీవల, మరియు ఖచ్చితంగా అకస్మాత్తుగా కాదు, కొన్ని (మరియు భవిష్యత్తులో అన్ని) ఉత్పత్తులను కుబెర్నెట్లకు తరలించడానికి పెరిగింది.
దీనికి చాలా కారణాలు ఉన్నాయి, కానీ మా కథ హోలివర్ గురించి కాదు.
మౌలిక సదుపాయాల స్థావరానికి సంబంధించి మాకు చాలా తక్కువ ఎంపిక ఉంది. vCloud డైరెక్టర్ మరియు vCloud డైరెక్టర్. మేము కొత్తదాన్ని ఎంచుకున్నాము మరియు ప్రారంభించాలని నిర్ణయించుకున్నాము.
మరోసారి, "ది హార్డ్ వే" ద్వారా చూస్తే, విస్తరణ మరియు పరిమాణం వంటి కనీసం ప్రాథమిక ప్రక్రియలను ఆటోమేట్ చేయడానికి ఒక సాధనం నిన్న అవసరమని నేను చాలా త్వరగా నిర్ధారణకు వచ్చాను. Googleలో లోతైన డైవ్ VMware కంటైనర్ సర్వీస్ ఎక్స్టెన్షన్ (CSE) వంటి ఉత్పత్తిని వెలుగులోకి తెచ్చింది - ఇది vCloudలో ఉన్నవారి కోసం k8s క్లస్టర్ల సృష్టి మరియు పరిమాణాన్ని ఆటోమేట్ చేయడానికి మిమ్మల్ని అనుమతించే ఓపెన్ సోర్స్ ఉత్పత్తి.
నిరాకరణ: CSEకి దాని పరిమితులు ఉన్నాయి, కానీ మా ప్రయోజనాల కోసం ఇది ఖచ్చితంగా ఉంది. అలాగే, పరిష్కారానికి క్లౌడ్ ప్రొవైడర్ తప్పనిసరిగా మద్దతు ఇవ్వాలి, అయితే సర్వర్ భాగం కూడా ఓపెన్ సోర్స్ అయినందున, అది అందుబాటులో ఉండేలా మీ సమీప మేనేజర్ని అడగండి :)
దీన్ని ఉపయోగించడం ప్రారంభించడానికి, మీకు vCloud సంస్థలో అడ్మినిస్ట్రేటర్ ఖాతా మరియు క్లస్టర్ కోసం మునుపు సృష్టించబడిన రూట్ చేయబడిన నెట్వర్క్ అవసరం (డిప్లోయ్మెంట్ ప్రక్రియలో, మీకు ఈ నెట్వర్క్ నుండి ఇంటర్నెట్ యాక్సెస్ అవసరం, ఫైర్వాల్/NATని కాన్ఫిగర్ చేయడం మర్చిపోవద్దు). సంబోధించడం ముఖ్యం కాదు. ఈ ఉదాహరణలో, 10.0.240.0/24 తీసుకుందాం
సృష్టించిన తర్వాత, క్లస్టర్ను ఎలాగైనా నిర్వహించవలసి ఉంటుంది కాబట్టి, సృష్టించిన నెట్వర్క్కు రౌటింగ్తో VPNని కలిగి ఉండాలని సిఫార్సు చేయబడింది. మేము మా సంస్థ యొక్క ఎడ్జ్ గేట్వేలో కాన్ఫిగర్ చేసిన ప్రామాణిక SSL VPNని ఉపయోగిస్తాము.
తర్వాత, మీరు k8s క్లస్టర్లు నిర్వహించబడే CSE క్లయింట్ను ఇన్స్టాల్ చేయాలి. నా విషయానికొస్తే, ఇది పని చేసే ల్యాప్టాప్ మరియు ఆటోమేషన్ను నడిపించే కొన్ని బాగా దాచబడిన కంటైనర్లు.
క్లయింట్కు పైథాన్ వెర్షన్ 3.7.3 మరియు అంతకంటే ఎక్కువ ఇన్స్టాల్ చేయడం మరియు మాడ్యూల్ ఇన్స్టాల్ చేయడం అవసరం
pip3 install vcd-cli
pip3 install container-service-extension
ఇన్స్టాలేషన్ తర్వాత, మేము CSE సంస్కరణను తనిఖీ చేసి, క్రింది వాటిని పొందుతాము:
# vcd cse version
Error: No such command "cse".
ఊహించనిది, కానీ పరిష్కరించదగినది. అది ముగిసినట్లుగా, CSEని vcd-cliకి మాడ్యూల్గా జోడించాలి.
దీన్ని చేయడానికి, మీరు ముందుగా మా సంస్థకు vcd-cli లాగిన్ చేయాలి:
# vcd login MyCloud.provider.com org-dev admin
Password:
admin logged in, org: 'org-dev', vdc: 'org-dev_vDC01'
దీని తరువాత, vcd-cli కాన్ఫిగరేషన్ ఫైల్ను సృష్టిస్తుంది ~/.vcd-cli/profiles.yaml
ముగింపులో మీరు ఈ క్రింది వాటిని జోడించాలి:
extensions:
- container_service_extension.client.cse
అప్పుడు మేము మళ్ళీ తనిఖీ చేస్తాము:
# vcd cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.5.0
క్లయింట్ ఇన్స్టాలేషన్ దశ పూర్తయింది. మొదటి క్లస్టర్ని అమలు చేయడానికి ప్రయత్నిద్దాం.
CSE వినియోగ పారామితుల యొక్క అనేక సెట్లను కలిగి ఉంది, వాటిని అన్నింటినీ వీక్షించవచ్చు
ముందుగా, ఫ్యూచర్ క్లస్టర్కి పాస్వర్డ్ లేని యాక్సెస్ కోసం కీలను క్రియేట్ చేద్దాం. ఈ పాయింట్ ముఖ్యం, ఎందుకంటే డిఫాల్ట్గా, నోడ్లకు పాస్వర్డ్ లాగిన్ నిలిపివేయబడుతుంది మరియు మీరు కీలను సెట్ చేయకపోతే, మీరు వర్చువల్ మెషీన్ కన్సోల్ల ద్వారా చాలా పనిని పొందవచ్చు, ఇది అనుకూలమైనది కాదు.
# 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.
క్లస్టర్ని సృష్టించడం ప్రారంభించడానికి ప్రయత్నిద్దాం:
vcd cse cluster create MyCluster --network k8s_cluster_net --ssh-key ~/.ssh/id_rsa.pub --nodes 3 --enable-nfs
మనకు లోపం వస్తే లోపం: సెషన్ గడువు ముగిసింది లేదా వినియోగదారు లాగిన్ చేయలేదు. దయచేసి మళ్లీ లాగిన్ చేయండి. — పైన వివరించిన విధంగా vcd-cliని vCloudకి మళ్లీ లాగిన్ చేసి, మళ్లీ ప్రయత్నించండి.
ఈసారి అంతా బాగానే ఉండడంతో క్లస్టర్ను రూపొందించే పనులు ప్రారంభించారు.
cluster operation: Creating cluster vApp 'MyCluster' (38959587-54f4-4a49-8f2e-61c3a3e879e0) from template 'photon-v2_k8-1.12_weave-2.3.0' (revision 1)
పనిని పూర్తి చేయడానికి సుమారు 20 నిమిషాలు పడుతుంది; ఈ సమయంలో, ప్రాథమిక ప్రయోగ పారామితులను చూద్దాం.
—network — మనం ఇంతకు ముందు సృష్టించిన నెట్వర్క్.
—ssh-key — మేము సృష్టించిన కీలు, క్లస్టర్ నోడ్లకు వ్రాయబడతాయి
—nodes n — క్లస్టర్లోని వర్కర్ నోడ్ల సంఖ్య. ఎల్లప్పుడూ ఒక మాస్టర్ ఉంటారు, ఇది CSE పరిమితి
—enable-nfs — నిరంతర వాల్యూమ్ల క్రింద NFS షేర్ల కోసం అదనపు నోడ్ను సృష్టించండి. ఇది కొంచెం పెడల్ ఎంపిక; మేము కొంచెం తర్వాత అది ఏమి చేస్తుందో ట్యూనింగ్ చేస్తాము.
ఇంతలో, vCloudలో మీరు క్లస్టర్ సృష్టిని దృశ్యమానంగా పర్యవేక్షించవచ్చు
క్లస్టర్ను సృష్టించే పని పూర్తయిన తర్వాత, అది ఉపయోగం కోసం సిద్ధంగా ఉంది.
కమాండ్తో విస్తరణ యొక్క ఖచ్చితత్వాన్ని తనిఖీ చేద్దాం vcd cse క్లస్టర్ సమాచారం MyCluster
తరువాత మనం క్లస్టర్ కాన్ఫిగరేషన్ని ఉపయోగించాలి kubectl
# vcd cse cluster config MyCluster > ./.kube/config
మరియు మీరు దీన్ని ఉపయోగించి క్లస్టర్ స్థితిని తనిఖీ చేయవచ్చు:
ఈ సమయంలో, క్లస్టర్ నిరంతర వాల్యూమ్లతో కథ కోసం కాకపోయినా, షరతులతో కూడిన పనిని పరిగణించవచ్చు. మేము vCloudలో ఉన్నందున, మేము vSphere ప్రొవైడర్ని ఉపయోగించలేము. ఎంపిక --enable-nfs ఈ విసుగును సున్నితంగా చేయడానికి రూపొందించబడింది, కానీ అది పూర్తిగా పని చేయలేదు. మాన్యువల్ సర్దుబాటు అవసరం.
ప్రారంభించడానికి, మా నోడ్ vCloudలో ప్రత్యేక స్వతంత్ర డిస్క్ని సృష్టించాలి. ఇది తొలగించబడినట్లయితే క్లస్టర్తో పాటు మా డేటా అదృశ్యం కాదని ఇది హామీ ఇస్తుంది. అలాగే, డిస్క్ను NFSకి కనెక్ట్ చేయండి
# vcd disk create nfs-shares-1 100g --description 'Kubernetes NFS shares'
# vcd vapp attach mycluster nfsd-9604 nfs-shares-1
ఆ తర్వాత, మేము ssh (మీరు నిజంగా కీలను సృష్టించారా?) ద్వారా మా NFS నోడ్కి వెళ్లి చివరకు డిస్క్ను కనెక్ట్ చేస్తాము:
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
డేటా కోసం డైరెక్టరీని సృష్టించండి మరియు అక్కడ తాజా విభజనను మౌంట్ చేయండి:
mkdir /export
echo '/dev/sdb1 /export ext4 defaults 0 0' >> /etc/fstab
mount -a
ఐదు పరీక్ష విభజనలను సృష్టించండి మరియు వాటిని క్లస్టర్ కోసం భాగస్వామ్యం చేద్దాం:
>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
ఈ మాయాజాలం తర్వాత, మేము మా క్లస్టర్లో PV మరియు PVCని సృష్టించవచ్చు:
పివి:
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
పివిసి:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 10Gi
EOF
ఇక్కడే ఒక సమూహ సృష్టి యొక్క కథ ముగుస్తుంది మరియు దాని జీవిత చక్రం యొక్క కథ ప్రారంభమవుతుంది. బోనస్గా, మీరు కొన్నిసార్లు వనరులను సేవ్ చేయడానికి లేదా సేవ్ చేయడానికి అనుమతించే మరో రెండు ఉపయోగకరమైన CSE ఆదేశాలు ఉన్నాయి:
#Увеличиваем размер кластера до 8 воркер нод
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8
#Выводим ненужные ноды из кластера с их последующим удалением
>vcd cse node delete MyCluster node-1a2v node-6685 --yes
మీ సమయం కోసం అందరికీ ధన్యవాదాలు, మీకు ఏవైనా ప్రశ్నలు ఉంటే, వ్యాఖ్యలలో అడగండి.
మూలం: www.habr.com