CSE: Kubernetes pro iis qui in vCloud

CSE: Kubernetes pro iis qui in vCloud
ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚!

Accidit ut nostra parva manipulus, non nuper, et certe non repente, increvit ut aliquos (et in futuro omnes) productos ad Kubernetes moveret.

Multae rationes huius rei fuerunt, sed fabula nostra de holivar non est.

Habuimus parvam electionem circa basim infrastructuram. vCloud Director and vCloud Director. Noviorem unum elegimus et initium constituimus.

Iterum perspectans "Viam duram" celerrime conclusum est instrumentum ad automandum saltem processuum fundamentalium, ut instruere et explorare, heri opus esse. Altum dive in Google in lucem produxit talem productum ut VMware Continens servitii Extensio (CSE) - fons apertus uber, qui permittit te ut automate creationem et inspectionem uvarum k8s pro illis in vCloud.

Disclaimer: CSE limitationes suas habet, sed ad propositum nostrum perfectum erat. Solutio etiam provisor nubilo sustentari debet, sed cum pars servientis etiam fons apertus sit, petit procuratorem proximum tuum ut praesto sit :)

Ut utendo incipias, administratorem rationem debes in vCloud organizatione et retiaculum ante creatum pro botro fusum (in processu instruere, accessum interretialem ab hac retis debes, Firewall/NAT configurare noli). Addressing non refert. In hoc exemplo sumamus 10.0.240.0/24

CSE: Kubernetes pro iis qui in vCloud

Cum post creationem, botrus aliquo modo tractari opus erit, commendatur habere VPN cum excitandis ad network creatum. Vexillo SSL VPN figuratus utimur in porta nostra Edge Edge.

Deinde, debes clientem CSE instituere ubi racemi k8s tractabuntur. In casu meo, hoc laptop opus est et in duobus vasis bene occultis qui automationem pellunt.

Cliens Python versionem 3.7.3 requirit et altius inauguratus et modulus installed vcd-cliutrasque sic instituamus.

pip3 install vcd-cli

pip3 install container-service-extension

Post institutionem CSE versionem coarguimus et sequentia obtinemus:

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

Inopinatus, sed punctualis. Cum evenit, CSE adnectitur moduli vcd-cli.
Ad hoc faciendum, prius aperi in vcd-cli ad nostram ordinationem;

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

Post hoc, vcd-cli figurationem creabit ~/.vcd-cli/profiles.yaml
In fine addere debes sequentia:

extensions:
  - container_service_extension.client.cse

Deinde iterum reprehendo:

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

Cliens periodus institutionis perfecta est. Experiamur primum botrum explicandi.
CSE varios usus parametri habet, omnes aspici possunt hic.

Primum, claves faciamus pro ignobili accessu ad botrum futurum. Hoc punctum magni momenti est, quia per defaltam, tesseram rationis ad nodi debilis erit, et si claves non posueris, multum laboris per machinae virtualis solatur, quod non convenit.

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

Conemur initium creans botrum

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

Si errorem accipere Error: Sessio expiratus vel user non initium. Quaeso re-login. β€” iterum ini in vcd-cli ad vCloud ut supra dictum est et iterum tenta.

Hoc tempore omnia bona sunt et opus botri creandi incepit.

cluster operation: Creating cluster vApp 'MyCluster' (38959587-54f4-4a49-8f2e-61c3a3e879e0) from template 'photon-v2_k8-1.12_weave-2.3.0' (revision 1)

Opus circiter XX minuta perficiendum erit, interim parametros fundamentales inspiciamus.

- network - retis prius creavimus.
-ssh-key - claves creavimus, quae scribentur ad nodos botri
-nodes n - Nodi operariorum in botro. Unus dominus semper erit, haec limitatio est CSE
β€”enable-nfs β€” nodi additum creare pro NFS participat sub assiduis voluminibus. Aliquantulus optionis pedali est, nos ad tuning recipiemus quod paulo post facit.

Interim in vCloud creaturam botri uisum monere potes
CSE: Kubernetes pro iis qui in vCloud

Finito negotio botri conficiendi, ad usum paratum est.

Sit scriptor reprehendo cum imperio rectitudo elit vcd cse botrum portassent info MyCluster

CSE: Kubernetes pro iis qui in vCloud

Deinde opus est ut configuratione botri utendi kubectl

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

Et sisti potes statum botri utens eo;

CSE: Kubernetes pro iis qui in vCloud

Hic botrus sub condicione laborans considerari potest, nisi pro libris assiduis historia. Cum in vCloud sumus, vSphere Providentem uti non poterimus. Option --enable-nfs hoc nocumentum extendere voluit, sed omnino non elaboravit. Commendatio manualis requiritur.

Nodus noster imprimis debet orbium separatum independens in vCloud creare. Haec cautiones nostrae notitiae cum botro si deletae non erunt. Etiam, ad NFS orbem coniungere

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

Post hoc, imus per ssh (vere creavisti claves?) ad nodi nostri NFS ac tandem coniungunt orbem:

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

Facere directorium pro notitia et partitionem novam conscende ibi:

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

Quinque partitiones examinis faciamus et pro botro communicamus;

>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

Post hanc magicam universam, possumus PV et PVC creare in botro nostro aliquid huius modi:
Notario:

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

Hic est ubi incipit narratio de creatione uvae et incipit narratio vitae cycli. Sicut bonus, duo sunt utilia mandata CSE quae te aliquando conservare permittunt vel non;

#Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра Π΄ΠΎ 8 Π²ΠΎΡ€ΠΊΠ΅Ρ€ Π½ΠΎΠ΄
>cse cluster resize MyCluster --network k8s_cluster_net --nodes 8

#Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½ΠΎΠ΄Ρ‹ ΠΈΠ· кластСра с ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
>vcd cse node delete MyCluster node-1a2v node-6685 --yes

Gratias tibi omnes pro tempore tuo, si quaestiones habes, in commentarios require.

Source: www.habr.com