CSE: vCloud میں موجود لوگوں کے لیے Kubernetes

CSE: vCloud میں موجود لوگوں کے لیے Kubernetes
ہر کسی کو خوش!

ایسا ہوا کہ ہماری چھوٹی ٹیم، یہ کہنا نہیں کہ حال ہی میں، اور یقینی طور پر اچانک نہیں، کچھ (اور مستقبل میں تمام) مصنوعات کوبرنیٹس میں منتقل کرنے کے لیے بڑھ گئی ہے۔

اس کی بہت سی وجوہات تھیں، لیکن ہماری کہانی ہولیور کے بارے میں نہیں ہے۔

ہمارے پاس بنیادی ڈھانچے کی بنیاد کے بارے میں بہت کم انتخاب تھا۔ vCloud ڈائریکٹر اور vCloud ڈائریکٹر۔ ہم نے نئے کا انتخاب کیا اور شروع کرنے کا فیصلہ کیا۔

ایک بار پھر، "دی ہارڈ وے" کو دیکھتے ہوئے، میں بہت جلد اس نتیجے پر پہنچا کہ کم از کم بنیادی عمل کو خودکار کرنے کے لیے ایک ٹول کی ضرورت تھی، جیسے کہ تعیناتی اور سائز بندی، کل کی ضرورت تھی۔ گوگل میں گہرا غوطہ لگانے سے VMware کنٹینر سروس ایکسٹینشن (CSE) جیسی پروڈکٹ سامنے آئی - ایک اوپن سورس پروڈکٹ جو آپ کو vCloud میں موجود لوگوں کے لیے k8s کلسٹرز کی تخلیق اور سائز کو خودکار کرنے کی اجازت دیتا ہے۔

اعلان دستبرداری: CSE کی اپنی حدود ہیں، لیکن ہمارے مقاصد کے لیے یہ بالکل درست تھا۔ نیز، حل کو کلاؤڈ فراہم کنندہ کے ذریعہ سپورٹ کیا جانا چاہئے، لیکن چونکہ سرور کا حصہ بھی اوپن سورس ہے، اس لیے اپنے قریبی مینیجر سے اسے دستیاب کرانے کو کہیں :)

اس کا استعمال شروع کرنے کے لیے، آپ کو vCloud تنظیم میں ایک ایڈمنسٹریٹر اکاؤنٹ اور کلسٹر کے لیے پہلے سے بنائے گئے روٹڈ نیٹ ورک کی ضرورت ہے (تعیناتی کے عمل کے دوران، آپ کو اس نیٹ ورک سے انٹرنیٹ تک رسائی کی ضرورت ہے، Firewall/NAT کو کنفیگر کرنا نہ بھولیں)۔ خطاب سے کوئی فرق نہیں پڑتا۔ اس مثال میں، آئیے 10.0.240.0/24 لیتے ہیں۔

CSE: vCloud میں موجود لوگوں کے لیے Kubernetes

چونکہ تخلیق کے بعد، کلسٹر کو کسی نہ کسی طرح منظم کرنے کی ضرورت ہوگی، اس لیے تجویز کیا جاتا ہے کہ تخلیق کردہ نیٹ ورک پر روٹنگ کے ساتھ VPN ہو۔ ہم اپنی تنظیم کے Edge Gateway پر کنفیگر کردہ ایک معیاری SSL VPN استعمال کرتے ہیں۔

اگلا، آپ کو 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".

غیر متوقع، لیکن قابل فکس۔ جیسا کہ یہ نکلا، 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 میں دوبارہ لاگ ان کریں اور دوبارہ کوشش کریں۔

اس بار سب کچھ ٹھیک ہے اور کلسٹر بنانے کا کام شروع ہو گیا ہے۔

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 — وہ کلیدیں جو ہم نے بنائی ہیں، جو کلسٹر نوڈس پر لکھی جائیں گی۔
نوڈس n — کلسٹر میں ورکر نوڈس کی تعداد۔ ہمیشہ ایک ماسٹر رہے گا، یہ CSE کی حد ہے۔
—enable-nfs — مستقل والیوم کے تحت NFS شیئرز کے لیے ایک اضافی نوڈ بنائیں۔ یہ تھوڑا سا پیڈل آپشن ہے؛ ہم تھوڑی دیر بعد اس کی ٹیوننگ پر واپس آجائیں گے۔

دریں اثنا، وی کلاؤڈ میں آپ کلسٹر کی تخلیق کو بصری طور پر مانیٹر کر سکتے ہیں۔
CSE: vCloud میں موجود لوگوں کے لیے Kubernetes

ایک بار جب کلسٹر بنانے کا کام مکمل ہو جائے تو یہ استعمال کے لیے تیار ہے۔

آئیے کمانڈ کے ساتھ تعیناتی کی درستگی کو چیک کرتے ہیں۔ vcd cse کلسٹر کی معلومات MyCluster

CSE: vCloud میں موجود لوگوں کے لیے Kubernetes

اگلا ہمیں استعمال کرنے کے لیے کلسٹر کنفیگریشن حاصل کرنے کی ضرورت ہے۔ کیوبیکٹل

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

اور آپ اسے استعمال کرکے کلسٹر کی حیثیت کو چیک کرسکتے ہیں:

CSE: vCloud میں موجود لوگوں کے لیے Kubernetes

اس مقام پر، کلسٹر کو مشروط طور پر کام کرنے پر غور کیا جا سکتا ہے، اگر مسلسل والیوم والی کہانی کے لیے نہیں۔ چونکہ ہم vCloud میں ہیں، ہم vSphere Provider استعمال نہیں کر سکیں گے۔ آپشن --enable-nfs اس پریشانی کو دور کرنے کے لیے ڈیزائن کیا گیا، لیکن یہ مکمل طور پر کام نہیں کر سکا۔ دستی ایڈجسٹمنٹ کی ضرورت ہے۔

شروع کرنے کے لیے، ہمارے نوڈ کو vCloud میں ایک علیحدہ آزاد ڈسک بنانے کی ضرورت ہے۔ یہ اس بات کی ضمانت دیتا ہے کہ اگر ہمارا ڈیٹا حذف ہو جاتا ہے تو کلسٹر کے ساتھ ساتھ غائب نہیں ہو گا۔ نیز، ڈسک کو NFS سے جوڑیں۔

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

اس کے بعد، ہم اپنے NFS نوڈ پر ssh (آپ نے واقعی چابیاں بنائی ہیں؟) کے ذریعے جاتے ہیں اور آخر میں ڈسک کو جوڑ دیتے ہیں:

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

نیا تبصرہ شامل کریں