سلام هر!
دا داسې پیښ شوي چې زموږ کوچنۍ ټیم ، نه ویل کیږي چې پدې وروستیو کې ، او یقینا ناڅاپه نه ، وده کړې ترڅو ځینې (او په راتلونکي کې ټول) محصولات کبرنیټس ته واړوي.
د دې لپاره ډیری دلیلونه وو، مګر زموږ کیسه د هولیور په اړه نه ده.
موږ د زیربنا اساس په اړه لږ انتخاب درلود. د vCloud رییس او د vCloud رییس. موږ نوی غوره کړ او پریکړه یې وکړه چې پیل وکړو.
یوځل بیا ، د "سختې لارې" په لټه کې ، زه ډیر ژر دې پایلې ته ورسیدم چې د لږترلږه لومړني پروسو اتومات کولو لپاره یوه وسیله ، لکه ځای پرځای کول او اندازه کول ، پرون اړتیا وه. په ګوګل کې ژور ډوب داسې محصول روښانه کړ لکه د VMware کانټینر خدماتو توسیع (CSE) - د خلاصې سرچینې محصول چې تاسو ته اجازه درکوي د k8s کلسترونو رامینځته کول او اندازه کول د هغو کسانو لپاره چې په vCloud کې دي.
اعلامیه: CSE خپل محدودیتونه لري، مګر زموږ د موخو لپاره دا بشپړ و. همچنان ، حل باید د کلاوډ چمتو کونکي لخوا ملاتړ شي ، مګر ځکه چې د سرور برخه هم خلاص سرچینه ده ، له خپل نږدې مدیر څخه وغواړئ چې دا شتون ولري :)
د دې کارولو پیل کولو لپاره ، تاسو د vCloud تنظیم کې د مدیر حساب او د کلسټر لپاره دمخه رامینځته شوی روټ شبکه ته اړتیا لرئ (د ګمارنې پروسې په جریان کې ، تاسو د دې شبکې څخه انټرنیټ لاسرسي ته اړتیا لرئ ، د فایروال/NAT تنظیم کول مه هیروئ). خطاب کول مهم نه دي. په دې مثال کې، راځئ چې 10.0.240.0/24 واخلو
له جوړیدو وروسته ، کلستر به په یو ډول اداره کولو ته اړتیا ولري ، نو سپارښتنه کیږي چې رامینځته شوي شبکې ته د روټینګ سره VPN ولرئ. موږ یو معیاري SSL VPN کاروو چې زموږ د سازمان ایج ګیټ وے کې ترتیب شوی.
بیا، تاسو اړتیا لرئ د CSE پیرودونکي نصب کړئ چیرې چې د k8s کلسترونه به اداره شي. زما په قضیه کې، دا یو کاري لپ ټاپ او یو څو ښه پټ کانټینرونه دي چې اتومات چلوي.
پیرودونکي د 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 دقیقې وخت ونیسي؛ په ورته وخت کې ، راځئ چې د لانچ لومړني پیرامیټونه وګورو.
شبکه - هغه شبکه چې موږ مخکې جوړه کړې.
—ssh-key — هغه کیلي چې موږ یې جوړې کړې، کوم چې به کلستر نوډونو ته ولیکل شي
نوډونه 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