CSE፡ Kubernetes በ vCloud ውስጥ ላሉ

CSE፡ Kubernetes በ vCloud ውስጥ ላሉ
ሁሉም ሰው ሰላም!

የእኛ ትንሽ ቡድን, በቅርቡ, እና በእርግጠኝነት አይደለም በድንገት አይደለም, አንዳንድ (እና ወደፊት ሁሉንም) ምርቶች ወደ Kubernetes ለማንቀሳቀስ አድጓል መሆኑን ተከሰተ.

ለዚህ ብዙ ምክንያቶች ነበሩ, ነገር ግን የእኛ ታሪክ ስለ ሆሊቫር አይደለም.

የመሠረተ ልማት መሰረቱን በተመለከተ ብዙም ምርጫ አልነበረንም። vCloud ዳይሬክተር እና vCloud ዳይሬክተር. አዲሱን መርጠናል ለመጀመር ወሰንን።

አሁንም እንደገና “በሃርድ ዌይ” ውስጥ ስመለከት ቢያንስ መሰረታዊ ሂደቶችን እንደ ማሰማራት እና የመጠን መጠንን በራስ-ሰር የሚሰራ መሳሪያ ትናንት ያስፈልጋል ወደሚል መደምደሚያ ደረስኩ። ወደ ጉግል ዘልቆ መግባት እንደ VMware Container Service Extension (ሲኤስኢ) ያለ ምርት ወደ ብርሃን አምጥቷል - ክፍት ምንጭ ምርት በvCloud ውስጥ ላሉ የ k8s ስብስቦችን መፍጠር እና መጠን ማስተካከል።

የኃላፊነት ማስተባበያ፡ CSE ውሱንነቶች አሉት፣ ግን ለእኛ ዓላማዎች ፍጹም ነበር። እንዲሁም፣ መፍትሄው በደመና አቅራቢው መደገፍ አለበት፣ ነገር ግን የአገልጋዩ ክፍል እንዲሁ ክፍት ምንጭ ስለሆነ፣ በአቅራቢያዎ የሚገኘውን አስተዳዳሪ እንዲገኝ ይጠይቁ :)

እሱን መጠቀም ለመጀመር በ vCloud ድርጅት ውስጥ የአስተዳዳሪ መለያ እና ቀደም ሲል የተፈጠረ አውታረ መረብ ለክላስተር ያስፈልግዎታል (በማሰማራት ሂደት ውስጥ ከዚህ አውታረ መረብ የበይነመረብ መዳረሻ ያስፈልግዎታል ፣ ፋየርዎልን / NAT ን ማዋቀርን አይርሱ)። ማነጋገር ችግር የለውም። በዚህ ምሳሌ, 10.0.240.0/24 እንውሰድ

CSE፡ Kubernetes በ vCloud ውስጥ ላሉ

ከተፈጠረ በኋላ ክላስተር በሆነ መንገድ ማስተዳደር ያስፈልገዋል፣ ወደተፈጠረው አውታረ መረብ የሚወስድ VPN እንዲኖር ይመከራል። በድርጅታችን Edge Gateway ላይ የተዋቀረውን መደበኛ SSL VPN እንጠቀማለን።

በመቀጠል የ k8s ስብስቦች የሚተዳደሩበት የሲኤስኢ ደንበኛን መጫን አለቦት። በእኔ ሁኔታ ይህ የሚሰራ ላፕቶፕ እና አውቶማቲክን የሚያሽከረክሩ ሁለት በደንብ የተደበቁ ኮንቴይነሮች ናቸው።

ደንበኛው የ Python ስሪት 3.7.3 እና ከዚያ በላይ መጫን እና ሞጁሉን መጫን ያስፈልገዋል vcd-cli, ስለዚህ ሁለቱንም እንጫን.

pip3 install vcd-cli

pip3 install container-service-extension

ከጫንን በኋላ፣ የሲኤስኢውን ስሪት እንፈትሻለን እና የሚከተለውን እናገኛለን።

# vcd cse version
Error: No such command "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 - እኛ የፈጠርናቸው ቁልፎች, እሱም ወደ ክላስተር ኖዶች ይጻፋል
- nodes n - በክላስተር ውስጥ ያሉ የሰራተኛ አንጓዎች ብዛት። ሁሌም አንድ ጌታ ይኖራል፣ ይህ የሲኤስኢ ገደብ ነው።
-enable-nfs - ለ NFS ማጋራቶች ቀጣይነት ባለው ጥራዞች ውስጥ ተጨማሪ መስቀለኛ መንገድ ይፍጠሩ። ትንሽ የፔዳል አማራጭ ነው፤ ትንሽ ቆይቶ የሚያደርገውን ወደ ማስተካከል እንመለሳለን።

ይህ በእንዲህ እንዳለ፣ በ vCloud ውስጥ የክላስተር መፍጠርን በእይታ መከታተል ይችላሉ።
CSE፡ Kubernetes በ vCloud ውስጥ ላሉ

ክላስተር የመፍጠር ተግባር ከተጠናቀቀ በኋላ ለአገልግሎት ዝግጁ ነው።

የማሰማራቱን ትክክለኛነት በትእዛዙ እንፈትሽ የvcd cse ክላስተር መረጃ MyCluster

CSE፡ Kubernetes በ vCloud ውስጥ ላሉ

በመቀጠል የክላስተር ውቅረትን መጠቀም አለብን kubectl

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

እና እሱን በመጠቀም የክላስተር ሁኔታን ማረጋገጥ ይችላሉ-

CSE፡ Kubernetes በ 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

የአንድ ዘለላ አፈጣጠር ታሪክ የሚያበቃበት እና የህይወት ዑደቱ ታሪክ የሚጀምረው እዚህ ላይ ነው። እንደ ጉርሻ፣ አንዳንድ ጊዜ ሀብቶችን እንድታስቀምጡ ወይም እንዳታስቀምጡ የሚያስችሉህ ሁለት ተጨማሪ ጠቃሚ የሲኤስኢ ትዕዛዞች አሉ።

#Увеличиваем размер кластера до 8 воркер нод
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8

#Выводим ненужные ноды из кластера с их последующим удалением
>vcd cse node delete MyCluster node-1a2v node-6685 --yes

ሁላችሁንም ስለ ጊዜያችሁ አመሰግናለው ማንኛውም አይነት ጥያቄ ካላችሁ በአስተያየቶቹ ውስጥ ጠይቁ።

ምንጭ: hab.com

አስተያየት ያክሉ