CSE: Kubernetes для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π² vCloud-Π΅

CSE: Kubernetes для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π² vCloud-Π΅
ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚!

Π’Π°ΠΊ слоТилось, Ρ‡Ρ‚ΠΎ наша нСбольшая ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π½Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅Π΄Π°Π²Π½ΠΎ, ΠΈ ΡƒΠΆ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ, доросла Π΄ΠΎ пСрСноса Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… (Π° Π² пСрспСктивС ΠΈ всСх) ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π² Kubernetes.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½ Ρ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ мноТСство, Π½ΠΎ наша история Π½Π΅ ΠΏΡ€ΠΎ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€.

Из инфраструктурной основы Π²Ρ‹Π±ΠΎΡ€ Ρƒ нас Π±Ρ‹Π» нСбольшой. vCloud Director ΠΈ vCloud Director. Π’Ρ‹Π±Ρ€Π°Π»ΠΈ Ρ‚ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½ΠΎΠ²Π΅Π΅ ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ.

Π’ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π°Π· полистав Β«The Hard WayΒ», я ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ инструмСнт для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ хотя Π±Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… процСссов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ сайзинг, Π½ΡƒΠΆΠ΅Π½ Π΅Ρ‰Ρ‘ Π²Ρ‡Π΅Ρ€Π°. Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² Π³ΡƒΠ³Π» явило Π½Π° свСт Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΊΠ°ΠΊ VMware Container Service Extension (CSE) β€” опСнсорсный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ созданиС ΠΈ сайзинг k8s кластСров для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π² vCloud-Π΅.

Disclaimer: CSE ΠΈΠΌΠ΅Π΅Ρ‚ свои ограничСния, Π½ΠΎ для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ ΠΎΠ½ ΠΏΠΎΠ΄ΠΎΡˆΡ‘Π» идСально. Π’Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ, Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ open-source, Ρ‚Ρ€Π΅Π±ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ наличия Ρƒ блиТайшСго ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° πŸ™‚

Для Π½Π°Ρ‡Π°Π»Π° использования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ администратора Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ vCloud ΠΈ Π·Π°Π±Π»Π°Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ созданная routed-ΡΠ΅Ρ‚ΡŒ для кластСра (Π² процСссС дСплоя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ доступ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠ· этой сСти, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Firewall/NAT). АдрСсация Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ 10.0.240.0/24

CSE: Kubernetes для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π² vCloud-Π΅

Π’Π°ΠΊ ΠΊΠ°ΠΊ послС создания, кластСром Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, рСкомСндуСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ VPN с ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стандартный SSL-VPN, настроСнный Π½Π° Edge Gateway нашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ 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

Если ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ Error: Session has expired or user not logged in. Please re-login. β€” снова Π»ΠΎΠ³ΠΈΠ½ΠΈΠΌ 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 ΠΌΠΈΠ½ΡƒΡ‚, Ρ‚Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запуска.

—network β€” созданная Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ ΡΠ΅Ρ‚ΡŒ.
—ssh-key β€” созданныС Π½Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ записаны Π½Π° Π½ΠΎΠ΄Ρ‹ кластСра
—nodes n β€” ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Worker Π½ΠΎΠ΄ кластСра. ΠœΠ°ΡΡ‚Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ всСгда ΠΎΠ΄ΠΈΠ½, это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ CSE
—enable-nfs β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½ΠΎΠ΄Ρƒ для NFS ΡˆΠ°Ρ€Ρ‹ ΠΏΠΎΠ΄ persistent volumes. НСмного пСдальная опция, ΠΊ донастройкС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚, ΠΌΡ‹ вСрнёмся Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

Π’Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π² vCloud ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° созданиСм кластСра
CSE: Kubernetes для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π² vCloud-Π΅

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Ρ‡Π° создания кластСра Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ, ΠΎΠ½ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ дСплоя ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ vcd cse cluster info MyCluster

CSE: Kubernetes для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π² vCloud-Π΅

Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ кластСра для использования kubectl

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

И ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС кластСра ΡƒΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Ρ‘:

CSE: Kubernetes для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π² vCloud-Π΅

На этом ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅ кластСр ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ условно Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ, Ссли Π±Ρ‹ Π½Π΅ история с persistent volumes. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π² vCloud-Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ vSphere Provider Π½Π΅ получится. ΠžΠΏΡ†ΠΈΡ —enable-nfs ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΡΠ³Π»Π°Π΄ΠΈΡ‚ΡŒ эту Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°. ВрСбуСтся ручная донастройка.

Для Π½Π°Ρ‡Π°Π»Π° нашСй Π½ΠΎΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Independent диск Π² 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

CΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΡ‚ΡŒ тСстовых Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ Ρ€Π°ΡΡˆΠ°Ρ€ΠΈΠΌ ΠΈΡ… для кластСра:

>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 Π² нашСм кластСрС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:
PV:

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

На этом история создания ΠΎΠ΄Π½ΠΎΠ³ΠΎ кластСра заканчиваСтся ΠΈ начинаСтся история Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ качСствС бонуса β€” Π΅Ρ‰Ρ‘ Π΄Π²Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CSE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°ΠΌΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ рСсурсы:

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

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

ВсСм спасибо Π·Π° ΡƒΠ΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ врСмя, Ссли Π±ΡƒΠ΄ΡƒΡ‚ вопросы β€” Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π² комСнтариях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com