αααααααααα·ααα
αααααα Kubernetes αα
αα v1.0.0 ααΆααααααα·ααΈαααα½αααααα·αααα‘ααα αα½αααααααΌαααΆαααΎααααΈααααΆαααααααααααα
Kubernetes αααααΆαααααααΆαα»ααα·αααααααα»αααΊαααααΆααααΆαα (α’α
α·αααααααα)α α
ααα½ααααααα½αααααΆααα·α
αα½α
α αΎααααα»αα
ααααα’ααααααααααααΆαααα»ααα·ααααααααααΌαααααΌα
ααΆ GCE PD, Ceph, AWS EBS αα·αααααααααα
αααααα·ααΈαααα½αααααΌαααΆαα
ααα
αΆαααΆαα½α Kubernetes ααααααααΆααΌαα ααα»ααααα½αααααα½αααΆαααααα - in-tree α ααααααΆαααΆααααα αααααΆααααα»αααααΆα
αααΎα αααα»ααααααα·ααΈαααα½ααααααΆαααααΆααααΆααααααα
ααΆαα·ααααααααααΆααα αα·αααααααΆααααααααααααα·ααΈαααα½αααΆαααααα
ααααΌα Kubernetes αααααααΎαααα αααααΆααααΈααααα½αααααΆααααααΌααααα»α Kubernetes ααααΆαααααα½ααααααα½ααα α αΎαααα‘αΎαααΆαα
ααΎαααΆαααΈααααααααα½αααα ααα»ααααααΌα α αα
α’αααα’αα·αααααα Kubernetes ααΆαααΉαααΏααααα ααααΈ αααα αΆαα·αα’αΆα
αααααααΆαααΆαααα ααα»αααααααΌαααΆα ααααααααΆα. α αΎααα
αααα»αααΆαα
ααααααΆα Kubernetes v1.2.0 ααΆααΆααααα αΆααααα½α ...
αααααα·ααΈαααα½α Flexvolumeα ααααααααΆααα·α αα½α αααα»αα
α’αααα’αα·αααααα Kubernetes ααΆααααααΎααααααα·ααΈαααα½α FlexVolume αααααΆαααααααααα‘αΌααΈααααα’ααα αα·ααα·ααΈααΆααααααααααΆααααααΎααΆαααΆαα½ααααααα·ααΈαααααΆ Flexvolume αααα’αα»αααααααα’αααα’αα·ααααααααΆααΈααΈααΈα
αααααα α αΎααα·αα·αααααΎαα²ααααΆααααα αααΆααααΆ ααΎαααααα·ααΈαααααΆ FlexVolume ααΆα’αααΈα αααααΊααΆααααΆαααα½αα α―αααΆααααα’αΆα ααααα·ααααα·ααΆαα (α―αααΆααααααΈα, ααααααΈα Python, ααααααΈα Bash α ααΆαα’αα»αααααΆ α’αΆαα»ααααααααααΆααααΆααααααααΆααΈαα½ααααααααΆαα·ααΈααΆααααα α αΎαα’αΆαα»αααααααααα αααααΊααΆαααΆαααΆααααααααααααΆα
ααααΆααααΆααααααΆαααααααΆααααΆαα
ααααααα CIFS αα
αααα»α OpenShift α αααααα·ααΈαααααΆ Flexvolume - ααΆαααααΆααα
αααα»αααααααααα
αααα»ααα·ααΈααΆαααααα’αααααααΆ ααΎααα ααΌα ααα:
flexvolume_driver mount # ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠΌΠ° ΠΊ pod'Ρ
# Π€ΠΎΡΠΌΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
{
"status": "Success"/"Failure"/"Not supported",
"message": "ΠΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±ΡΠ» Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°ΡΡΡ",
}
flexvolume_driver unmount # ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠΌΠ° ΠΎΡ pod'Π°
# Π€ΠΎΡΠΌΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
{
"status": "Success"/"Failure"/"Not supported",
"message": "ΠΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±ΡΠ» Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°ΡΡΡ",
}
flexvolume_driver init # ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°
# Π€ΠΎΡΠΌΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
{
"status": "Success"/"Failure"/"Not supported",
"message": "ΠΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±ΡΠ» Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°ΡΡΡ",
// ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ attach/deatach
"capabilities":{"attach": True/False}
}
ααΆαααααΎααααΆαααα·ααΈααΆααααα attach
ΠΈ detach
ααΉααααααααααΆααΈαααΌααα kubelet ααΉαααααΎαααααααΆααα
αααα’ααΆαα αα
αααα α
α’αααααΎαααα ααααΆααα·ααΈααΆααααααα·ααααααααα expandvolume
ΠΈ expandfs
αααααα½ααα»αααααΌαα
ααααααΆαααααΆααααααΌαααα αααΆαααααα
ααΆα§ααΆα αααααααΆαααααΆααααααΌαααααα·ααΈααΆααααααααααα expandvolume
α αΎαααΆαα½αααΆαααααααΆααααα»αααΆαααααΆααααααΌαααα αααα·ααΆααααα»ααααααααΆααΆααααααα α’αααα’αΆα
ααααΆαααααα½αα’αααααΆαα½α
α αΎααααααΊααΆα§ααΆα αααααααΆαα’αα»αααααααααα·ααΈαααααΆ Flexvolume αααααΆααααααΎααΆαααΆαα½α NFSα
usage() {
err "Invalid usage. Usage: "
err "t$0 init"
err "t$0 mount <mount dir> <json params>"
err "t$0 unmount <mount dir>"
exit 1
}
err() {
echo -ne $* 1>&2
}
log() {
echo -ne $* >&1
}
ismounted() {
MOUNT=`findmnt -n ${MNTPATH} 2>/dev/null | cut -d' ' -f1`
if [ "${MOUNT}" == "${MNTPATH}" ]; then
echo "1"
else
echo "0"
fi
}
domount() {
MNTPATH=$1
NFS_SERVER=$(echo $2 | jq -r '.server')
SHARE=$(echo $2 | jq -r '.share')
if [ $(ismounted) -eq 1 ] ; then
log '{"status": "Success"}'
exit 0
fi
mkdir -p ${MNTPATH} &> /dev/null
mount -t nfs ${NFS_SERVER}:/${SHARE} ${MNTPATH} &> /dev/null
if [ $? -ne 0 ]; then
err "{ "status": "Failure", "message": "Failed to mount ${NFS_SERVER}:${SHARE} at ${MNTPATH}"}"
exit 1
fi
log '{"status": "Success"}'
exit 0
}
unmount() {
MNTPATH=$1
if [ $(ismounted) -eq 0 ] ; then
log '{"status": "Success"}'
exit 0
fi
umount ${MNTPATH} &> /dev/null
if [ $? -ne 0 ]; then
err "{ "status": "Failed", "message": "Failed to unmount volume at ${MNTPATH}"}"
exit 1
fi
log '{"status": "Success"}'
exit 0
}
op=$1
if [ "$op" = "init" ]; then
log '{"status": "Success", "capabilities": {"attach": false}}'
exit 0
fi
if [ $# -lt 2 ]; then
usage
fi
shift
case "$op" in
mount)
domount $*
;;
unmount)
unmount $*
;;
*)
log '{"status": "Not supported"}'
exit 0
esac
exit 1
ααΌα αααααααααΆααααΈαααα αα―αααΆααααα’αΆα ααααα·ααααα·ααΆααα·αααααΆααα’αααααααΌαααααΎ αααα»ααααααα·ααΈαααααΆαα αααα»α Kubernetes. αααααα·ααΈαααααΆααααΌαααααΆαααΈααΆαααα ααΎααααΆααα αααααααΈαα½αα ααααα ααΆαααααΌααααααΆαααααααα»αααΆαα»αα ααΆαααααΆαααΎαααΆααααΌαααΆαααααΎαααΎαα
/usr/libexec/kubernetes/kubelet-plugins/volume/exec/ΠΈΠΌΡ_ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°_Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°~ΠΈΠΌΡ_Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°/
... ααα»αααααα αααααααΎααΆαα ααα αΆα Kubernetes αααααααααΆ (OpenShift, Rancher...) ααααΌαα’αΆα αα»αααααΆα
αααα αΆ Flexvolume: αααααααααααααααΆαα±ααααΆαααααΉαααααΌα?
ααΆαα’αΆααα‘αΌααααααα·ααΈαααααΆ Flexvolume αα ααΆααααααΆααα αααααααΆααααααα ααΆαα·α αα ααΆαααααα·αααααΆααα αααααΆαααααΎααααα·ααααα·ααΆαααααααααα ααΆααΆααααα½ααααα»αααΆααα½ααααααααΌαααααΆαααΆααααααααΆααααααΈααα α‘αΎααααα»αα αααααα αααααΆαααααΆαααααααααααΆααααααΈ ααΆαααααΎααΆαααααααΆαααααααααααααααααααααα· α¬ - α’αααΈαααααΆααααα’αΆααααα - ααΆααααα½αααααΆαααααααΆαααααααΎαααΆααα»αααααααααΈα αααα»αααααΈααα ααααΎααΆαααΆαα½αααΆααααα»ααα ααΎααααΆααααΆααααααα½αααααααΌαααΆαααααΎ ααΊαα·αα’αΆα αα αα½α αααα αΌααααα’ααααα αααααααααααααα·ααΈαααααΆ Flexvolume ααααααα αα½αααα
αααααααααΆαα
αααααααα αΆαααααΊαα½ααα Kubernetes primitives - DaemonSet
. αα
ααααααααααΆααααααΈααα
α‘αΎααααα»αα
ααααα ααΆααΆααααααααααααααααααα·ααΈ DaemonSet ααααααΎα αααααα·ααΆααααα»ααααααααααΌαααΆαααααΆααααΆαααααΌαααΎααααΈααααααααααααα·ααΈαααααΆ Flexvolume α αα
ααααααααΎαααααααααα ααα
ααααα―αααΆαα
αΆαααΆα
ααααααΆαααααααα·ααΈαααααΆααΎααααΈααααΎαααΆααα
ααΆαα
αααααΊααΆα§ααΆα ααααα DaemonSet αααααΆααααΆααα αααααααα·ααΈαααα½α Flexvolumeα
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: flex-set
spec:
template:
metadata:
name: flex-deploy
labels:
app: flex-deploy
spec:
containers:
- image: <deployment_image>
name: flex-deploy
securityContext:
privileged: true
volumeMounts:
- mountPath: /flexmnt
name: flexvolume-mount
volumes:
- name: flexvolume-mount
hostPath:
path: <host_driver_directory>
... αα·αα§ααΆα αααααααααααΈα Bash αααααΆααααΆααα αααααααα·ααΈαααααΆ Flexvolumeα
#!/bin/sh
set -o errexit
set -o pipefail
VENDOR=k8s.io
DRIVER=nfs
driver_dir=$VENDOR${VENDOR:+"~"}${DRIVER}
if [ ! -d "/flexmnt/$driver_dir" ]; then
mkdir "/flexmnt/$driver_dir"
fi
cp "/$DRIVER" "/flexmnt/$driver_dir/.$DRIVER"
mv -f "/flexmnt/$driver_dir/.$DRIVER" "/flexmnt/$driver_dir/$DRIVER"
while : ; do
sleep 3600
done
ααΆααΆααΆαααααΆααααΆααααααα·αααααΌαααααα ααΆααααα·ααααα·ααΆαα αααα αα·ααααααΆα’αΆααΌαα·α ααα. ααΆαα±ααΆααααααααα kubelet ααΉαα αΆααααααΎαααααΎααααΆαααααααα·ααΈαααααΆ αα»ααααααααΎαααΆααααααααααααΆααΆααααα αα αααααΉααααααΆαα±ααααΆαααα α»ααα αααα»αααααααααα αα·ααΈααΆαααααααααΉαααααΌαααΊααααΌαααααΌαα ααααα―αααΆααααααα·ααΈαααααΆααααααααααααααα α αΎααααααΆααααααααΎααααα·ααααα·ααΆαααααΌααααααα’αΆααΌαα·α α
ααααΆααααΆαααααΆαααααΎααΆαααΆαα½α Ceph αα
αααα»αααααα·ααααα·αα Rook: αααααα·ααΈαααααΆ Flexvolume αα
αααα»αααααΆααααΆαααΆαααΈααΆαααα
ααΆααααα»αααααΆααααΆα Rook
αααα αΆαααααΆαααα αααααααΎαααααα·ααΈαααααΆ Flexvolume ααΊααΆαααααΆααααΆααααα»αααΆαα αααΎααα ααΎααααΆααα ααααα αααααα·ααΈα αΆαααΆα ααααααΆααααΆααααααααΌαααααααΌαααΆαααα‘αΎα (α§ααΆα ααα αααα αα ceph-ααΌαα αααααΆαα Ceph) α ααααΌα αααααα·ααΈαααα½α Flexvolume αα·αααααΌαααΆααα ααΆα‘αΎαααΎααααΈα’αα»αααααααααααααααα»αααααΆαααααααααα
αααααααααΆαααΎαα αααααααα αΆαααα’αΆα ααΎαααΎααα αααα»αααΆαα’αα»αααααααααα·ααΈαααααΆ Flexvolume ααααααααα·ααααα·αα Rookα
αααααα·ααΈαααααΆαααα½αααΆααααΌαααΆααα ααΆα‘αΎαααΆαααΆαααΈαααααα RPC α αααα IPC αααααΆααααααΆααααααααΆαααΈααΆαααα αααα»αααααΌα ααααΆααΉααααααα·ααΈαααααΆααααΆααα ααΎαα αα αΆαααΆ ααΎααααΈα ααααα―αααΆααααααα·ααΈαααααΆ ααΆααΆααΆαααα’αααα»αααΆαααααΎ DaemonSet αααααααΆααααα―αααΆαααΆαα½ααααααα·ααΈαααααΆααΆααααα·αααα‘ααα αααααΆααααΈα ααααα―αααΆααααααα·ααΈαααααΆ rook α αΆαααΆα α ααααααα·αααααΆαααα ααα»ααααααααΆαααα αααα IPC ααΆααααααΆααααααΆαααααΆααααΆαααΆαααΈααα RPC ααααααα αααα αα ceph-common ααααΌαααΆαααα‘αΎααα½α α αΎααα αααα»ααα»α pod α αααα IPC ααΆααΆααΆ kubelet ααΉαααΆααααααΆαα½α pod αααααΆαααΈααΆαααα ααΎααααΆααααΌα ααααΆα α’αααΈααααααααΆαααΊααΆαααα!..
ααΆα αΎα α’αααααΆααΈαααα‘αΆααααααααΎα... αααααα·ααΈαααα½ααααα»αααΎαααΎ!
α’αααα’αα·αααααα Kubernetes ααΆαααααΎαααΆα ααα½ααααααα·ααΈαααα½ααααααΆαααααα»ααα αααα»αααααΌαααΊααααα α αΎαααΆαααααΆααααααΌααα αααα»ααα½αααΆααΈαα½αα ααΆααααααααΆααα½α α¬αααααααΆααααααααα ααααααΆααααααααααΆαα ααααααΆα Kubernetes ααααααα
ααΆααααααΆααΎααααΈααααΎααααααααΈαααααααα·ααΈαααα½αααΆααααα»α, α’αααααααΌαααααΎαα αα α»ααααααααΆααααα»αααΆααααΌα. ααααααααΈααΎααα α’ααααααα ααααΆααααΆααααα’αΎααααααααααααΈαααα Kubernetes ααΉαααααΆααα ααΆαα·αααααααΆααΆαα½αααΊαααααΈαα»α αααα’ααααααα»αααααΎ... ααΌα ααααα’αααααΌαααΉααααααααααα’ααα α αΎααααααΈαααααααααα’ααα αααααααααα½αααΆαα½αα’αααααααααααα αα·αα’αααααααΎααααΆααααααα’ααα αααααααααααααΌα ααααΎαα αα α»ααααααααΆαααΊαααααΈαα»α αα·αα ααααα Kubernetes α ααΆαα½αααΉααααααααΆααα αΆααααα’αΆα ααΎαααΆααααα»αααΆααααααααααΆααααα
ααααΆαααΆαααβααΊβα α½αβααΈβααΏαβαααααααβαα βαααβααΎβα’αααβαα·αβααβ? ααΆα αααΆααααΆααα αααααα ααααααΆααααΌαααΆαα·ααΈααΆαααααααααα·αααααΎαααΆαααα ααΆααααααΆααααααα α α·ααααααα ααααΆ α’αααα’αα·αααααα Kubernetes αααααΆαααΆαααααα·ααΈαααα½αααααΈαααααΆααααααΎααΆαααΆαα½αααΆααααα»αααΉααα·αααααΌαααΆαααα½ααααα αααα»αααΊααααααααα ααΎαααΈααα ααΌα αααααΎαααΆαααΉααα½α ααα αΎα α ααα»α ααααααΆααα½αα ααα½αααααΌαααΆαααααααΎααα αααα»αααΆαα’αα»αααααααααα·ααΈαααα½α Flexvolume...
αααααα·ααΈαααα½ααααααΆαααααααα
α»αααααααααα»ααααααΆααααα·ααΆααα
αααα»α Kubernetes, CSI, ααααΌαααΆαα’αααΆαααΆαα±αααα·ααααα αΆαααααΆαα½αααΉαααΆααααα»ααα·ααααααααΆααααΆαααααα αα·ααααααΆααααΆααα’ααα ααααα’αΆααα αααΆααααααΆ ααααααα
αααΆαααααααααΆααΆαααααα·ααΈαααα½αααααα·αααα‘αα CSI αααα
ααΎαααΎ ααααΌαααΆααααααΆααα
αααα»αααΆαα
ααααααΆα
Container Storage Interface α¬ CSI 3000 spinning rod!
ααΆααααΌααααα»αα
ααααααααααΆααααΆ CSI αα·ααααααααΆααααααΆαααααα·ααΈαααα½αααααα·αααα‘ααααα»ααααααα ααα»ααααααΆααΆααα·α
ααΎα’αααΈααΆαα ααΆαααααααααααααααα·ααΈαααα½α CSI αα αααα»α Kubernetes? αααααα·ααΈαααα½α CSI ααααΎαααΆαααΆαα½ααααααα·ααΈαααααΆαα·ααα (α’αααααΎααα CSI) ααααααααα’αααα’αα·ααααααααΆααΈααΈααΈα αααααα·ααΈαααααΆ CSI αα αααα»α Kubernetes αα½αααααΆααααΆαα αα ααΆαααααΆαααΆαααΈα (pods)α
- α§ααααααααααΆ - αααααααααααΆααααα»αααΆααααΆααααΆααααα
α ααΆααααΌαααΆαα’αα»ααααααΆαααΆαααΈααα gRPC ααααα»αααααααααΌαααΆαααααΎ
StatefulSet
. - ααααΆαα β ααα½ααα»αααααΌαα
ααααααΆαααααααΆααααα»αααΆααααΆαααα
ααΆααααααΆααα
αααααα ααΆααααααΌαααΆαα’αα»ααααααΆαααΆαααΈααα gRPC ααα»ααααααΆααααΎαα»αααααΆα
DaemonSet
.
ααααααααααααα·ααΈαααα½α CSI ααααΎαααΆααα
αααα»α Kubernetes
α’αααα’αΆα
ααααααααα’αααΈααααααΆααααα’α·αααααααααααααΆαααΆααααα CSI ααΆα§ααΆα ααα ααΈα’ααααα β
αα»ααααααααα·ααααΆαα’αα»αααααααααα
- αααααΆααααΏαααΆααΌαααααΆαααΌα ααΆααΆαα α»αααααααααααα·ααΈαααααΆαααααΆααααααΆαα α’αααα’αα·αααααα Kubernetes ααΆαα’αα»αααααααα»ααααα»αααΊαααα α’ααααααααααΌαααΆααααααΎαααΆαααααΎααα JSON ααΆαα½αααΉααααααααΆαααααααα½αα―α ααΌα αααααΆαααααΎαα½α αααααΆαααααααα·ααΈαααα½α Flexvolume α
- αααα½αα±αα "ααΆααα’α·α" α―αααΆααααα’αΆα ααααα·ααααα·ααΆααα ααΎααααΆαα α₯α‘αΌααααααΎααααα αα pods αα ααΆαα cluster α αααααΆα’αααΈαααααΎαααααΉααα»αααααΌαααΈ Kubernetesα ααααΎαααΆαααΆααα’ααααΎαα‘αΎααα αααα»ααα»αααΊααααααααΆαααααααΆααααααααΎ Kubernetes primitivesα
- α’ααααα·αα αΆαααΆα ααααααΎααααΆαααΈααα RPC αα·ααααΆαααΈαααααα RPC ααΎααααΈα’αα»αααααααααα·ααΈαααααΆαααα»αααααΆααααααα αααΆαααΈααααααααααΌαααΆαα’αα»αααααααααΆααααΎααααα’αααα’αα·αααααα Kubernetes α
- ααΆαααααααΆααα’αΆαα»αααααααΎααααΈααααΎααΆαααΎαα·ααΈααΆα gRPC ααΊααΆααααααΆααααα½α αααααα αα·αα’αΆα
αα»αα
α·αααααΆαααΆαααΆαααααααΆααααΆααΆααααα’αΆαα»ααααααααααΆααααΆααααααααΆα ααΎααααΈαααααΈααααααααααααΆαααΆαααααααααΆαααααααΆααααααΆαααααΎααααΆααααα·ααΆααα
CSI ααααααααααα·ααΈααΆααααα gRPC αααααααΆα α’αααα’αΆα
α’αΆαα
ααααΎααΆαααααααΎαα αααααΆαααααααα·ααΈαααααΆ vsphere-csi α - ααΆαααααΆαααααααΆααααααααΆααΎαα‘αΎαααΆαααααααα IPC ααΎααααΈαα»αα±ααααΆαααΆαααΆααα ααα‘αααΆααΎ kubelet ααΆαααααΎααααΎαα ααΆαα pod ααααΉαααααΌαα
ααΎαααααΈαααααααΉαα’αααα’αααΈα’αααΈαα? α’ααααααααααααααα CSI ααΊ αααααααΆααααα αΆααΌα ααααΆαααααα·αααααΌαααΆααααααα·α αΆαααΆαα ααααααααΎααααααα·ααΈαααα½α Flexvolume α
ααΆαααααΎα
CSI ααΆαααααααΆααααααΆααα’αα»αααααααααα·ααΈαααα½αααααΆαααααα½ααααααΆααα’ααααααααααΆαα½αααααΆαααα·ααααααααααΌαααΆαααα½ααααΆαααααααα ααΈαα ααααα ααΎαααΈααααα ααα αααααΆααααα»ααααααααα· αα·ααααααααΆαααααααΆ αααααα·ααΈαααααΆ CSI ααααΌαααΆααααααΎαα‘αΎαααΌααααΈαααααααΆαααααααααααααα»ααα·ααααααααΌα ααΆ Ceph α¬ AWS EBS αααααα·ααΈαααα½ααααααΆααααααΎααΆαααΆαα½ααααααααΌαααΆααααααααα αααα»αααααααααΌααα Kubernetes α
αα
ααΎαααααΆα 2019 αααααα·ααΈαααα½ααααα»ααααααΆα
αααα½αααΎαααααΆααααΆααααα·αααααααααΎααααΆαα ceph-csi, vsphere-csi α αΎαααααααααα½ααα½α ααΆααααα αααα»αααΆααααααααα αααα»ααααααΈααα! αα αΌαααααααααααα CSI αααα»αααααααα»αααΉαααΆααα·α αα αααααΆαααααααα±ααααΆαααααα‘ααααααΆαα ααα»ααααααΎαααΉααααα αΆαααΎαα
αα»αβααααα βααΆβα’αααΈβαααβααααΈβααΊβααΆβααΆαβαα·αβα‘αΎαβαα·αβααααβα αΆαα!
PS
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
ααΎααααααΈα ααα»α αααααΆαααααα»ααα»αααΊααα (αα αααα»α Kubernetes αα·ααα·αααααΉαααααα»ααααα) Β» - Β«
αα Rook α¬αα·α Rook - αααααΆαααα½α Β» - Β«
ααΆαααααΆαα’αααΈααααα’αΆααα αααΆααααΌαααααααα·αααα‘αααα αααα»α Kubernetes "α
ααααα: www.habr.com