แแแฃแแแ แฏแแก แงแแแแแก!
แแแฎแแ แแกแ, แ แแ แฉแแแแ แแแขแแ แ แแฃแแแ, แ แแ แแฆแแ แแคแแ แ แแแฅแแแ, แ แแ แแฎแแแฎแแแก แแ แ แ แแฅแแ แฃแแแ แแแฃแแแแแแแแ, แแแแแแ แแ แแแแ, แ แแ แแแแแแ แแ (แแ แแแแแแแแจแ แงแแแแ) แแ แแแฃแฅแขแ Kubernetes-แจแ แแแแแแขแแแ.
แแแแก แแแแ แ แแแแแแ แฐแฅแแแแ, แแแแ แแ แฉแแแแ แแแแแแ แฐแแแแแแ แแ แแ แแ แแก.
แฉแแแ แแชแแ แ แแ แฉแแแแแ แแแฅแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแกแแแ แแแแแแจแแ แแแแ. vCloud แแแ แแฅแขแแ แ แแ vCloud แแแ แแฅแขแแ แ. แฉแแแ แแแแ แฉแแแ แฃแคแ แ แแฎแแแ แแ แแแแแแฌแงแแแขแแ แแแแแฌแงแแ.
แแแแแ แแ แแฎแแ, โแ แแฃแแ แแแแกโ แแแแแฎแแแแแ, แซแแแแแ แกแฌแ แแคแแ แแแแแแ แแแกแแแแแแแ, แ แแ แแฃแจแแ แกแแญแแ แ แแงแ แแแแแแฃแ แซแแ แแแแแ แแ แแชแแกแแแแก แแแขแแแแขแแแแชแแแก แแแกแขแ แฃแแแแขแ, แ แแแแ แแชแแ แแแแแแแแแ แแ แแแแ. Google-แจแ แฆแ แแ แฉแแซแแ แแแ แแแแแแแแแแ แแกแแแ แแ แแแฃแฅแขแ, แ แแแแ แแชแแ VMware Container Service Extension (CSE) - แฆแแ แแแแแก แแ แแแฃแฅแขแ, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแขแแแแขแแแแ แแแ k8s แแแแกแขแแ แแแแก แจแแฅแแแ แแ แแแแ vCloud-แจแ แแงแแคแแแแแแก.
แแแกแฃแฎแแกแแแแแแแแแก แจแแแฆแฃแแแ: CSE-แก แแฅแแก แแแแแกแ แจแแแฆแฃแแแแแ, แแแแ แแ แฉแแแแ แแแแแแแแกแแแแก แแก แกแ แฃแแงแแคแแแ แแงแ. แแกแแแ, แแแแแกแแแแแ แฃแแแ แแงแแก แแฎแแ แแแญแแ แแแ แฆแ แฃแแแแแแแ แแ แแแแแแแ แแก แแแแ , แแแแ แแ แ แแแแแ แกแแ แแแ แแก แแแฌแแแ แแกแแแ แฆแแ แฌแงแแ แแ, แกแแฎแแแแ แแฅแแแแก แฃแแฎแแแแก แแแแแฏแแ แก, แ แแ แแก แฎแแแแแกแแฌแแแแแ แแงแแก :)
แแแกแ แแแแแงแแแแแแก แแแกแแฌแงแแแแ, แแญแแ แแแแแ แแแแแแแกแขแ แแขแแ แแก แแแแแ แแจแ vCloud แแ แแแแแแแชแแแจแ แแ แแแแกแขแแ แแกแแแแก แแแ แ แจแแฅแแแแแ แแแ แจแ แฃแขแแ แแแฃแแ แฅแกแแแ (แแแแแแแแแแก แแ แแชแแกแแก แแ แแก แแญแแ แแแแแ แแแขแแ แแแขแ แแ แฅแกแแแแแแ, แแ แแแแแแแฌแงแแแ Firewall/NAT-แแก แแแแคแแแฃแ แแชแแ). แแแแแ แแแแก แแ แแฅแแก แแแแจแแแแแแแ. แแ แแแแแแแแจแ แแแแฆแแ 10.0.240.0/24
แแแแแแแแ แจแแฅแแแแก แจแแแแแ แแแแกแขแแ แก แ แแแแ แแ แแแ แแแ แแแกแญแแ แแแแ, แ แแแแแแแแแ แแแฃแแแ แแฅแแแแแ VPN แจแแฅแแแแ แฅแกแแแจแ แแแ แจแ แฃแขแแ แแแแ. แฉแแแ แแแงแแแแแ แกแขแแแแแ แขแฃแ SSL VPN-แก, แ แแแแแแช แแแแคแแแฃแ แแ แแแฃแแแ แฉแแแแ แแ แแแแแแแชแแแก Edge Gateway-แแ.
แจแแแแแแ, แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ CSE แแแแแแขแ, แกแแแแช k8s แแแแกแขแแ แแแ แแแแ แแแแ. แฉแแแก แจแแแแฎแแแแแจแ, แแก แแ แแก แกแแแฃแจแแ แแแแขแแแ แแ แ แแแแแแแแ แแแ แแแ แแแแแแฃแแ แแแแขแแแแแ แ, แ แแแแแแแช แแแขแแแแขแแแแ แแแแก แแแ แแแแแ.
แแแแแแขแก แกแญแแ แแแแ Python 3.7.3 แแ แฃแคแ แ แแแฆแแแ แแแ แกแแแก แแแแแกแขแแแแ แแแ แแ แแแแฃแแแก แแแแแกแขแแแแ แแแ
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
แแฃ แจแแชแแแแแก แแแแแฆแแแ แจแแชแแแแ: แกแแกแแแก แแแแ แแแฃแแแแ แแ แแแแฎแแแ แแแแแ แแ แแ แแก แจแแกแฃแแ. แแแฎแแแ แฎแแแแฎแแ แจแแฎแแแแแ. โ แแกแแ แจแแแแ 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 โ Worker แแแแแซแแแแก แ แแแแแแแแ แแแแกแขแแ แจแ. แงแแแแแแแแก แแฅแแแแ แแ แแ แแกแขแแขแ, แแก แแ แแก CSE แจแแแฆแฃแแแ
โ enable-nfs โ แจแแฅแแแแแ แแแแแขแแแแแ แแแแแซแ NFS แแแแแแ แแแแแแกแแแแก แแฃแแแแแ แขแแแแแแก แฅแแแจ. แแก แแ แแก แชแแขแ แแแแแแก แแแ แแแแขแ; แฉแแแ แแแแฃแแ แฃแแแแแแ แ แแแฃแแแ แแแแก, แ แแกแแช แแก แแแแแแแก แชแแขแ แแแแแแแแแแแ.
แแแแแแ แแฃแแแ, vCloud-แจแ แจแแแแซแแแแ แแแแฃแแแฃแ แแ แแแแแขแ แแแแ แแแแกแขแแ แแก แจแแฅแแแ
แแแแกแขแแ แแก แจแแฅแแแแก แแแแแแแแแก แแแกแ แฃแแแแแก แจแแแแแ, แแก แแแแ แแ แแก แแแแแกแแงแแแแแแแ.
แแแแแ แจแแแแแแฌแแแ แแแแแแแแแแก แกแแกแฌแแ แ แแ แซแแแแแแ vcd cse แแแแกแขแแ แแก แแแคแแ แแแชแแ MyCluster
แจแแแแแ แฉแแแ แฃแแแ แแแแแฆแแ แแแกแแขแฃแ แ แแแแคแแแฃแ แแชแแ แแแแแกแแงแแแแแแแ แแฃแแแฅแขแแ
# vcd cse cluster config MyCluster > ./.kube/config
แแ แแฅแแแ แจแแแแซแแแแ แจแแแแแฌแแแ แแแแกแขแแ แแก แกแขแแขแฃแกแ แแแกแ แแแแแงแแแแแแ:
แแ แแขแแแแ, แแแแกแขแแ แ แจแแแซแแแแ แฉแแแแแแแแก แแแ แแแแแแ แแแฅแแแแแ, แแฃ แแ แ แกแแฃแแแขแ แแฃแแแแแ แแแชแฃแแแแแ. แแแแแแแแ แฉแแแ แแแ แ 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
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
แแแแแแแแ แงแแแแแก แแแแแแแแแแกแแแแก, แแฃ แแฅแแแ แแแฅแแ แ แแแแ แจแแแแแฎแแแแ, แแแกแแแ แแแแแแขแแ แแแจแ.
แฌแงแแ แ: www.habr.com