ΠΡΠ΅ΠΌ ΠΡΠΈΠ²Π΅Ρ!
Kedaden sing tim cilik kita, ora ngomong sing bubar, lan mesthi ora dumadakan, wis thukul kanggo mindhah sawetara (lan ing mangsa kabeh) produk kanggo Kubernetes.
Ana akeh alasan kanggo iki, nanging crita kita ora babagan holivar.
Kita ora duwe pilihan babagan basis infrastruktur. Direktur vCloud lan Direktur vCloud. Kita milih sing luwih anyar lan mutusake kanggo miwiti.
Sawise maneh, nggoleki "The Hard Way," Aku cepet banget nyimpulake yen alat kanggo ngotomatisasi paling ora proses dhasar, kayata penyebaran lan ukuran, dibutuhake wingi. Nyilem jero menyang Google nggawa produk kaya VMware Container Service Extension (CSE) - produk open source sing ngidini sampeyan ngotomatisasi nggawe lan ukuran kluster k8s kanggo sing ana ing vCloud.
Penafian: CSE duwe watesan, nanging kanggo tujuan kita pancen sampurna. Uga, solusi kasebut kudu didhukung dening panyedhiya maya, nanging amarga bagean server uga mbukak-sumber, takon manajer sing paling cedhak supaya kasedhiya :)
Kanggo miwiti nggunakake, sampeyan butuh akun administrator ing organisasi vCloud lan jaringan rute sing wis digawe sadurunge kanggo kluster (sajrone proses penyebaran, sampeyan butuh akses Internet saka jaringan iki, aja lali ngatur Firewall / NAT). Ngalamat ora masalah. Ing conto iki, ayo njupuk 10.0.240.0/24
Wiwit sawise nggawe, kluster kudu dikelola piye wae, disaranake duwe VPN kanthi nuntun menyang jaringan sing digawe. Kita nggunakake SSL VPN standar sing dikonfigurasi ing Edge Gateway organisasi kita.
Sabanjure, sampeyan kudu nginstal klien CSE ing ngendi kluster k8s bakal dikelola. Ing kasusku, iki minangka laptop sing bisa digunakake lan sawetara kontaner sing didhelikake kanthi otomatis.
Klien mbutuhake versi Python 3.7.3 lan luwih diinstal lan modul diinstal
pip3 install vcd-cli
pip3 install container-service-extension
Sawise instalasi, kita mriksa versi CSE lan entuk ing ngisor iki:
# vcd cse version
Error: No such command "cse".
Ora dikarepke, nanging bisa didandani. Dadi metu, CSE kudu ditempelake minangka modul kanggo vcd-cli.
Kanggo nindakake iki, sampeyan kudu mlebu vcd-cli menyang organisasi kita:
# vcd login MyCloud.provider.com org-dev admin
Password:
admin logged in, org: 'org-dev', vdc: 'org-dev_vDC01'
Sawise iki, vcd-cli bakal nggawe file konfigurasi ~/.vcd-cli/profiles.yaml
Ing pungkasan sampeyan kudu nambah ing ngisor iki:
extensions:
- container_service_extension.client.cse
Banjur kita mriksa maneh:
# vcd cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.5.0
Tahap instalasi klien wis rampung. Ayo nyoba masang kluster pisanan.
CSE duwe sawetara set paramèter panggunaan, kabeh bisa dideleng
Pisanan, ayo nggawe kunci kanggo akses tanpa sandi menyang kluster sing bakal teka. Titik iki penting, amarga kanthi gawan, login sandi menyang simpul bakal dipateni, lan yen sampeyan ora nyetel tombol, sampeyan bisa entuk akeh karya liwat konsol mesin virtual, sing ora trep.
# 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
Yen kita entuk kesalahan Error: Sesi wis kadaluwarsa utawa pangguna ora mlebu. Mangga mlebu maneh. - mlebu maneh vcd-cli menyang vCloud kaya sing kasebut ing ndhuwur lan coba maneh.
Wektu iki kabeh apik lan tugas nggawe kluster wis diwiwiti.
cluster operation: Creating cluster vApp 'MyCluster' (38959587-54f4-4a49-8f2e-61c3a3e879e0) from template 'photon-v2_k8-1.12_weave-2.3.0' (revision 1)
Butuh udakara 20 menit kanggo ngrampungake tugas; sauntara iku, ayo goleki paramèter peluncuran dhasar.
βjaringan β jaringan sing digawe sadurunge.
-ssh-key - tombol sing digawe, sing bakal ditulis ing simpul kluster
-node n - Jumlah kelenjar Worker ing kluster. Bakal mesthi ana siji master, iki minangka watesan CSE
-enable-nfs - nggawe simpul tambahan kanggo saham NFS ing volume sing terus-terusan. Iki minangka pilihan pedal; kita bakal bali menyang nyetel apa sing ditindakake mengko.
Kangge, ing vCloud sampeyan bisa ngawasi kanthi visual nggawe kluster
Sawise tugas nggawe kluster rampung, siap digunakake.
Ayo priksa manawa panyebaran kanthi prentah vcd cse cluster info MyCluster
Sabanjure kita kudu njaluk konfigurasi kluster kanggo nggunakake kubectl
# vcd cse cluster config MyCluster > ./.kube/config
Lan sampeyan bisa mriksa status kluster nggunakake:
Ing titik iki, kluster bisa dianggep kanthi kondisional, yen ora kanggo crita kanthi volume sing terus-terusan. Amarga kita ana ing vCloud, kita ora bakal bisa nggunakake Provider vSphere. Pilihan --aktif-nfs dirancang kanggo Gamelan metu gangguan iki, nanging ora bisa rampung. Pangaturan manual dibutuhake.
Kanggo miwiti, simpul kita kudu nggawe disk Independen sing kapisah ing vCloud. Iki njamin yen data kita ora bakal ilang bebarengan karo kluster yen wis dibusak. Uga, sambungake disk menyang NFS
# vcd disk create nfs-shares-1 100g --description 'Kubernetes NFS shares'
# vcd vapp attach mycluster nfsd-9604 nfs-shares-1
Sawise iku, kita pindhah liwat ssh (sampeyan pancene nggawe tombol?) menyang simpul NFS lan pungkasane nyambungake disk:
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
Gawe direktori kanggo data lan pasang partisi anyar ing kana:
mkdir /export
echo '/dev/sdb1 /export ext4 defaults 0 0' >> /etc/fstab
mount -a
Ayo nggawe limang partisi tes lan dibagi kanggo kluster:
>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
Sawise kabeh sihir iki, kita bisa nggawe PV lan PVC ing kluster kaya iki:
Wartawan:
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
pvc:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 10Gi
EOF
Ing kene pungkasane crita nggawe siji kluster lan crita siklus uripe diwiwiti. Minangka bonus, ana rong perintah CSE sing luwih migunani sing ngidini sampeyan nyimpen sumber daya utawa ora:
#Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π΄ΠΎ 8 Π²ΠΎΡΠΊΠ΅Ρ Π½ΠΎΠ΄
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8
#ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π½ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Ρ ΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
>vcd cse node delete MyCluster node-1a2v node-6685 --yes
Matur nuwun kabeh kanggo wektu sampeyan, yen sampeyan duwe pitakon, takon ing komentar.
Source: www.habr.com