CSE: Kubernetes pikeun maranéhanana di vCloud

CSE: Kubernetes pikeun maranéhanana di vCloud
Hello dulur!

Ieu jadi kajadian nu tim leutik urang, teu ngomong yén anyar, jeung pasti moal ujug-ujug, geus tumuwuh pikeun mindahkeun sababaraha (jeung di mangsa nu bakal datang sadaya) produk ka Kubernetes.

Aya seueur alesan pikeun ieu, tapi carita urang sanés ngeunaan holivar.

Kami ngagaduhan sakedik pilihan ngeunaan dasar infrastruktur. Diréktur vCloud sareng Diréktur vCloud. Kami milih anu langkung énggal sareng mutuskeun pikeun ngamimitian.

Sakali deui, pilari ngaliwatan "The Hard Way," Kuring gancang pisan sumping ka kacindekan yén alat pikeun automating sahenteuna prosés dasar, kayaning deployment na ukuran, diperlukeun kamari. A beuleum jero kana Google dibawa ka lampu produk kayaning VMware Container Service Extension (CSE) - hiji produk open source nu ngidinan Anjeun pikeun ngajadikeun otomatis kreasi jeung ukuran klaster k8s pikeun maranéhanana di vCloud.

Bantahan: CSE ngagaduhan watesan, tapi pikeun tujuan urang éta sampurna. Ogé, solusina kedah dirojong ku panyadia awan, tapi kumargi bagian server ogé open-source, naroskeun ka manajer pangcaketna anjeun pikeun nyayogikeunana :)

Pikeun mimitian nganggo éta, anjeun peryogi akun administrator dina organisasi vCloud sareng jaringan rute anu didamel sateuacana pikeun kluster (salila prosés panyebaran, anjeun peryogi aksés Internét tina jaringan ieu, ulah hilap pikeun ngonpigurasikeun Firewall / NAT). Alamat henteu masalah. Dina conto ieu, hayu urang nyandak 10.0.240.0/24

CSE: Kubernetes pikeun maranéhanana di vCloud

Kusabab saatos nyiptakeun, kluster kedah diurus kumaha waé, disarankeun pikeun gaduh VPN kalayan rute ka jaringan anu diciptakeun. Kami nganggo SSL VPN standar anu dikonpigurasi dina Edge Gateway organisasi kami.

Salajengna, anjeun kedah masang klien CSE dimana klaster k8s bakal diurus. Dina hal kuring, ieu mangrupikeun laptop anu tiasa dianggo sareng sababaraha wadah anu disumputkeun anu nyorong otomatis.

Klién merlukeun versi Python 3.7.3 jeung luhur dipasang na modul dipasang vcd-cli, jadi hayu urang install duanana.

pip3 install vcd-cli

pip3 install container-service-extension

Saatos dipasang, urang pariksa versi CSE sareng kéngingkeun ieu:

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

Teu kaduga, tapi fixable. Salaku tétéla, CSE perlu napel salaku modul pikeun vcd-cli.
Jang ngalampahkeun ieu, anjeun kedah log in heula vcd-cli ka organisasi kami:

# vcd login MyCloud.provider.com org-dev admin
Password: 
admin logged in, org: 'org-dev', vdc: 'org-dev_vDC01'

Saatos ieu, vcd-cli bakal nyiptakeun file konfigurasi ~/.vcd-cli/profiles.yaml
Dina tungtungna anjeun kedah nambihan ieu:

extensions:
  - container_service_extension.client.cse

Teras we pariksa deui:

# vcd cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.5.0

Fase instalasi klien geus réngsé. Hayu urang coba nyebarkeun klaster munggaran.
CSE ngagaduhan sababaraha sét parameter pamakean, sadayana tiasa ditingali dieu.

Kahiji, hayu urang nyieun konci pikeun aksés sandi mun klaster hareup. Titik ieu penting, sabab sacara standar, login sandi ka titik bakal ditumpurkeun, sareng upami anjeun henteu nyetél konci, anjeun tiasa kéngingkeun seueur padamelan ngalangkungan konsol mesin virtual, anu henteu pikaresepeun.

# 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.

Hayu urang coba ngamimitian nyieun klaster:

vcd cse cluster create MyCluster --network k8s_cluster_net --ssh-key ~/.ssh/id_rsa.pub --nodes 3 --enable-nfs

Lamun urang meunang kasalahan Kasalahan: Sidang geus kadaluwarsa atawa pamaké teu asup. Mangga lebet deui. - log in deui vcd-cli ka vCloud sakumaha ditétélakeun di luhur sarta cobian deui.

Waktos ieu sadayana saé sareng tugas nyiptakeun kluster parantos ngamimitian.

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 kira-kira 20 menit pikeun ngarengsekeun tugas; Samentawis éta, hayu urang tingali parameter peluncuran dasar.

—jaringan — jaringan anu urang jieun saméméhna.
—ssh-key — konci anu urang ciptakeun, anu bakal diserat kana titik kluster
-titik n - Jumlah titik Worker dina klaster. Bakal salawasna aya hiji master, ieu watesan CSE
-enable-nfs - nyiptakeun titik tambahan pikeun saham NFS dina volume anu tetep. Ieu sakedik pilihan pedal; urang bakal uih deui kana tuning naon anu dilakukeun engké.

Samentara éta, dina vCloud anjeun tiasa ngawaskeun sacara visual nyiptakeun klaster
CSE: Kubernetes pikeun maranéhanana di vCloud

Sakali tugas nyieun klaster réngsé, éta siap dipaké.

Hayu urang pariksa correctness tina deployment kalawan paréntah vcd cse klaster info MyCluster

CSE: Kubernetes pikeun maranéhanana di vCloud

Salajengna urang kedah kéngingkeun konfigurasi klaster pikeun dianggo kubectl

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

Sareng anjeun tiasa pariksa status kluster nganggo éta:

CSE: Kubernetes pikeun maranéhanana di vCloud

Dina titik ieu, kluster tiasa dianggap tiasa dianggo sacara kondisional, upami henteu pikeun carita kalayan volume pengkuh. Kusabab kami di vCloud, urang moal tiasa nganggo vSphere Provider. Pilihan --aktipkeun-nfs dirancang pikeun lemes kaluar gangguan ieu, tapi teu hasil lengkep. adjustment manual diperlukeun.

Pikeun ngamimitian, titik urang kedah nyiptakeun disk Independen anu misah dina vCloud. Ieu ngajamin yén data urang moal leungit babarengan jeung klaster lamun dihapus. Ogé, sambungkeun disk ka NFS

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

Saatos éta, urang ngalangkungan ssh (anjeun leres-leres nyiptakeun konci?) Ka titik NFS kami sareng tungtungna nyambungkeun 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

Jieun diréktori pikeun data sareng pasang partisi énggal di dinya:

mkdir /export
echo '/dev/sdb1  /export   ext4  defaults   0 0' >> /etc/fstab
mount -a

Hayu urang ngadamel lima partisi tés sareng bagikeun pikeun 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

Barina ogé sihir ieu, urang tiasa nyiptakeun PV sareng PVC dina klaster urang sapertos kieu:
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

Ieu tempat carita kreasi hiji klaster tungtung jeung carita siklus hirup na dimimitian. Salaku bonus, aya dua paréntah CSE anu langkung mangpaat anu ngamungkinkeun anjeun sakapeung ngahémat sumber atanapi henteu:

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

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

Hatur nuhun sadayana pikeun waktos anjeun, upami anjeun gaduh patarosan, tanyakeun dina koméntar.

sumber: www.habr.com

Tambahkeun komentar