แ แแแแกแแช 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 แแ แแแแแ แ. แแก แแแ แแแแฃแแแ แจแแกแ แฃแแแแแแ แคแแแแ (แแ แแแแแ แคแแแแ, แแแแแแแก แกแแ แแแขแ, Bash แกแแ แแแขแ แแ แ.แจ.), แ แแแแแแช แจแแกแ แฃแแแแแกแแก แแฆแแแก แแ แซแแแแแแก แฎแแแแก แแ แแฃแแแแขแแแก แจแแงแแแแแ แแ แแแ แฃแแแแก แจแแขแงแแแแแแแแก แฌแแแแกแฌแแ แชแแแแแแ แแแแแแแ JSON แคแแ แแแขแจแ. แแแ แแแแแแ, แแแ แแแแ แแ แซแแแแแแก แฎแแแแก แแ แแฃแแแแขแ แงแแแแแแแแก แแแแแแแ, แฎแแแ แแแ แฉแแแแแ แแ แแฃแแแแขแแแ แแแกแ แแแ แแแแขแ แแแแ.
แแแแจแแ แแก แแแแแ แแแ CIFS แแฅแชแแแแแกแแแแก OpenShift-แจแ. Flexvolume Driver - แแแ แแแแแ แชแแแขแ แจแ
แแแแแแแแแก แแแแแแแแฃแ แ แแแแ แแแ แแกแ แแแแแแงแฃแ แแแ:
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
แแแแกแแแฆแแ แแแก แกแชแแแแ แก, แ แแแแแแแช แแฃแแแแขแ แแแแฅแแแแแแก แแแแแแแแจแ แแซแฆแแแแก แแแแแซแแฎแแแแกแแก. แแกแแแ แแ แกแแแแแก แกแแแชแแแแฃแ แ แแแแแแแแ 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 แแ แแแแแ แก.
แแ แแ แแแแแแแก แแแแแฌแงแแแขแ แแงแ แแฃแแแ แแแขแแก แแ แ-แแ แแ แแ แแแแขแแแ - DaemonSet
. แ แแแแกแแช แแฎแแแ แแแแแซแ แแแแแฉแแแแแ แแแแกแขแแ แจแ, แแก แแแขแแแแขแฃแ แแ แจแแแชแแแก แแแแก แฉแแแแ DaemonSet-แแแ, แ แแแแแกแแช แแแแแแ แแแฃแแแ แแแแแแฃแ แ แขแแแ Flexvolume แแ แแแแแ แแแแก แแแกแแซแแแแแ. แฌแแ แแแขแแแฃแแ แจแแฅแแแแก แจแแแแแ, pod แแแแแแ แแแก แกแแญแแ แ แคแแแแแแก แแ แแแแแ แแก แแฃแจแแแแแกแแแแก แแแกแแแ.
แแฅ แแ แแก แแกแแแ 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
แแแแจแแแแแแแแแแ แแ แแแแแแแแฌแงแแแก, แ แแ แแกแแแก แแแแ แแชแแ แแ แแ แแก แแขแแแฃแ แ. แแแแแ แจแแแกแ, แ แแ แแฃแแแแแขแแ แแแแฌแงแแก แแ แแแแแ แแก แแแแแงแแแแแ แแแกแ แฃแแ แฃแแแแแงแแคแแก แแ แแชแแกแแก แแแกแ แฃแแแแแแแ, แ แแช แแแแแแฌแแแแก แกแแกแขแแแแจแ แจแแชแแแแแก. แกแฌแแ แ แแแแแแแแ แฏแแ แแ แแแแแ แแก แคแแแแแแแก แกแฎแแ แกแแฎแแแแ แแแแแ แแแ แแ แจแแแแแ แแขแแแฃแ แ แกแแฎแแแแก แแแแแ แฅแแแแแก แแแแ แแชแแแก แแแแแงแแแแแ.
Ceph-แแแ แแฃแจแแแแแก แแแแแ แแแ Rook แแแแ แแขแแ แจแ: แแแแแ แแแแจแ Flexvolume แแ แแแแแ แ แแแแแแ แแแแก Rook แแแแแขแแก แจแแแแแ.
แจแแแแแแ แแ แแแแแแ Flexvolume แแ แแแแแ แแแแก แแแแแงแแแแแแกแแก แแ แแก แแแแกแขแแ แฃแ แแแแแซแแ แจแแแแฎแแแก แฃแแแขแแกแ แแแฌแแแ แแแแกแแแแแก แกแแญแแ แ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ แฃแแแ แแงแแก แแแแแกแขแแแแ แแแฃแแ (แแแแแแแแแ, ceph-common แแแแแขแ Ceph-แแกแแแแก). แแแแแแแแ แแแแแ, Flexvolume แแแแฃแแ แแ แแงแ แจแแฅแแแแแ แแกแแแ แ แแฃแแ แกแแกแขแแแแแแก แแแกแแแแ แแแ.
แแ แแ แแแแแแแก แแ แแแแแแแฃแ แ แแแแแฌแงแแแขแ แจแแแแซแแแแ แแแฎแแ Rook แแแแ แแขแแ แแก Flexvolume แแ แแแแแ แแก แแแแฎแแ แชแแแแแแแจแ:
แแแแแ แแ แแแแแ แ แจแแฅแแแแแแ แ แแแแ แช RPC แแแแแแขแ. แแแแฃแแแแแชแแแกแแแแก IPC แกแแแแขแ แแแแแแ แแแแก แแแแแ แแแ แแฅแขแแ แแแจแ, แ แแแแ แช แแแแแ แแ แแแแแ แ. แฉแแแ แแแแฎแกแแแก, แ แแ แแ แแแแแ แแก แคแแแแแแแก แแแแแ แแแแกแแแแก แแแ แแ แแฅแแแแ แแแแแแแงแแแแ DaemonSet, แ แแแแแแช แแแแแจแแ แแแก แแแ แแฅแขแแ แแแก แแ แแแแแ แแแ, แ แแแแ แช แแแชแฃแแแแ. แกแแญแแ แ rook แแ แแแแแ แแก แคแแแแแแแก แแแแแ แแแแก แจแแแแแ, แแก pod แแ แแแแแแ, แแแแ แแ แฃแแแแจแแ แแแแ IPC แกแแแแขแก แแแแแแ แแฃแแ แขแแแแก แแแจแแแแแแ, แ แแแแ แช แกแ แฃแแคแแกแแแแแ RPC แกแแ แแแ แ. ceph-common แแแแแขแ แฃแแแ แแแแแแขแแแแแฃแแแ แแแแแก แแแแขแแแแแ แจแ. IPC แกแแแแขแ แฃแแ แฃแแแแแงแแคแก, แ แแ แแฃแแแแแขแ แแแฃแแแแจแแ แแแก แแฃแกแขแแ แแ แแแแก, แ แแแแแแช แแแแแแ แแแแก แแแแแ แแแแแซแแ. แงแแแแแคแแ แ แแแแแแแฃแ แ แแแ แขแแแแ!..
แแแฎแแแแแแก, แฉแแแแ แแแกแแงแแแ แฃแแ... แฎแแก แแแแแแแขแแแ!
Kubernetes-แแก แแแแแแแแแ แแแแ แแฆแแแแฉแแแแก, แ แแ แแแ แแแจแ แจแแกแแแแฎแ แแแแแแแขแแแแก แ แแแแแแแแ แแ แแก แแชแ. แแ แแแแแแฃแแ แแแแแแแแก แชแแแแแแแ, แแแ แแฃ แแ แแแแ, แแแแแก Kubernetes-แแก แแแแแจแแแแแก แกแ แฃแ แชแแแแก.
แแแแแแแก, แ แแ แจแแแแฎแแแก แแแแฃแแแก แแฎแแแ แแแ แกแแแก แแแแแกแแงแแแแแแแ, แแฅแแแ แฃแแแ แแแแแแฎแแแ แแแแแ แแแแกแขแแ แ. แแแแก แแแ แแ, แจแแแซแแแแ แแแแแแแแ แแแ, แ แแ Kubernetes-แแก แแฎแแแ แแแ แกแแ แแแฃแแแแแแแแ แจแแฃแแแแกแแแแแ แแแฎแแแแ Linux-แแก แแแ แแแแแ, แ แแแแแกแแช แแฅแแแ แแงแแแแแ... แแกแ แแแแฌแแแแแแ แชแ แแแแแแ แแ แแแแแแแแก แฆแ แญแแแแแ, แแแแ แแแแแชแแแก แฃแฌแแแ แแฅแแแแก แแแแแฏแแแแขแกแ แแ แแแแฎแแแ แแแแแแก แแ แ, แ แแ แแแแแแฎแแแ Linux แแแ แแแ แแ Kubernetes แแแแกแขแแ แ. แแแแกแแฎแฃแ แแแแก แแแฌแแแแแแก แจแแกแแซแแ แจแแคแแ แฎแแแแ.
แกแแขแฃแแชแแ แฃแคแ แ แแแขแแ แแแแ แ แแแแแแฃแ แ, แแ แคแแฅแ แแแ? แแแแแ แกแแแแแแแแแแแกแแแแก แแแแแแ แแแฎแแ, แ แแ แแแแแแแ แแ แแฃแจแแแแแ. แแแแแแแแแแ แแฃแแ แแแแแฌแงแแแขแแแแแแ, Kubernetes-แแก แแแแแแแแแ แแแ แแชแฎแแแแแแ, แ แแ แกแแชแแแแแ แแฃแจแแแแแก แแฎแแแ แแแแแแแขแแแ แแฆแแ แแแแฆแแแ แแแ แแแจแ. แแแ แแ แแแแกแ, แ แแแแ แช แฃแแแ แแแชแแ, Flexvolume แแแแฃแแแก แแแแแ แแแแกแแก แแแแแแแแแแ แแแแแ แ แแแ แฎแแ แแแแแแ...
แฃแแฎแแแก แแแแแขแแแฃแ แแแแแแแขแก แขแแแแแแกแแแแก Kubernetes-แจแ, CSI, แแแฌแแแแแฃแแ แแฅแแ, แแ แแฎแแ แแ แกแแแฃแแแแแ แแแแฎแฃแ แ แกแแแแแฎแ แแฃแแแแแ แแแแแชแแแแ แจแแแแฎแแแก แจแแกแแฎแแ. แแแกแ แแแคแ แแแ แกแแ, แฃแคแ แ แกแ แฃแแแ แแแฎแกแแแแแแฃแแ, แ แแแแ แช Out-of-Tree CSI Volume Plugins, แแแแแฅแแแงแแแ แแแแแจแแแแแจแ.
แแแแขแแแแแ แแก แจแแแแฎแแแก แแแขแแ แคแแแกแ, แแ CSI 3000 แแแฌแแฃแแ แฏแแฎแ!
แแแ แแแ แ แแแจแ, แแแแแ แแฆแแแแจแแ, แ แแ CSI แแ แแ แแก แแฎแแแแ แแแชแฃแแแแแก แแแแฃแแ, แแ แแแแ แ แแแแฃแ แ
แ แแแแ แแ CSI แแแแฃแแแก แกแขแ แฃแฅแขแฃแ แ Kubernetes-แจแ? CSI แแแแฃแแ แแฃแจแแแแก แกแแแชแแแแฃแ แแ แแแแแ แแแแแ (CSI แแ แแแแแ แแแ) แแแฌแแ แแแแ แแแกแแแ แแฎแแ แแก แแแแแแแแแ แแแแก แแแแ . CSI แแ แแแแแ แ Kubernetes-แจแ แแแแแแแแฃแ แแ แฃแแแ แจแแแแแแแแแก แแ แ แแแแแแแแแขแแกแแแ (pods):
- Controller โ แแแ แแแแก แแแ แ แแฃแแแแ แกแแชแแแแแก. แแก แแแแแ แแแแแ แ แแแแ แช gRPC แกแแ แแแ แ, แ แแกแแแแกแแช แแแแแแงแแแแแ แแ แแแแขแแฃแแ
StatefulSet
. - Node - แแแกแฃแฎแแกแแแแแแแแ แแฃแแแแแ แจแแแแฎแแแก แแแแขแแแแ แแแแกแขแแ แฃแ แแแแแซแแแแ. แแก แแกแแแ แแแแแ แแแแแ แ แแแแ แช gRPC แกแแ แแแ แ, แแแแ แแ แแก แแงแแแแแก แแ แแแแขแแฃแแก
DaemonSet
.
แ แแแแ แแฃแจแแแแก CSI แแแแฃแแ Kubernetes-แจแ
แจแแแแซแแแแ แจแแแขแงแแ CSI-แก แแฃแจแแแแแก แกแฎแแ แแแขแแแแแแก แจแแกแแฎแแ, แแแแแแแแแ, แกแขแแขแแแแแ โ
แแกแแแ แแแแฎแแ แชแแแแแแแก แฃแแแ แแขแแกแแแแแ
- แซแแ แแแแแ แกแแแแแฎแแแแกแแแแก, แ แแแแ แแชแแ แแ แแแแแ แแก แ แแแแกแขแ แแชแแ แแแแแซแแกแแแแก, Kubernetes-แแก แแแแแแแแแ แแแแ แแแแแฎแแ แชแแแแแก แแแแขแแแแแ แแแแก แแแแ แแแ. แแฅแแแ แแฆแแ แแญแแ แแแแแ JSON แแแกแฃแฎแแก แแแแแ แแ แแแ แจแแกแแซแแแแแแแแแแ, แ แแแแ แช แแก แแแแแแแ Flexvolume แแแแฃแแแกแแแแก.
- แแแชแแแแ แจแแกแ แฃแแแแแแ แคแแแแแแแก แแแแแซแแแแ โแแแแแขแแแแกโ แแแชแแแแ, แฉแแแ แแฎแแ แแแขแแแ แแแแ แแแแแแก แแแแกแขแแ แจแ. แแก แแ แแก แแก, แ แแกแแช แแแแแแแแ แแแแแ แแแแแ Kubernetes-แแกแแแ: แงแแแแ แแ แแชแแกแ แฎแแแแ แแแแขแแแแแ แแแจแ, แ แแแแแแแช แแแแแแแแแฃแแแ Kubernetes แแ แแแแขแแแแก แแแแแงแแแแแแ.
- แแฅแแแ แแฆแแ แแญแแ แแแแแ RPC แกแแ แแแ แแก แแ RPC แแแแแแขแแก แจแแแฃแจแแแแแ แ แแฃแแ แแ แแแแแ แแแแก แแแกแแแแ แแแ. แแแแแแขแ แฉแแแแแแแก แแแแฎแแ แชแแแแแ Kubernetes-แแก แแแแแแแแแ แแแแก แแแแ .
- แแ แแฃแแแแขแแแแก แแแแแชแแแ gRPC แแ แแขแแแแแแ แกแแแฃแจแแแ แแแแ แแ แฃแคแ แ แแแกแแฎแแ แฎแแแแแ, แแแฅแแแแ แแ แกแแแแแแแ, แแแแ แ แแแแ แแแแแชแแแ แแ แซแแแแแแก แฎแแแแก แแ แแฃแแแแขแแแแ. แแแแก แแแกแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแขแแ แแฎแแ แแแญแแ แ แแแชแฃแแแแแก แแแแแงแแแแแแก แแแขแ แแแแแแกแแแแก CSI-แจแ แกแขแแแแแ แขแแแแแฃแแ gRPC แแแแแแแก แแแแแขแแแแ, แจแแแแซแแแแ แฌแแแแแแฎแแ:
แฉแแแแ แแแแแแแแก แแแแฎแแแแ vsphere-csi แแ แแแแแ แแกแแแแก. - แแแแฃแแแแแชแแ แฎแแแแ IPC แกแแแแขแแแแก แกแแจแฃแแแแแแ, แ แแแ แแ แแงแแก แแแแแแฃแแ, แแแแแแแแ แแฃ แแ แ แแฃแแแแแขแแ แแแแฎแแแแ แกแฌแแ แแแแจแ.
แ แแแแก แแแแแฎแกแแแแแ แแก แกแแ? CSI-แแก แฃแแแ แแขแแกแแแแแแ แแแแแ แแ แแแแแแแแแก แแแแแญแ แ, แ แแแแแแแช แแ แแฅแแ แแแแแแแแกแฌแแแแแฃแแ Flexvolume แแแแฃแแแก แจแแแฃแจแแแแแแกแแก.
แแแกแแแแแแ
CSI, แ แแแแ แช แกแขแแแแแ แขแ แแแแแชแแแแ แกแแฌแงแแแแแแแ แฃแ แแแแ แแแแแกแแแแก แแแ แแแแฃแแ แแแแแแแขแแแแก แแแแแ แแแแกแแแแก, แกแแแแแแแแแแแ แซแแแแแ แแแแแแ แแแแฆแ. แฃแคแ แ แแแขแแช, แแแแ แฃแแแ แแขแแกแแแแแแกแ แแ แแ แแแแแคแแ แแแแแแแก แแแแ, CSI แแ แแแแแ แแแ แแฅแแแแแ แจแแแแฎแแแก แกแแกแขแแแแแแกแแแแกแแช แแ, แ แแแแ แแชแแ Ceph แแ AWS EBS, แแแแแแแขแแแ, แ แแแแแแแแแแช แแฃแจแแแแแ Kubernetes-แแก แแแ แแแ แแแ แกแแแจแ.
2019 แฌแแแก แแแกแแฌแงแแกแจแ, แฎแแก แแแแแแแขแแแ
แฉแแแ แแแแแแ แฃแแแ แแแแฅแแก ceph-csi, vsphere-csi แแแแแงแแแแแแก แแแแแชแแแแแแ แแ แแแแ แแแ แ แแแแแแแขแแ แแ แกแแแจแ! แฏแแ แฏแแ แแแแ, CSI แฃแแแแแแแแแ แแแกแแ แแแแแกแ แแแฃแ แแแแชแแแแแก, แแแแ แแ แฉแแแ แแแแแแแแแแแ แแ แแแแฎแแ.
แแ แแแแแแแฌแงแแแ, แ แแ แงแแแแแคแแ แ แแฎแแแ แแ แแก แซแแแแแก แแแ แแ แแแแแฎแแแแ!
PS
แแกแแแ แฌแแแแแแฎแแ แฉแแแแก แแแแแแ:
- ยซ
แฉแแแ แแแแกแแแก แแแแขแแแแแ แแก แจแแแแฎแแแก แแแขแแ แคแแแกแ (แแฃแแแ แแแขแจแ แแ แแ แ แแฎแแแแ) "; - ยซ
แ แฃแแก แแฃ แแ แ แ แฃแแก - แแก แแ แแก แแแแฎแแ "; - ยซ
แฌแแ แแแแแแแแแ แแแชแฃแแแแแก แกแแแแจแแขแแแแก แแแคแ แแแ แกแแแก Kubernetes-แจแ ".
แฌแงแแ แ: www.habr.com