ආයුබෝවන් හැමෝටම!
අපගේ කුඩා කණ්ඩායම, මෑතකදී සහ නිසැකවම හදිසියේම නොව, සමහර (සහ අනාගතයේ දී) නිෂ්පාදන කිහිපයක් Kubernetes වෙත ගෙන යාමට වර්ධනය වී ඇති බව පැවසිය නොහැක.
මේ සඳහා බොහෝ හේතු තිබුණත් අපේ කතාව හොලිවර් ගැන නොවේ.
යටිතල පහසුකම් පදනම සම්බන්ධයෙන් අපට කුඩා තේරීමක් තිබුණි. vCloud අධ්යක්ෂක සහ vCloud අධ්යක්ෂ. අපි අලුත් එක තෝරාගෙන පටන් ගන්න තීරණය කළා.
නැවත වරක්, "The Hard Way" හරහා බැලීමේදී, යෙදවීම සහ ප්රමාණ කිරීම වැනි අවම වශයෙන් මූලික ක්රියාවලීන් ස්වයංක්රීය කිරීම සඳහා මෙවලමක් ඊයේ අවශ්ය බව මම ඉතා ඉක්මනින් නිගමනය කළෙමි. Google වෙත ගැඹුරු කිමිදීමක් VMware බහාලුම් සේවා දිගුව (CSE) වැනි නිෂ්පාදනයක් ආලෝකයට ගෙන ආවේය - vCloud හි සිටින අය සඳහා k8s පොකුරු සෑදීම සහ ප්රමාණය ස්වයංක්රීය කිරීමට ඔබට ඉඩ සලසන විවෘත මූලාශ්ර නිෂ්පාදනයකි.
වියාචනය: CSE හි සීමාවන් ඇත, නමුත් අපගේ අරමුණු සඳහා එය පරිපූර්ණ විය. එසේම, විසඳුම ක්ලවුඩ් සපයන්නා විසින් සහාය දැක්විය යුතුය, නමුත් සේවාදායක කොටස ද විවෘත මූලාශ්ර බැවින්, එය ලබා ගැනීමට ඔබගේ ළඟම කළමනාකරුගෙන් ඉල්ලා සිටින්න :)
එය භාවිතා කිරීම ආරම්භ කිරීම සඳහා, ඔබට vCloud සංවිධානයේ පරිපාලක ගිණුමක් සහ පොකුර සඳහා කලින් සාදන ලද මාර්ගගත ජාලයක් අවශ්ය වේ (ඔබට යෙදවීමේ ක්රියාවලියේදී, ඔබට මෙම ජාලයෙන් අන්තර්ජාල ප්රවේශය අවශ්ය වේ, Firewall/NAT වින්යාස කිරීමට අමතක නොකරන්න). ආමන්ත්රණය කරලා වැඩක් නෑ. මෙම උදාහරණයේ දී, අපි 10.0.240.0/24 ගනිමු
නිර්මාණය කිරීමෙන් පසු, පොකුර කෙසේ හෝ කළමනාකරණය කිරීමට අවශ්ය වන බැවින්, සාදන ලද ජාලයට මාර්ගගත කිරීම සමඟ VPN එකක් තිබීම රෙකමදාරු කරනු ලැබේ. අපි අපගේ සංවිධානයේ Edge Gateway හි වින්යාස කර ඇති සම්මත SSL VPN එකක් භාවිතා කරමු.
ඊළඟට, ඔබ k8s පොකුරු කළමනාකරණය කරන CSE සේවාලාභියා ස්ථාපනය කළ යුතුය. මගේ නඩුවේදී, මෙය වැඩ කරන ලැප්ටොප් පරිගණකයක් සහ ස්වයංක්රීයකරණය මෙහෙයවන හොඳින් සැඟවුණු බහාලුම් කිහිපයකි.
සේවාලාභියාට Python අනුවාදය 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