เชเซเชเชฒเซเช เชเชชเซเชฒเชฟเชเซเชถเชจเซเชจเซ เชกเซเชเชพ เชธเซเชเซเชฐ เชเชฐเชตเชพเชจเซ เชชเชฃ เชเชฐเซเชฐ เชนเซเชฏ เชเซ, เชชเชฐเชเชคเซ เชคเซเช เช เชนเชเซเชเชคเชฅเซ เชคเชฆเซเชฆเชจ เชเชฐเชพเชฎเชฆเชพเชฏเช เชเซ เชเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเชฏเชพ เชชเชเซ เชกเซเชเชพ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เชจเชนเซเช.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชถเซเชเช เชธเซเชตเชพเช RAM เชฆเซเชตเชพเชฐเชพ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเซ, เชชเชฐเชเชคเซ เชคเซ เชกเซเชเชพเชจเซ เชชเชฃ เชเชธเซเชกเซ เชถเชเซ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชญเชพเชเซเชฏเซ เช เชธเซเชเซเชฐเซเช เชฎเชพเชเซ เชฅเชพเชฏ เชเซ เชเซ RAM เชเชฐเชคเชพเช เชงเซเชฎเซ เชนเซเชฏ เชเซ, เชเชเชเชฆเชฐ เชเชพเชฎเชเซเชฐเซ เชชเชฐ เชฅเซเชกเซ เช เชธเชฐ เชฅเชพเชฏ เชเซ. เช เชจเซเชฏ เชเชชเซเชฒเซเชเซเชถเชจเซเช เช เชตเชพเชคเชจเซเช เชงเซเชฏเชพเชจ เชฐเชพเชเชตเซเช เชเชฐเซเชฐเซ เชเซ เชเซ เชซเชพเชเชฒเซเชฎเชพเช เชเซเชเชฒเชพเช เชซเชเซเชค เชตเชพเชเชเชตเชพ เชฎเชพเชเซเชจเชพ เชเชจเชชเซเช เชนเซเช เชถเชเซ เชเซ, เชเซเชฎ เชเซ เชธเซเชเชฟเชเชเซเชธ เช เชฅเชตเชพ เชเซเชชเซเชค เชเซ.
เชเซเชฌเชฐเชจเซเชเซเชธ เชชเชพเชธเซ เชชเชนเซเชฒเชพเชฅเซ เช เชเชฃเชพ เชชเซเชฐเชเชพเชฐเซ เชเซ
เชเซเชทเชฃเชฟเช
เช เชตเซเชฒเซเชฏเซเชฎเซ เชฎเชพเชเซ เชธเชฎเชธเซเชฏเชพ เชนเซเช เชถเชเซ เชเซ เชเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชนเซเชธเซเช เชธเชเชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เช เชฅเชตเชพ เชธเซเชเซเชฐเซเช เชฎเชพเชเซ เชเซ เชเซ เชซเชเซเชค เชเซเชเชฒเชพเช เชฏเชเชฎเชพเชจเซ เชชเชฐ เชเชชเชฒเชฌเซเชง เชเซ. เชคเซเชฅเซ เช เชเซเชฌเชฐเชจเซเชเซเชธ 1.19 เชฌเซ เชจเชตเชพ เชเชฒเซเชซเชพ เชชเชฐเซเชเซเชทเชฃ เชตเซเชฒเซเชฏเซเชฎ เชฒเชเซเชทเชฃเซ เชฐเชเซ เชเชฐเซ เชเซ เชเซ เชเชฒเซเชชเชจเชพเชคเซเชฎเช เชฐเซเชคเซ EmptyDir เชตเซเชฒเซเชฏเซเชฎเซเชธ เชธเชฎเชพเชจ เชเซ:
-
เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ;
-
CSI เชธเชเชเซเชฐเชน เชเซเชทเชฎเชคเชพ เชเซเชฐเซเชเชฟเชเช.
เชจเชตเชพ เช เชญเชฟเชเชฎเชจเชพ เชซเชพเชฏเชฆเชพ:
-
เชธเซเชเซเชฐเซเช เชธเซเชฅเชพเชจเชฟเช เช เชฅเชตเชพ เชจเซเชเชตเชฐเซเช เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเชเซเชก เชนเซเช เชถเชเซ เชเซ;
-
เชตเซเชฒเซเชฏเซเชฎเชฎเชพเช เชเซเชเซเชเชธ เชเชฆ เชนเซเช เชถเชเซ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฆเซเชตเชพเชฐเชพ เชเชณเชเชเซ เชถเชเชพเชคเซเช เชจเชฅเซ;
-
เชเซเชเชชเชฃ CSI เชกเซเชฐเชพเชเชตเชฐเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ เชเซ เชธเชคเชค เชตเซเชฒเซเชฏเซเชฎเชจเซ เชเซเชเชตเชพเชเชจเซ เชธเชฎเชฐเซเชฅเชจ เชเชชเซ เชเซ เช เชจเซ (เชเซเชทเชฎเชคเชพ เชเซเชฐเซเชเชฟเชเชเชจเซ เชธเชฎเชฐเซเชฅเชจ เชเชชเชตเชพ เชฎเชพเชเซ) เชเซเชฒเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเซ เชเซ
GetCapacity
; -
เชกเซเชฐเชพเชเชตเชฐ เช เชจเซ เชธเซเชเชฟเชเชเซเชธเชจเชพ เชเชงเชพเชฐเซ เชตเซเชฒเซเชฏเซเชฎเชฎเชพเช เชฅเซเชกเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชกเซเชเชพ เชนเซเช เชถเชเซ เชเซ;
-
เชตเซเชฒเซเชฏเซเชฎ เชธเชพเชฅเซเชจเซ เชคเชฎเชพเชฎ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเชพเชฎเชเซเชฐเซ (เชธเซเชจเซเชชเชถเซเช เชฌเชจเชพเชตเชตเซ, เชฎเชพเชช เชฌเชฆเชฒเชตเซ เชตเชเซเชฐเซ) เชธเชชเซเชฐเซเชเซเชก เชเซ;
-
เชตเซเชฒเซเชฏเซเชฎเชจเซ เชเชชเชฏเซเช เชเซเชเชชเชฃ เชเชชเซเชฒเชฟเชเซเชถเชจ เชจเชฟเชฏเชเชคเซเชฐเช เชธเชพเชฅเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ เชเซ เชฎเซเชกเซเชฏเซเชฒ เช เชฅเชตเชพ เชตเซเชฒเซเชฏเซเชฎ เชธเซเชชเชทเซเชเซเชเชฐเชฃ เชธเซเชตเซเชเชพเชฐเซ เชเซ;
-
เชเซเชฌเชฐเชจเซเชเซเชธ เชถเซเชกเซเชฏเซเชฒเชฐ เชคเซเชจเซ เชชเซเชคเชพเชจเซ เชฐเซเชคเซ เชฏเซเชเซเชฏ เชจเซเชกเซเชธ เชชเชธเชเชฆ เชเชฐเซ เชเซ, เชคเซเชฅเซ เชถเซเชกเซเชฏเซเชฒเชฐ เชเชเซเชธเซเชเซเชเชถเชจเชจเซ เชเซเชเชตเชพเช เช เชจเซ เชเซเช เชตเชตเชพเชจเซ เช เชฅเชตเชพ เชตเซเชฌเชนเซเชเซเชธเชจเซ เชธเชเชถเซเชงเชฟเชค เชเชฐเชตเชพเชจเซ เชนเชตเซ เชเซเช เชเชฐเซเชฐ เชจเชฅเซ.
เชเชชเซเชฒเชฟเชเซเชถเชจ เชตเชฟเชเชฒเซเชชเซ
เชคเซเชฅเซ, เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซเชจเชพ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ เชจเซเชเซเชจเชพ เชเชชเชฏเซเชเชจเชพ เชเชฟเชธเซเชธเชพเช เชฎเชพเชเซ เชฏเซเชเซเชฏ เชเซ:
เชฎเซเชฎเชเซเชถเซเชก เชฎเชพเชเซ RAM เชจเชพ เชฐเชฟเชชเซเชฒเซเชธเชฎเซเชจเซเช เชคเชฐเซเชเซ เชธเชคเชค เชฎเซเชฎเชฐเซ
memcached เชจเชพ เชจเชตเซเชจเชคเชฎ เชชเซเชฐเชเชพเชถเชจเซ
เชตเชฐเซเชเชธเซเชชเซเชธ เชคเชฐเซเชเซ LVM เชธเซเชฅเชพเชจเชฟเช เชธเชเชเซเชฐเชน
เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซ เชเซ RAM เชเชฐเชคเชพ เชฎเซเชเชพ เชกเซเชเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ เชคเซเชจเซ เชเชฆ เช
เชฅเชตเชพ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเซเชเซเชฐเชฟเชเซเชธ เชธเชพเชฅเซ เชธเซเชฅเชพเชจเชฟเช เชธเซเชเซเชฐเซเชเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชเซ เชเซ Kubernetes เชจเชพ เชจเชฟเชฏเชฎเชฟเชค EmptyDir เชตเซเชฒเซเชฏเซเชฎ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชนเซเชคเซ เชฎเชพเชเซ เชคเซ เชฒเชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช
เชกเซเชเชพ เชตเซเชฒเซเชฏเซเชฎเซเชธ เชฎเชพเชเซ เชซเชเซเชค เชตเชพเชเชเชตเชพ เชฎเชพเชเซเชจเซ เชเชเซเชธเซเชธ
เชตเซเชฒเซเชฏเซเชฎเชจเซ เชซเชพเชณเชตเชฃเซ เชธเชเชชเซเชฐเซเชฃ เชตเซเชฒเซเชฏเซเชฎเชจเซ เชฐเชเชจเชพเชฎเชพเช เชชเชฐเชฟเชฃเชฎเซ เชถเชเซ เชเซ เชเซเชฏเชพเชฐเซ:
-
เชชเซเชจเชเชธเชเชเซเชฐเชน
เชตเซเชฒเซเชฏเซเชฎ เชธเซเชจเซเชชเชถเซเช ; -
เชฌเชจเชพเชตเช
เชตเซเชฒเซเชฏเซเชฎ เชจเชเชฒเซ ; -
เชเชพเชฎ
เชกเซเชเชพ เชชเซเชฒเซเชธเชนเซเชฒเซเชกเชฐเซเชธ .
เช เชตเซเชฒเซเชฏเซเชฎเซ เชซเชเซเชค เชตเชพเชเชเชตเชพ เชฎเชพเชเซเชจเชพ เชฎเซเชกเชฎเชพเช เชฎเชพเชเชจเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เช เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ
เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ
เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซเชจเชพ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซเชจเซ เชฎเซเชเซเชฏ เชตเชฟเชถเซเชทเชคเชพ เช เชจเชตเซ เชตเซเชฒเซเชฏเซเชฎ เชธเซเชคเซเชฐเซเชค เชเซ, EphemeralVolumeSource
, เชตเซเชฒเซเชฏเซเชฎ เชตเชฟเชจเชเชคเชฟ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฎ เชเซเชทเซเชคเซเชฐเซ เชงเชฐเชพเชตเซ เชเซ (เชเชคเชฟเชนเชพเชธเชฟเช เชฐเซเชคเซ เชธเชคเชค เชตเซเชฒเซเชฏเซเชฎ เชตเชฟเชจเชเชคเซ, PVC เชเชนเซเชตเชพเชฏ เชเซ). เชฎเชพเช เชจเชตเชพ เชจเชฟเชฏเชเชคเซเชฐเช kube-controller-manager
เชชเซเชกเซเชธเชจเซ เชเซเช เชเซ เชเซ เชเชตเชพ เชตเซเชฒเซเชฏเซเชฎ เชธเซเชคเซเชฐเซเชค เชฌเชจเชพเชตเซ เชเซ, เช
เชจเซ เชชเชเซ เชคเซ เชชเซเชกเซเชธ เชฎเชพเชเซ เชชเซเชตเซเชธเซ เชฌเชจเชพเชตเซ เชเซ. CSI เชกเซเชฐเชพเชเชตเชฐ เชฎเชพเชเซ, เช เชตเชฟเชจเชเชคเชฟ เช
เชจเซเชฏ เชเซเชตเซ เช เชฒเชพเชเซ เชเซ, เชคเซเชฅเซ เช
เชนเซเช เชเซเช เชตเชฟเชถเซเชท เชธเชฎเชฐเซเชฅเชจเชจเซ เชเชฐเซเชฐ เชจเชฅเซ.
เชเซเชฏเชพเช เชธเซเชงเซ เชเชตเชพ PVC เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ, เชคเซเชฏเชพเช เชธเซเชงเซ เชคเซเชจเซ เชเชชเชฏเซเช เชตเซเชฒเซเชฏเซเชฎ เชชเชฐเชจเซ เช เชจเซเชฏ เชตเชฟเชจเชเชคเซเชเชจเซ เชเซเชฎ เชฅเช เชถเชเซ เชเซ. เชเชพเชธ เชเชฐเซเชจเซ, เชตเซเชฒเซเชฏเซเชฎเชจเซ เชจเชเชฒ เชเชฐเชคเซ เชตเชเชคเซ เช เชฅเชตเชพ เชตเซเชฒเซเชฏเซเชฎเชฎเชพเชเชฅเซ เชธเซเชจเซเชชเชถเซเช เชฌเชจเชพเชตเชคเซ เชตเชเชคเซ เชคเซเชฎเชจเซ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชค เชคเชฐเซเชเซ เชธเชเชฆเชฐเซเชญเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชชเซเชตเซเชธเซ เชเชฌเซเชเซเชเซเชเชฎเชพเช เชตเซเชฒเซเชฏเซเชฎเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชชเชฃ เชถเชพเชฎเซเชฒ เชเซ.
เชเชชเชฎเซเชณเซ เชฌเชจเชพเชตเซเชฒ PVC เชจเชพ เชจเชพเชฎ เชชเซเชฐเซเชตเชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเซ: เชคเซ เชชเซเชก เชจเชพเชฎ เช เชจเซ เชตเซเชฒเซเชฏเซเชฎ เชจเชพเชฎเชจเซเช เชธเชเชฏเซเชเชจ เชเซ, เชเซ เชนเชพเชเชซเชจ เชฆเซเชตเชพเชฐเชพ เช เชฒเช เชชเชกเซ เชเซ. เชชเซเชฐเซเชตเชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชจเชพเชฎเซ PVC เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเชพเชตเซ เชเซ เชเชพเชฐเชฃ เชเซ เชเซ เชคเชฎเชจเซ เชชเซเชก เชจเชพเชฎ เช เชจเซ เชตเซเชฒเซเชฏเซเชฎ เชจเชพเชฎ เชเชฌเชฐ เชนเซเชฏ เชคเซ เชคเชฎเชพเชฐเซ เชคเซเชจเซ เชถเซเชงเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ. เชจเซเชเชธเชพเชจ เช เชเซ เชเซ เชจเชพเชฎ เชชเชนเซเชฒเซเชฅเซ เชเชชเชฏเซเชเชฎเชพเช เชนเซเช เชถเชเซ เชเซ, เชเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชฆเซเชตเชพเชฐเชพ เชถเซเชงเชพเชฏเซเชฒ เชเซ เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเซเชก เชถเชฐเซ เชฅเชตเชพเชฅเซ เช เชตเชฐเซเชงเชฟเชค เชเซ.
เชชเซเชก เชธเชพเชฅเซ เชตเซเชฒเซเชฏเซเชฎ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชจเชฟเชฏเชเชคเซเชฐเช เชฎเชพเชฒเชฟเช เชนเซเช เชณเชจเชพ เชตเซเชฒเซเชฏเซเชฎเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ เชเซ. เชเซเชฏเชพเชฐเซ เชชเซเชก เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเชเชฐเซ เชเชเชคเซเชฐ เชเชฐเชตเชพเชจเซ เชชเชฆเซเชงเชคเชฟ เชเชพเชฎ เชเชฐเซ เชเซ, เชเซ เชตเชฟเชจเชเชคเซ เช เชจเซ เชตเซเชฒเซเชฏเซเชฎ เชฌเชเชจเซเชจเซ เชเชพเชขเซ เชจเชพเชเซ เชเซ.
เชธเซเชเซเชฐเซเช เชเซเชฒเชพเชธเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฎเชฟเชเซเชจเชฟเชเชฎ เชฆเซเชตเชพเชฐเชพ เชธเซเชเซเชฐเซเช เชกเซเชฐเชพเชเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชจเชเชคเซเช เชฎเซเชณ เชเชพเชฏ เชเซ. เชเซ เชเซ เชคเชพเชคเซเชเชพเชฒเชฟเช เช
เชจเซ เชฎเซเชกเซเช เชฌเชเชงเชจเชเชฐเซเชคเชพ เชตเชฐเซเชเซ (เชเชฐเซเชซ WaitForFirstConsumer
) เชธเชฎเชฐเซเชฅเชฟเชค เชเซ, เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ เชฎเชพเชเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เช
เชฐเซเชฅเชชเซเชฐเซเชฃ เชเซ WaitForFirstConsumer
, เชชเชเซ เชถเซเชกเซเชฏเซเชฒเชฐ เชจเซเชก เชชเชธเชเชฆ เชเชฐเชคเซ เชตเชเชคเซ เชจเซเชกเชจเซ เชเชชเชฏเซเช เช
เชจเซ เชธเซเชเซเชฐเซเช เชเชชเชฒเชฌเซเชงเชคเชพ เชฌเชเชจเซเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเช เชถเชเซ เชเซ. เชเช เชจเชตเซ เชธเซเชตเชฟเชงเชพ เช
เชนเซเช เชฆเซเชเชพเชฏ เชเซ.
เชธเชเชเซเชฐเชน เชเซเชทเชฎเชคเชพ เชเซเชฐเซเชเชฟเชเช
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชถเซเชกเซเชฏเซเชฒเชฐเชจเซ CSI เชกเซเชฐเชพเชเชตเชฐ เชเซเชฏเชพเช เชตเซเชฒเซเชฏเซเชฎ เชฌเชจเชพเชตเชถเซ เชคเซเชจเซ เชเซเช เชเชพเชฃเชเชพเชฐเซ เชนเซเชคเซ เชจเชฅเซ. เช เชฎเชพเชนเชฟเชคเซเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชถเซเชกเซเชฏเซเชฒเชฐ เชฎเชพเชเซ เชกเซเชฐเชพเชเชตเชฐเชจเซ เชธเซเชงเซ เชธเชเชชเชฐเซเช เชเชฐเชตเชพเชจเซ เชชเชฃ เชเซเช เชฐเชธเซเชคเซ เชจเชฅเซ. เชคเซเชฅเซ, เชถเซเชกเซเชฏเซเชฒเชฐ เชฎเชคเชฆเชพเชจ เชจเซเชกเซเชธ เชเชฐเซ เชเซ เชเซเชฏเชพเช เชธเซเชงเซ เชคเซ เชเช เชเชตเซเช เชถเซเชงเซ เชจ เชฒเซ เชเซ เชเซเชจเชพ เชชเชฐ เชตเซเชฒเซเชฏเซเชฎเซเชธ เชเชเซเชธเซเชธ เชเชฐเซ เชถเชเชพเชฏ (เชฒเซเช เชฌเชพเชเชจเซเชกเชฟเชเช) เช เชฅเชตเชพ เชธเซเชฅเชพเชจเชจเซ เชชเชธเชเชฆเชเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชกเซเชฐเชพเชเชตเชฐ (เชคเชพเชคเซเชเชพเชฒเชฟเช เชฌเชเชงเชจเชเชฐเซเชคเชพ) เชชเชฐ เชเซเชกเซ เชฆเซ.
เชจเชตเซ CSIStorageCapacity
, เชเซ เชเชฒเซเชซเชพ เชธเซเชเซเชเชฎเชพเช เชเซ, เชเชฐเซเชฐเซ เชกเซเชเชพเชจเซ etcd เชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพเชจเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ เชเซเชฅเซ เชเชฐเซเชจเซ เชคเซ เชถเซเชกเซเชฏเซเชฒเชฐ เชฎเชพเชเซ เชเชชเชฒเชฌเซเชง เชนเซเชฏ. เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซเชจเชพ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ เชฎเชพเชเซเชจเชพ เชธเชฎเชฐเซเชฅเชจเชฅเซ เชตเชฟเชชเชฐเซเชค, เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชกเซเชฐเชพเชเชตเชฐเชจเซ เชเชฎเชพเชตเชถเซ, เชคเซเชฏเชพเชฐเซ เชคเชฎเชพเชฐเซ เชธเชเชเซเชฐเชน เชเซเชทเชฎเชคเชพ เชเซเชฐเซเชเชฟเชเชเชจเซ เชธเชเซเชทเชฎ เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ: external-provisioner
เชธเชพเชฎเชพเชจเซเชฏ เชฎเชพเชฐเชซเชคเซ เชกเซเชฐเชพเชเชตเชฐ เชชเชพเชธเซเชฅเซ เชชเซเชฐเชพเชชเซเชค เชเซเชทเชฎเชคเชพ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชตเซ เชเซเชเช GetCapacity
.
เชเซ เชถเซเชกเซเชฏเซเชฒเชฐเชจเซ เช
เชจเชฌเชพเชเชจเซเชก เชตเซเชฒเซเชฏเซเชฎ เชธเชพเชฅเซ เชชเซเชก เชฎเชพเชเซ เชจเซเชก เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชเซ เชฒเซเช เชฌเชพเชเชจเซเชกเชฟเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เช
เชจเซ เชกเซเชฐเชพเชเชตเชฐเซ เชงเซเชตเช เชธเซเช เชเชฐเซเชจเซ เชเชฎเชพเชตเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เช เชธเซเชตเชฟเชงเชพเชจเซ เชธเชเซเชทเชฎ เชเชฐเซ เชเซ. CSIDriver.storageCapacity
, เชชเชเซ เชจเซเชกเซเชธ เชเซ เชเซเชจเซ เชชเชพเชธเซ เชชเซเชฐเชคเซ เชธเชเชเซเชฐเชน เชเซเชทเชฎเชคเชพ เชจเชฅเซ เชคเซ เชเชชเชฎเซเชณเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเชถเซ. เช เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซ เชเซเชทเชฃเชฟเช เช
เชจเซ เชธเชคเชค เชตเซเชฒเซเชฏเซเชฎ เชฌเชเชจเซ เชฎเชพเชเซ เชเชพเชฎ เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ CSI เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ เชฎเชพเชเซ เชจเชนเซเช เชเชพเชฐเชฃ เชเซ เชคเซเชฎเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชฆเซเชตเชพเชฐเชพ เชตเชพเชเชเซ เชถเชเชพเชคเชพ เชจเชฅเซ.
เชนเชเชฎเซเชถเชจเซ เชเซเชฎ, เชชเซเชกเซเชธ เชถเซเชกเซเชฏเซเชฒ เชฅเชพเชฏ เชคเซ เชชเชนเซเชฒเชพเช เชคเชฐเชค เช เชฒเชฟเชเช เชเชฐเซเชฒเชพ เชตเซเชฒเซเชฏเซเชฎเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช
เชจเซ เชคเซเชฎเชจเซ เชชเซเชฒเซเชธเชฎเซเชจเซเช เชธเซเชเซเชฐเซเช เชกเซเชฐเชพเชเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชชเชธเชเชฆ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฅเซ เชเซเชฏเชพเชฐเซ เชเซเช เชตเชฃเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ external-provisioner
เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ, เชคเชพเชคเซเชเชพเชฒเชฟเช เชฌเชเชงเชจเชเชฐเซเชคเชพ เชธเชพเชฅเซเชจเชพ เชธเชเชเซเชฐเชน เชตเชฐเซเชเซ เชเซเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเชพเชฐเชฃ เชเซ เช เชกเซเชเชพ เชเซเชเชชเชฃ เชฐเซเชคเซ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชถเซ เชจเชนเซเช.
kubernetes เชถเซเชกเซเชฏเซเชฒเชฐเชจเซ เชธเชเชญเชตเชฟเชค เชฐเซเชชเซ เชเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชซเชฐเช เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเชคเซ เชนเซเชตเชพเชฅเซ, เชเซเชฏเชพเชฐเซ เชตเซเชฒเซเชฏเซเชฎ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชฆเชฐเซเช เชเชฟเชธเซเชธเชพเชฎเชพเช เชเซเชทเชฎเชคเชพ เชเชชเชฒเชฌเซเชง เชฐเชนเซเชถเซ เชคเซเชจเซ เชเซเช เชเซเชฐเซเชเชเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซเชฎ เชเชคเชพเช เชคเซ เชชเซเชจเชเชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เชคเซเชตเซ เชถเชเซเชฏเชคเชพเช เชตเชงเซ เชเซ.
เชจเซ เชคเชฎเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเซ เชถเชเซ เชเซ, เชคเซเชฎเช เชธเซเชฐเชเซเชทเชฟเชค เชฐเซเชคเซ "เชฌเชฟเชฒเชพเชกเซเชเชจเชพ เชธเซเชเซเชจเซเชก เชชเชฐ เชชเซเชฐเซเชเซเชเชฟเชธ" เชเชฐเซ เชถเชเซ เชเซ, เช
เชจเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เช
เชเชฎเซเชฏ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชธเชเชจ เช
เชญเซเชฏเชพเชธเชเซเชฐเชฎเซเชฎเชพเช เชฒเชพเชฏเช เชคเชเชจเซเชเซ เชธเชนเชพเชฏเชคเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเซ เชเซ -
เชธเซเชฐเชเซเชทเชพ
CSISstorageเชเซเชทเชฎเชคเชพ
CSISstorageCapacity เชเชฌเซเชเซเชเซเชเซเชธ เชจเซเชฎเชธเซเชชเซเชธเชฎเชพเช เชฐเชนเซ เชเซ; เชเซเชฏเชพเชฐเซ เชฆเชฐเซเช CSI เชกเซเชฐเชพเชเชตเชฐเชจเซ เชคเซเชจเซ เชชเซเชคเชพเชจเซ เชจเซเชฎเชธเซเชชเซเชธเชฎเชพเช เชฐเซเชฒเชเชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซ เชเชเซเชฏเชพเชฎเชพเช CSIStorageCapacity เชฎเชพเชเซ RBAC เช เชงเชฟเชเชพเชฐเซเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเชพเชฐเชฃ เชเซ เชคเซ เชธเซเชชเชทเซเช เชเซ เชเซ เชกเซเชเชพ เชเซเชฏเชพเชเชฅเซ เชเชตเซ เชฐเชนเซเชฏเซ เชเซ. เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชเชชเชฃ เชฐเซเชคเซ เช เชฎเชพเชเซ เชคเชชเชพเชธ เชเชฐเชคเซเช เชจเชฅเซ, เช เชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชกเซเชฐเชพเชเชตเชฐเซเชจเซ เชธเชฎเชพเชจ เชจเซเชฎเชธเซเชชเซเชธเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฅเซ เชเชเชฐเซ เชกเซเชฐเชพเชเชตเชฐเซ เชชเชพเชธเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เช เชจเซ เชเซเชเซ เชกเซเชเชพ เชชเซเชฐเชเชพเชถเชฟเชค เชจ เชเชฐเชตเชพเชจเซ เช เชชเซเชเซเชทเชพ เชฐเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ (เช เชจเซ เช เชคเซ เชเซ เชเซเชฏเชพเช เชฎเชพเชฐเซเช เชเชพเชฐเซเชก เชจเชฟเชทเซเชซเชณ เชฅเชฏเซเช, เชเชถเชฐเซ เชฆเชพเชขเซเชตเชพเชณเชพ เชเซเช เชชเชฐ เชเชงเชพเชฐเชฟเชค เช เชจเซเชตเชพเชฆเช)
เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ
เชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชชเชพเชธเซ เชชเซเชก (เชชเซเชฐเชคเซเชฏเชเซเชท เช
เชฅเชตเชพ เชชเชฐเซเชเซเชท เชฐเซเชคเซ) เชฌเชจเชพเชตเชตเชพเชจเชพ เช
เชงเชฟเชเชพเชฐเซ เชนเซเชฏ, เชคเซ เชคเซเช เชตเซเชฒเซเชฏเซเชฎ เชชเชฐ เชตเชฟเชจเชเชคเซ เชฌเชจเชพเชตเชตเชพเชจเชพ เช
เชงเชฟเชเชพเชฐเซ เชงเชฐเชพเชตเชคเชพ เชจ เชนเซเชฏ เชคเซ เชชเชฃ เชคเซเช เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซเชจเชพ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎเซ เชชเชฃ เชฌเชจเชพเชตเซ เชถเชเชถเซ. เช เชเชเชฒเชพ เชฎเชพเชเซ เชเซ เชเชพเชฐเชฃ เชเซ RBAC เชชเชฐเชตเชพเชจเชเซ เชคเชชเชพเชธเซ เชคเซ เชจเชฟเชฏเชเชคเซเชฐเช เชชเชฐ เชฒเชพเชเซ เชฅเชพเชฏ เชเซ เชเซ เชชเซเชตเซเชธเซ เชฌเชจเชพเชตเซ เชเซ, เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชจเชนเซเช. เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเซเชเซเชฏ เชซเซเชฐเชซเชพเชฐ เชเซ
เชเชฆเชพเชนเชฐเชฃ:
เช
เชฒเช
เชฏเซเชเซเชฏ เชฎเชถเซเชจ เชชเชฐ (เชฒเชฟเชจเชเซเชธ, เชธเชพเชฎเชพเชจเซเชฏ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ
git clone --branch=kubernetes-1-19-blog-post https://github.com/intel/pmem-csi.git
cd pmem-csi
export TEST_KUBERNETES_VERSION=1.19 TEST_FEATURE_GATES=CSIStorageCapacity=true,GenericEphemeralVolume=true TEST_PMEM_REGISTRY=intel
make start && echo && test/setup-deployment.sh
เชฌเชงเซเช เชเชพเชฎ เชเชฐเซเชฏเชพ เชชเชเซ, เชเชเชเชชเซเชเชฎเชพเช เชเชชเชฏเซเช เชฎเชพเชเซเชจเซ เชธเซเชเชจเชพเช เชนเชถเซ:
The test cluster is ready. Log in with [...]/pmem-csi/_work/pmem-govm/ssh.0, run
kubectl once logged in. Alternatively, use kubectl directly with the
following env variable:
KUBECONFIG=[...]/pmem-csi/_work/pmem-govm/kube.config
secret/pmem-csi-registry-secrets created
secret/pmem-csi-node-secrets created
serviceaccount/pmem-csi-controller created
...
To try out the pmem-csi driver ephemeral volumes:
cat deploy/kubernetes-1.19/pmem-app-ephemeral.yaml |
[...]/pmem-csi/_work/pmem-govm/ssh.0 kubectl create -f -
CSISstorageCapacity เชเชฌเซเชเซเชเซเชเซเชธ เชฎเชจเซเชทเซเชฏเซ เชฆเซเชตเชพเชฐเชพ เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชจเชฅเซ, เชคเซเชฅเซ เชเซเชเชฒเซเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซเชฐเซ เชเซ. เชเซเชฒเชพเชเช เชเซเชฎเซเชชเชฒเซเช เชซเชฟเชฒเซเชเชฐเซเชธ เชธเซเชเซเชฐเซเช เชตเชฐเซเชเซ เชฌเชคเชพเชตเชถเซ, เช เชเชฆเชพเชนเชฐเชฃ เชจเชพเชฎ, เชเซเชชเซเชฒเซเชเซ เช เชจเซ เชเซเชทเชฎเชคเชพ เชฌเชคเชพเชตเชถเซ:
$ kubectl get
-o go-template='{{range .items}}{{if eq .storageClassName "pmem-csi-sc-late-binding"}}{{.metadata.name}} {{.nodeTopology.matchLabels}} {{.capacity}}
{{end}}{{end}}'
csistoragecapacities
csisc-2js6n map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker2] 30716Mi
csisc-sqdnt map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker1] 30716Mi
csisc-ws4bv map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker3] 30716Mi
เชเช เชเชฌเซเชเซเชเซเชเชฎเชพเช เชจเซเชเซเชจเซ เชธเชพเชฎเชเซเชฐเซ เชเซ:
$ kubectl describe csistoragecapacities/csisc-6cw8j
Name: csisc-sqdnt
Namespace: default
Labels: <none>
Annotations: <none>
API Version: storage.k8s.io/v1alpha1
Capacity: 30716Mi
Kind: CSIStorageCapacity
Metadata:
Creation Timestamp: 2020-08-11T15:41:03Z
Generate Name: csisc-
Managed Fields:
...
Owner References:
API Version: apps/v1
Controller: true
Kind: StatefulSet
Name: pmem-csi-controller
UID: 590237f9-1eb4-4208-b37b-5f7eab4597d1
Resource Version: 2994
Self Link: /apis/storage.k8s.io/v1alpha1/namespaces/default/csistoragecapacities/csisc-sqdnt
UID: da36215b-3b9d-404a-a4c7-3f1c3502ab13
Node Topology:
Match Labels:
pmem-csi.intel.com/node: pmem-csi-pmem-govm-worker1
Storage Class Name: pmem-csi-sc-late-binding
Events: <none>
เชเชพเชฒเซ เชเช เชธเชพเชฎเชพเชจเซเชฏ เชนเซเชคเซ เชเซเชทเชฃเชฟเช เชตเซเชฒเซเชฏเซเชฎ เชธเชพเชฅเซ เชกเซเชฎเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช. เชซเชพเชเชฒ เชธเชฎเชพเชตเชฟเชทเซเชเซ pmem-app-ephemeral.yaml
:
# This example Pod definition demonstrates
# how to use generic ephemeral inline volumes
# with a PMEM-CSI storage class.
kind: Pod
apiVersion: v1
metadata:
name: my-csi-app-inline-volume
spec:
containers:
- name: my-frontend
image: intel/pmem-csi-driver-test:v0.7.14
command: [ "sleep", "100000" ]
volumeMounts:
- mountPath: "/data"
name: my-csi-volume
volumes:
- name: my-csi-volume
ephemeral:
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
storageClassName: pmem-csi-sc-late-binding
เชฌเชจเชพเชตเซเชฏเชพ เชชเชเซ, เชเชชเชฐเชจเซ เชธเซเชเชจเชพเชเชฎเชพเช เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ, เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชตเซ เชตเชงเชพเชฐเชพเชจเชพ เชชเซเชก เช เชจเซ เชชเซเชตเซเชธเซ เชเซ:
$ kubectl get pods/my-csi-app-inline-volume -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
my-csi-app-inline-volume 1/1 Running 0 6m58s 10.36.0.2 pmem-csi-pmem-govm-worker1 <none> <none>
$ kubectl get pvc/my-csi-app-inline-volume-my-csi-volume
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
my-csi-app-inline-volume-my-csi-volume Bound pvc-c11eb7ab-a4fa-46fe-b515-b366be908823 4Gi RWO pmem-csi-sc-late-binding 9m21s
เชชเซเชตเซเชธเซ เชฎเชพเชฒเชฟเช - เชนเซเช เชณ:
$ kubectl get -o yaml pvc/my-csi-app-inline-volume-my-csi-volume
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: pmem-csi.intel.com
volume.kubernetes.io/selected-node: pmem-csi-pmem-govm-worker1
creationTimestamp: "2020-08-11T15:44:57Z"
finalizers:
- kubernetes.io/pvc-protection
managedFields:
...
name: my-csi-app-inline-volume-my-csi-volume
namespace: default
ownerReferences:
- apiVersion: v1
blockOwnerDeletion: true
controller: true
kind: Pod
name: my-csi-app-inline-volume
uid: 75c925bf-ca8e-441a-ac67-f190b7a2265f
...
เชฎเชพเชเซ เช
เชชเซเชเซเชทเชฟเชค เชฐเซเชคเซ เช
เชชเชกเซเช เชเชฐเซเชฒเซ เชฎเชพเชนเชฟเชคเซ pmem-csi-pmem-govm-worker1
:
csisc-2js6n map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker2] 30716Mi
csisc-sqdnt map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker1] 26620Mi
csisc-ws4bv map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker3] 30716Mi
เชเซ เช
เชจเซเชฏ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ 26620Mi เชเชฐเชคเชพเช เชตเชงเซเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เชถเซเชกเซเชฏเซเชฒเชฐ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชถเซ เชจเชนเซเช pmem-csi-pmem-govm-worker1
เชเซเชเชชเชฃ เชเชฟเชธเซเชธเชพเชฎเชพเช.
เชถเซเช เชเชเชพเชฎเซ เชเซ?
เชฌเชเชจเซ เชธเซเชตเชฟเชงเชพเช เชนเชเซ เชตเชฟเชเชพเชธเชฎเชพเช เชเซ. เชเชฒเซเชซเชพ เชชเชฐเซเชเซเชทเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเซเชเชฒเซเช เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชเซเชฒเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชธเซเชงเชพเชฐเชฃเชพ เชฆเชฐเชเชพเชธเซเชค เชฒเชฟเชเชเซเชธ เช เชเชพเชฐเซเชฏเชจเซ เชฆเชธเซเชคเชพเชตเซเช เชเชฐเซ เชเซ เชเซ เชฌเซเชเชพ เชคเชฌเชเซเชเชพเชฎเชพเช เชเชตเชพ เชฎเชพเชเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซเชฎเช เชเชฏเชพ เชตเชฟเชเชฒเซเชชเซ เชชเชนเซเชฒเชพเชฅเซ เช เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ เช เชจเซ เชจเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ:
-
KEP-1698: เชธเชพเชฎเชพเชจเซเชฏ เชเซเชทเชฃเชฟเช เชเชจเชฒเชพเชเชจ เชตเซเชฒเซเชฏเซเชฎเซ -
KEP-1472: เชธเซเชเซเชฐเซเช เชเซเชชเซเชธเชฟเชเซ เชเซเชฐเซเชเชฟเชเช
เชธเซเชฐเซเชธ: www.habr.com