CSE: ڪبرنيٽس انهن لاءِ جيڪي vCloud ۾ آهن

CSE: ڪبرنيٽس انهن لاءِ جيڪي vCloud ۾ آهن
سلام هر!

اهو ائين ٿيو آهي ته اسان جي ننڍڙي ٽيم، اهو چوڻ نه آهي ته تازو، ۽ يقينا اوچتو نه، ڪجهه (۽ مستقبل ۾ سڀ) پراڊڪٽس Kubernetes ڏانهن منتقل ڪرڻ لاء وڌي وئي آهي.

ان جا ڪيترائي سبب هئا، پر اسان جي ڪهاڻي هوليور بابت ناهي.

اسان وٽ بنيادي ڍانچي جي حوالي سان ٿورو انتخاب هو. vCloud ڊائريڪٽر ۽ vCloud ڊائريڪٽر. اسان نئون چونڊيو ۽ شروع ڪرڻ جو فيصلو ڪيو.

هڪ دفعو ٻيهر، ”دي هارڊ وي“ ذريعي ڏسندي، مان تمام جلدي ان نتيجي تي پهتو آهيان ته گهٽ ۾ گهٽ بنيادي عملن کي خودڪار ڪرڻ لاءِ هڪ اوزار، جهڙوڪ ڊيپلائيمينٽ ۽ سائزنگ، ڪالهه جي ضرورت هئي. گوگل ۾ هڪ گہرے غوطه هڪ اهڙي پراڊڪٽ کي روشني ۾ آندو جيئن VMware ڪنٽينر سروس ايڪسٽينشن (CSE) - هڪ اوپن سورس پراڊڪٽ جيڪا توهان کي اجازت ڏئي ٿي ته k8s ڪلسٽرز جي ٺاھڻ ۽ ان جي سائز کي خودڪار ڪرڻ لاءِ جيڪي vCloud ۾ آھن.

رد ڪرڻ: CSE جون حدون آهن، پر اسان جي مقصدن لاءِ اهو مڪمل هو. انهي سان گڏ، حل کي ڪلائوڊ فراهم ڪندڙ جي حمايت ڪرڻ گهرجي، پر جيئن ته سرور جو حصو پڻ کليل ذريعو آهي، پنهنجي ويجھي مينيجر کان پڇو ته اهو دستياب هجي :)

ان کي استعمال ڪرڻ شروع ڪرڻ لاءِ، توهان کي vCloud تنظيم ۾ هڪ ايڊمنسٽريٽر اڪائونٽ ۽ ڪلسٽر لاءِ اڳ ۾ ٺاهيل روٽ ٿيل نيٽ ورڪ جي ضرورت آهي (تعميراتي عمل دوران، توهان کي هن نيٽ ورڪ مان انٽرنيٽ جي رسائي جي ضرورت آهي، فائر وال/NAT کي ترتيب ڏيڻ نه وساريو). خطاب جي ڪا به اهميت نه آهي. هن مثال ۾، اچو ته وٺو 10.0.240.0/24

CSE: ڪبرنيٽس انهن لاءِ جيڪي vCloud ۾ آهن

تخليق کان پوء، ڪلستر کي ڪنهن به طرح منظم ڪرڻ جي ضرورت پوندي، اها سفارش ڪئي وئي آهي هڪ وي پي اين ٺاهيل نيٽ ورڪ ڏانهن روٽنگ سان. اسان استعمال ڪريون ٿا معياري SSL VPN ترتيب ڏنل اسان جي تنظيم جي Edge Gateway تي.

اڳيون، توهان کي CSE ڪلائنٽ انسٽال ڪرڻ جي ضرورت آهي جتي k8s ڪلستر منظم ڪيا ويندا. منهنجي حالت ۾، هي هڪ ڪم ڪندڙ ليپ ٽاپ آهي ۽ ڪجهه چڱي طرح لڪيل ڪنٽينرز جيڪي خودڪار طريقي سان هلائيندا آهن.

ڪلائنٽ جي ضرورت آهي Python ورجن 3.7.3 ۽ وڌيڪ انسٽال ٿيل ۽ ماڊل انسٽال ٿيل vcd-cli، تنهنڪري اچو ته ٻنهي کي انسٽال ڪريون.

pip3 install vcd-cli

pip3 install container-service-extension

انسٽاليشن کان پوء، اسان CSE ورجن چيڪ ڪريو ۽ ھيٺ ڏنل حاصل ڪريو:

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

غير متوقع، پر fixable. جيئن ته اهو نڪتو، 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 ۾ توهان بصري طور تي ڪلستر جي پيدائش جي نگراني ڪري سگهو ٿا
CSE: ڪبرنيٽس انهن لاءِ جيڪي vCloud ۾ آهن

هڪ دفعو ڪلستر ٺاهڻ جو ڪم مڪمل ٿي ويو آهي، اهو استعمال لاء تيار آهي.

اچو ته حڪم سان ترتيب ڏيڻ جي درستگي کي چيڪ ڪريو vcd cse ڪلستر جي ڄاڻ MyCluster

CSE: ڪبرنيٽس انهن لاءِ جيڪي vCloud ۾ آهن

اڳيون اسان کي استعمال ڪرڻ لاء ڪلستر جي جوڙجڪ حاصل ڪرڻ جي ضرورت آهي ڪيوبڪبل

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

۽ توھان ان کي استعمال ڪندي ڪلستر جي حالت چيڪ ڪري سگھو ٿا:

CSE: ڪبرنيٽس انهن لاءِ جيڪي vCloud ۾ آهن

هن نقطي تي، ڪلستر کي مشروط طور تي ڪم ڪري سگهجي ٿو، جيڪڏهن مسلسل حجم سان ڪهاڻي لاء نه. جيئن ته اسان 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

تبصرو شامل ڪريو