29 ΡΠ½Π²Π°ΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΈΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ CNCF (Cloud Native Computing Foundation), ΡΡΠΎΡΡΠ΅ΠΉ Π·Π° Kubernetes, Prometheus ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Open Source-ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ ΠΈΠ· ΠΌΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ cloud native,
Π§ΡΠΎ Π·Π° Rook?
ΠΡΠΎΠ΅ΠΊΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π°Π»ΡΡΠ°-ΡΡΠ°Π΄ΠΈΠΈ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ²ΠΊΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ceph Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°Ρ Kubernetes. ΠΠ²ΡΠΎΡΡ Π·Π°ΡΠ²Π»ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎ ΠΏΠ»Π°Π½Π°Ρ ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΡΡΠΎ ΡΠ»ΡΡΠΈΡΡΡ Π½Π΅ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠ΅Π»ΠΈΠ·Π°Ρ .
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π±ΠΎΡΡ Rook Π²Π½ΡΡΡΠΈ Kubernetes β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Kubernetes Operators ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ Π²
ΠΡΠ°ΠΊ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Rook ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π‘ΡΠ΅Π΄ΠΈ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°:
- ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DaemonSet Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Ceph (
ceph-osd ) Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ RADOS; - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Ceph (Ρ
ceph-mon , ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°; Π΄Π»Ρ ΠΊΠ²ΠΎΡΡΠΌΠ° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΈ ΠΏΡΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ); - ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ CRDs (
Custom Resource Definitions ) Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎΠΊΠ»Π°ΡΡΠ΅ΡΠ° ,ΠΏΡΠ»ΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ,object stores (Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ PUT/GET Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², β ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ S3 ΠΈ Swift API), Π° ΡΠ°ΠΊΠΆΠ΅ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ; - ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠ΅Ρ Π½ΡΠΆΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²;
- ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Π³Π΅Π½ΡΠΎΠ² Rook.
ΠΠ³Π΅Π½ΡΡ Rook ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ Kubernetes. ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π³Π΅Π½ΡΠ° β ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°
ΠΠ΅ΡΡΠΎ ΠΈ ΡΠΎΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Rook Π² ΠΎΠ±ΡΠ΅ΠΉ ΡΡ
Π΅ΠΌΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes
Rook ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠΈ Π²ΠΈΠ΄Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ:
-
Π±Π»ΠΎΡΠ½ΠΎΠ΅ (Block,StorageClass
) β ΠΌΠΎΠ½ΡΠΈΡΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ; -
ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ (Object,ObjectStore
) β Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π²Π½ΡΡΡΠΈ ΠΈ Π²Π½Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes (ΠΏΠΎ S3 API); -
ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ Π€Π‘ (Shared File System,Filesystem
) β ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΠ΄ΠΎΠ².
ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Rook Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
- Mons β ΠΏΠΎΠ΄Ρ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Ceph (Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΌΠΈ ceph-mon);
- OSDs β ΠΏΠΎΠ΄Ρ Ρ Π΄Π΅ΠΌΠΎΠ½Π°ΠΌΠΈ ceph-osd (Object Storage Daemons);
- MGR β ΠΏΠΎΠ΄Ρ Ρ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ
ceph-mgr (Ceph Manager), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ (ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°/ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ); - RGW (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) β ΠΏΠΎΠ΄Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ;
- MDS (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) β ΠΏΠΎΠ΄Ρ Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π€Π‘.
ΠΡΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ Rook (Mons, OSDs, MGR, RGW, MDS) ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² Π΅Π΄ΠΈΠ½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ (rook
), Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.
ΠΠ»Ρ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Rook ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ (12 ΡΠ»Π°ΠΉΠ΄ΠΎΠ²)
ΠΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ Rook
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Rook ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Kubernetes Π²Π΅ΡΡΠΈΠΈ 1.6 ΠΈ Π²ΡΡΠ΅ (ΠΈ, ΡΠ°ΡΡΠΈΡΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠΉ ΡΠ΅Π»ΠΈΠ· K8s β 1.5.2). ΠΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ Π²
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yaml
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Rook ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook
ΠΠΌΠ΅Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ helm install
ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --set key=value[,key=value]
(ΠΈΠ»ΠΈ Ρ
ΡΠ°Π½ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ YAML-ΡΠ°ΠΉΠ»Π΅, Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ β ΡΠ΅ΡΠ΅Π· -f values.yaml
).
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Rook ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ² Ρ Π΅Π³ΠΎ Π°Π³Π΅Π½ΡΠ°ΠΌΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠ΅Ρ Rook, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (rook-cluster.yaml
):
apiVersion: v1
kind: Namespace
metadata:
name: rook
---
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
name: rook
namespace: rook
spec:
dataDirHostPath: /var/lib/rook
storage:
useAllNodes: true
useAllDevices: false
storeConfig:
storeType: bluestore
databaseSizeMB: 1024
journalSizeMB: 1024
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π½Π° Π°ΡΡΠΈΠ±ΡΡ dataDirHostPath
, ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΎΠΊ. ΠΠ»Ρ ΡΠ»ΡΡΠ°Π΅Π² Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Rook Π½Π° Ρ
ΠΎΡΡΠ°Ρ
Kubernetes Π°Π²ΡΠΎΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΈΠΌΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ
ΠΎΡΡ Π±Ρ 5 ΠΠ± ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
ΠΡΡΠ°ΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ (Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ rook
):
kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NAME READY STATUS RESTARTS AGE
rook-api-1511082791-7qs0m 1/1 Running 0 5m
rook-ceph-mgr0-1279756402-wc4vt 1/1 Running 0 5m
rook-ceph-mon0-jflt5 1/1 Running 0 6m
rook-ceph-mon1-wkc8p 1/1 Running 0 6m
rook-ceph-mon2-p31dj 1/1 Running 0 6m
rook-ceph-osd-0h6nb 1/1 Running 0 5m
ΠΠΏΠ³ΡΠ΅ΠΉΠ΄ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Rook (Π΄ΠΎ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ) β ΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° Π½Π°ΡΠΈΠ½Π°ΡΡ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Β«Π·Π΄ΠΎΡΠΎΠ²ΠΎΠΌΒ» ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Rook. ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Rook Π²Π΅ΡΡΠΈΠΈ 0.5.0 Π΄ΠΎ 0.5.1 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²
Π Π½ΠΎΡΠ±ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π² Π±Π»ΠΎΠ³Π΅ Rook
ΠΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ
Π’Π΅ΠΊΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ Rook β alpha, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΡΡΠΏΠ½ΡΠΌ ΡΠ΅Π»ΠΈΠ·ΠΎΠΌ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ
ΠΡΠΈΠ½ΡΡΠΈΠ΅ Rook Π² ΡΠΈΡΠ»ΠΎ
P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ provisioning Π² Kubernetes Π½Π° Π±Π°Π·Π΅ Ceph Β»; - Β«
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ Kubernetes: ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ stateful-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β»; - Β«
CoreDNS β DNS-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΌΠΈΡΠ° cloud native ΠΈ Service Discovery Π΄Π»Ρ Kubernetes Β»; - Β«
Container Networking Interface (CNI) β ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ Π΄Π»Ρ Linux-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Β»; - Β«
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Ρ Kubernetes ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΡΡΠ»ΡΠ³Π° Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com