Kubernetes 1.16: ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื–

Kubernetes 1.16: ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื–

ื”ื™ื™ื ื˜, ืžื™ื˜ื•ื•ืืš, ื•ื•ืขื˜ ื ืขืžืขืŸ ืึธืจื˜ ื•ื•ื™ื™ึทื˜ืขืจ ืžืขืœื“ื•ื ื’ ืคื•ืŸ Kubernetes - 1.16. ืœื•ื™ื˜ ื“ื™ ื˜ืจืึทื“ื™ืฆื™ืข ื•ื•ืึธืก ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’, ื“ืึธืก ืื™ื– ื“ื™ ืฆืขื ื˜ ื™ืึธืจื˜ืึธื’ ื•ื•ืขืŸ ืžื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืžืขืจืกื˜ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข.

ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื’ืขื ื™ืฆื˜ ืฆื• ืฆื•ื’ืจื™ื™ื˜ืŸ ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ ืื™ื– ื’ืขื ื•ืžืขืŸ ืคื•ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ื˜ืจืึทืงื™ื ื’ ื˜ื™ืฉืŸ, CHANGELOG-1.16 ืื•ืŸ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ื™ืฉื•ื–, ืฆื™ืขืŸ ืจื™ืงื•ื•ืขืก, ืื•ืŸ Kubernetes Enhancement Proposals (KEP). ืึทื–ื•ื™, ืœืึธื–ืŸ ืก ื’ื™ื™ืŸ! ..

ื ืึธื“ืขืก

ื ื‘ืืžืช ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื ืึธื•ื˜ืึทื‘ืึทืœ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– (ืื™ืŸ ืึทืœืฃ ื•ื•ืขืจืกื™ืข ืกื˜ืึทื˜ื•ืก) ื–ืขื ืขืŸ ื“ืขืจืœืื ื’ื˜ ืื•ื™ืฃ ื“ื™ ื–ื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืง8ืก ืงื ื•ื™ืœ ื ืึธื•ื“ื– (ืงื•ื‘ืขืœืขื˜).

ืขืจืฉื˜ืขืจ, ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ยซืขืคืขืžืขืจืึทืœ ืงืึทื ื˜ื™ื™ื ืขืจื–ยป (ืขืคืขืžืขืจืึทืœ ืงืึทื ื˜ื™ื™ื ืขืจื–), ื“ื™ื–ื™ื™ื ื“ ืฆื• ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื“ื™ื‘ืึทื’ื™ื ื’ ืคึผืจืึทืกืขืกืึทื– ืื™ืŸ ืคึผืึธื“ืก. ื“ื™ ื ื™ื™ึทืข ืžืขืงืึทื ื™ื–ืึทื ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื˜ืขืจ ืกืคึผืขืฆื™ืขืœ ืงืึทื ื˜ื™ื™ื ืขืจื– ื•ื•ืึธืก ืึธื ื”ื™ื™ื‘ืŸ ืื™ืŸ ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคึผืึธื“ืก ืื•ืŸ ืœืขื‘ืŸ ืคึฟืึทืจ ืึท ืงื•ืจืฅ ืฆื™ื™ื˜. ื–ื™ื™ืขืจ ืฆื™ืœ ืื™ื– ืฆื• ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ืื ื“ืขืจืข ืคึผืึธื“ืก ืื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ืŸ ืกื“ืจ ืฆื• ืกืึธืœื•ื•ืข ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ ืื•ืŸ ื“ื™ื‘ืึทื’. ื ื ื™ื™ึทืข ื‘ืึทืคึฟืขืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ ื“ืขื ืฉื˜ืจื™ืš kubectl debug, ืขื ืœืขืš ืื™ืŸ ืขืกืึทื ืก ืฆื• kubectl exec: ื‘ืœื•ื™ื– ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืœื•ื™ืคืŸ ืึท ืคึผืจืึธืฆืขืก ืื™ืŸ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ (ื•ื•ื™ ืื™ืŸ exec) ืขืก ืœืึธื ื˜ืฉื™ื– ืึท ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ืŸ ืึท ืคึผืึธื“. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ืขื ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ืคืึทืจื‘ื™ื ื“ืŸ ืึท ื ื™ื™ึท ืงืึทื ื˜ื™ื™ื ืขืจ ืฆื• ืึท ืคึผืึธื“:

kubectl debug -c debug-shell --image=debian target-pod -- bash

ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ื™ืคืขืžืขืจืึทืœ ืงืึทื ื˜ื™ื™ื ืขืจื– (ืื•ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ื–ื™ื™ืขืจ ื ื•ืฆืŸ) ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ KEP. ื“ื™ ืงืจืึทื ื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ (ืื™ืŸ K8s 1.16) ืื™ื– ืึทืŸ ืึทืœืฃ ื•ื•ืขืจืกื™ืข, ืื•ืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ ืงืจื™ื™ื˜ื™ืจื™ืึท ืคึฟืึทืจ ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืฆื• ืึท ื‘ื™ืชื ื•ื•ืขืจืกื™ืข ืื™ื– "ื˜ืขืกื˜ื™ื ื’ ื“ื™ ืขืคืขืžืขืจืึทืœ ืงืึทื ื˜ื™ื™ื ืขืจื– ืึทืคึผื™ ืคึฟืึทืจ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ 2 ืจื™ืœื™ืกื™ื– ืคื•ืŸ [Kubernetes]."

NB: ืื™ืŸ ื–ื™ื™ืŸ ืขืกืึทื ืก ืื•ืŸ ืืคื™ืœื• ื–ื™ื™ืŸ ื ืึธืžืขืŸ, ื“ื™ ืฉื˜ืจื™ืš ืจื™ื–ืขืžื‘ืึทืœื– ืึทืŸ ืฉื•ื™ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคึผืœื•ื’ื™ืŸ kubectl-debugื•ื•ืขื’ืŸ ื•ื•ืึธืก ืžื™ืจ ืฉื•ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ. ืขืก ืื™ื– ื“ืขืจื•ื•ืึทืจื˜ ืึทื– ืžื™ื˜ ื“ื™ ืึทื“ื•ื•ืขื ื˜ ืคื•ืŸ ื™ืคืขืžืขืจืึทืœ ืงืึทื ื˜ื™ื™ื ืขืจื–, ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคึผืœื•ื’ื™ืŸ ื•ื•ืขื˜ ืื•ื™ืคื”ืขืจืŸ.

ื ืืš ื ื—ื™ื“ื•ืฉ - PodOverhead - ื“ื™ื–ื™ื™ื ื“ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ืึธื•ื•ื•ืขืจื›ืขื“ ืงืึธืก ืคึฟืึทืจ ืคึผืึธื“ืก, ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ื™ื™ึทื˜ืŸ ื–ื™ื™ืขืจ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืจื•ื ื˜ื™ืžืข ื’ืขื ื™ืฆื˜. ื•ื•ื™ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืžื—ื‘ืจื™ื ื“ืขื KEP ืจืขื–ื•ืœื˜ืึทื˜ ืื™ืŸ ืงืึทื˜ืึท ืงืึทื ื˜ื™ื™ื ืขืจื–, ื•ื•ืึธืก ื“ืึทืจืคืŸ ืœื•ื™ืคืŸ ื“ื™ ื’ืึทืกื˜ ืงืขืจืŸ, ืงืึทื˜ืึท ืึทื’ืขื ื˜, ื™ื ื™ื˜ ืกื™ืกื˜ืขื, ืขื˜ืง. ื•ื•ืขืŸ ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ื•ื•ืขืจื˜ ืึทื–ื•ื™ ื’ืจื•ื™ืก, ืขืก ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ืื™ื’ื ืึธืจื™ืจื˜, ื•ื•ืึธืก ืžื™ื˜ืœ ืขืก ื“ืึทืจืฃ ื–ื™ื™ืŸ ืึท ื•ื•ืขื’ ืฆื• ื ืขืžืขืŸ ืขืก ืื™ืŸ ื—ืฉื‘ื•ืŸ ืคึฟืึทืจ ื•ื•ื™ื™ึทื˜ืขืจ ืงื•ื•ืึธื˜ืขืก, ืคึผืœืึทื ื™ืจื•ื ื’, ืืื–"ื• ื•. ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืขืก ืื™ืŸ PodSpec ืคืขืœื“ ืฆื•ื’ืขื’ืขื‘ืŸ Overhead *ResourceList (ืงืึทืžืคึผืขืจื– ืžื™ื˜ ื“ืึทื˜ืŸ ืื™ืŸ RuntimeClass, ืื•ื™ื‘ ืื™ื™ื ืขืจ ืื™ื– ื’ืขื ื™ืฆื˜).

ืืŸ ืื ื“ืขืจ ื•ื•ื™ื›ื˜ื™ืง ื›ื™ื“ืขืฉ ืื™ื– ื ืึธื“ืข ื˜ืึทืคึผืึทืœืึทื“ื–ืฉื™ ืคืึทืจื•ื•ืึทืœื˜ืขืจ (ื ืึธื“ืข ื˜ืึธืคึผืึธืœืึธื’ื™ ืžืึทื ืึทื’ืขืจ), ื“ื™ื–ื™ื™ื ื“ ืฆื• ืคืึทืจื™ื™ื ื™ืงืŸ ื“ืขื ืฆื•ื’ืึทื ื’ ืฆื• ืคื™ื™ืŸ-ื˜ื•ื ื™ื ื’ ื“ื™ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืจืขืกื•ืจืกืŸ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ืŸ Kubernetes. ื“ื™ ืื™ื ื™ืฆื™ืื˜ื™ื•ื• ืื™ื– ื’ืขื˜ืจื™ื‘ืŸ ื“ื•ืจืš ื“ื™ ื’ืจืึธื•ื™ื ื’ ื ื•ื™ื˜ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืžืึธื“ืขืจืŸ ืกื™ืกื˜ืขืžืขืŸ (ืคื•ืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ ื˜ืขืœืึทืงืึทืžื™ื•ื ืึทืงื™ื™ืฉืึทื ื–, ืžืึทืฉื™ืŸ ืœืขืจื ืขืŸ, ืคื™ื ืึทื ืฆื™ืขืœ ื‘ืึทื“ื™ื ื•ื ื’ืก, ืืื–"ื• ื•) ืคึฟืึทืจ ื”ื•ื™ืš-ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึผืึทืจืึทืœืขืœ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืื•ืŸ ืžื™ื ืึทืžื™ื™ื–ื™ื ื’ ื“ื™ืœื™ื™ื– ืื™ืŸ ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืคึฟืึทืจ ื•ื•ืึธืก ื–ื™ื™ ื ื•ืฆืŸ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืงืคึผื• ืื•ืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–. ืึทื–ืึท ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืื™ืŸ Kubernetes ื–ืขื ืขืŸ ื‘ื™ื– ืึทื”ืขืจ ืึทื˜ืฉื™ื•ื•ื“ ื“ืึทื ืง ืฆื• ื“ื™ืกืคึผืขืจืึทื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ (CPU ืคืึทืจื•ื•ืึทืœื˜ืขืจ, ื“ื™ื•ื•ื™ื™ืก ืคืึทืจื•ื•ืึทืœื˜ืขืจ, CNI), ืื•ืŸ ืื™ืฆื˜ ื–ื™ื™ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ืื™ื™ืŸ ื™ื ืขืจืœืขืš ืฆื•ื‘ื™ื ื“ ื•ื•ืึธืก ื™ื•ื ืึทืคื™ื™ื– ื“ืขื ืฆื•ื’ืึทื ื’ ืื•ืŸ ืกื™ืžืคึผืœืึทืคื™ื™ื– ื“ื™ ืงืฉืจ ืคื•ืŸ ื ื™ื™ึทืข ืขื ืœืขืš - ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ื˜ืึทืคึผืึทืœืึทื“ื–ืฉื™- ืึทื•ื•ืขืจ - ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื•ื™ืฃ ื“ื™ ืงื•ื‘ืขืœืขื˜ ื–ื™ื™ึทื˜. ื“ืขื˜ืึทื™ืœืก - ืื™ืŸ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ KEP.

Kubernetes 1.16: ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื–
ื˜ืึทืคึผืึธืœืึธื’ื™ ืžืึทื ืึทื’ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜ ื“ื™ืึทื’ืจืึทืžืข

ื•ื•ื™ื™ึทื˜ืขืจ ืฉื˜ืจื™ืš - ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืงืึทื ื˜ื™ื™ื ืขืจื– ื‘ืฉืขืช ื–ื™ื™ ืœื•ื™ืคืŸ (ืกื˜ืึทืจื˜ืึทืคึผ ื–ืึธื ื“). ื•ื•ื™ ืื™ืจ ื•ื•ื™ืกืŸ, ืคึฟืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจื– ื•ื•ืึธืก ื ืขืžืขืŸ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืฆื• ืงืึทื˜ืขืจ, ืขืก ืื™ื– ืฉื•ื•ืขืจ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ื“ืขืจื”ืจื’ืขื˜ ืกื˜ืึทื˜ื•ืก: ื–ื™ื™ ื–ืขื ืขืŸ ืึธื“ืขืจ "ื’ืขื”ืจื’ืขื˜" ืื™ื™ื“ืขืจ ื–ื™ื™ ืึทืงื˜ืฉืึทื•ื•ืึทืœื™ ืึธื ื”ื™ื™ื‘ืŸ ืคืึทื ื’ืงืฉืึทื ื™ื ื’, ืึธื“ืขืจ ื–ื™ื™ ืขื ื“ื™ืงืŸ ื–ื™ืš ืื™ืŸ ื“ืขื“ืœืึทืง ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜. ื ื™ื• ื˜ืฉืขืง (ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืฉื˜ืจื™ืš ื˜ื•ื™ืขืจ ื’ืขืจื•ืคืŸ StartupProbeEnabled) ืงืึทื ืกืึทืœื– - ืึธื“ืขืจ ื’ืึทื ืฅ, ื“ื™ืคืขืจื– - ื“ื™ ื•ื•ื™ืจืงื•ื ื’ ืคื•ืŸ ืงื™ื™ืŸ ืื ื“ืขืจืข ื˜ืฉืขืงืก ื‘ื™ื– ื“ืขื ืžืึธืžืขื ื˜ ื“ื™ ืคึผืึธื“ ืื™ื– ืคืึทืจื˜ื™ืง ืคืœื™ืกื ื“ื™ืง. ืคึฟืึทืจ ื“ืขื ืกื™ื‘ื”, ื“ื™ ืฉื˜ืจื™ืš ืื™ื– ืขืจื™ื“ื–ืฉื ืึทืœื™ ื’ืขืจื•ืคืŸ ืคึผืึธื“-ืกื˜ืึทืจื˜ืึทืคึผ ืœื™ื™ื•ื•ื ืึทืก-ื–ืึธื ื“ ื”ืึธืœื“ืึธืคืฃ. ืคึฟืึทืจ ืคึผืึธื“ืก ื•ื•ืึธืก ื ืขืžืขืŸ ืึท ืœืึทื ื’ ืฆื™ื™ื˜ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืฉื˜ืึทื˜ ืื™ืŸ ืœืขืคื™ืขืจืขืš ืงื•ืจืฅ ืฆื™ื™ื˜ ื™ื ื˜ืขืจื•ื•ืึทืœื–.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืึท ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’ ืคึฟืึทืจ RuntimeClass ืื™ื– ื’ืœื™ื™ืš ื‘ื ื™ืžืฆื ืื™ืŸ ื‘ื™ืชื ืกื˜ืึทื˜ื•ืก, ืึทื“ื™ื ื’ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ "ื›ืขื˜ืขืจืึทื“ื–ืฉื™ื ื™ืึทืก ืงืœืึทืกื˜ืขืจื–". ื’ ืจื•ื ื˜ื™ืžืขืงืœืึทืก ืกืงืขื“ื–ืฉื•ืœื™ื ื’ ืื™ืฆื˜ ืขืก ืื™ื– ื ื™ื˜ ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ื™ืขื“ืขืจ ื ืึธื“ืข ืฆื• ื”ืึธื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ืขื“ืขืจ ืจื•ื ื˜ื™ืžืขืงืœืึทืก: ืคึฟืึทืจ ืคึผืึธื“ืก ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืึท ืจื•ื ื˜ื™ืžืขืงืœืึทืก ืึธืŸ ื˜ืจืื›ื˜ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืงื ื•ื™ืœ ื˜ืึทืคึผืึทืœืึทื“ื–ืฉื™. ื‘ื™ื– ืึทื”ืขืจ, ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืขื - ืึทื–ื•ื™ ืึทื– ืคึผืึธื“ืก ืกื•ืฃ ืึทืจื•ื™ืฃ ืื•ื™ืฃ ื ืึธื•ื“ื– ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทืœืฅ ื–ื™ื™ ื“ืึทืจืคึฟืŸ - ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ืฆื•ื ืขืžืขืŸ ื›ึผืœืœื™ื ืฆื• NodeSelector ืื•ืŸ ื˜ืึธืœืขืจื™ื™ืฉืึทื ื–. ืื™ืŸ ืงืขืคึผ ืขืก ืจืขื“ื˜ ื•ื•ืขื’ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ื ื•ืฆืŸ ืื•ืŸ, ืคื•ืŸ ืงื•ืจืก, ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื“ืขื˜ืึทื™ืœืก.

ะกะตั‚ัŒ

ืฆื•ื•ื™ื™ ื•ื•ื™ื›ื˜ื™ืง ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ืืจื•ื™ืก ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ (ืื™ืŸ ืึทืœืฃ ื•ื•ืขืจืกื™ืข) ืื™ืŸ Kubernetes 1.16 ื–ืขื ืขืŸ:

  • ะŸะพะดะดะตั€ะถะบะฐ ืฆื•ื•ื™ื™ืขื ื“ื™ืง ื ืขืฅ ืึธื ืœื™ื™ื’ืŸ - IPv4/IPv6 - ืื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ "ืคืืจืฉื˜ืื ื“" ืื•ื™ืฃ ื“ืขืจ ืžื“ืจื’ื” ืคื•ืŸ ืคึผืึธื“ืก, ื ืึธื•ื“ื–, ื‘ืึทื“ื™ื ื•ื ื’ืก. ืขืก ื™ื ืงืœื•ื“ื– IPv4-to-IPv4 ืื•ืŸ IPv6-to-IPv6 ื™ื ื˜ืขืจืึธืคึผืขืจืึทื‘ื™ืœื™ื˜ื™ ืฆื•ื•ื™ืฉืŸ ืคึผืึธื“ืก, ืคึฟื•ืŸ ืคึผืึธื“ืก ืฆื• ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื‘ืึทื“ื™ื ื•ื ื’ืก, ืจืขืคึฟืขืจืขื ืฅ ื™ืžืคึผืœืึทืžืึทื ืฅ (ื™ืŸ ื“ื™ Bridge CNI, PTP CNI ืื•ืŸ Host-Local IPAM ืคึผืœื•ื’ื™ื ืก), ื•ื•ื™ ืื•ื™ืš ืคืึทืจืงืขืจื˜ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ Kubernetes ืงืœืึทืกื˜ืขืจื– ืคืœื™ืกื ื“ื™ืง ื‘ืœื•ื™ื– IPv4 ืึธื“ืขืจ IPv6. ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคืจื˜ื™ื ื–ืขื ืขืŸ ืื™ืŸ ืงืขืคึผ.

    ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื•ื•ื™ื™ึทื–ื ื“ื™ืง IP ืึทื“ืจืขืกืขืก ืคื•ืŸ ืฆื•ื•ื™ื™ ื˜ื™ื™ืคึผืก (IPv4 ืื•ืŸ IPv6) ืื™ืŸ ื“ืขืจ ืจืฉื™ืžื” ืคื•ืŸ ืคึผืึธื“ืก:

    kube-master# kubectl get pods -o wide
    NAME               READY     STATUS    RESTARTS   AGE       IP                          NODE
    nginx-controller   1/1       Running   0          20m       fd00:db8:1::2,192.168.1.3   kube-minion-1
    kube-master#

  • ื ื™ื• ืึทืคึผื™ ืคึฟืึทืจ ืขื ื“ืคึผื•ื™ื ื˜ - EndpointSlice API. ืขืก ืกืึทืœื•ื•ื– ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ / ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ื™ืฉื•ื– ืคื•ืŸ ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืขื ื“ืคึผื•ื™ื ื˜ ืึทืคึผื™ ื•ื•ืึธืก ื•ื•ื™ืจืงืŸ ืคืึทืจืฉื™ื“ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš (ืึทืคึผื™ืกืขืจื•ื•ืขืจ, ืขื˜ืง, ืขื ื“ืคึผืึธื™ื ืฅ-ืงืึธื ื˜ืจืึธืœืœืขืจ, ืงื•ื‘ืข-ืคึผืจืึธืงืกื™). ื“ื™ ื ื™ื™ึทืข ืึทืคึผื™ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ Discovery API ื’ืจื•ืคึผืข ืื•ืŸ ื•ื•ืขื˜ ืงืขื ืขืŸ ืฆื• ื“ื™ื ืขืŸ ื˜ืขื ืก ืคื•ืŸ ื˜ื•ื™ื–ื ื˜ืขืจ ืคื•ืŸ ื‘ืึทืงืขื ื“ ืขื ื“ืคึผื•ื™ื ื˜ืก ืื•ื™ืฃ ื™ืขื“ืขืจ ื“ื™ื ืกื˜ ืื™ืŸ ืึท ืงื ื•ื™ืœ ืงืึทื ืกื™ืกื˜ื™ื ื’ ืคื•ืŸ ื˜ื•ื™ื–ื ื˜ืขืจ ืคื•ืŸ ื ืึธื•ื“ื–. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื™ืขื“ืขืจ ืกืขืจื•ื•ื™ืก ืื™ื– ืžืึทืคึผื˜ ืฆื• ืขืŸ ืึทื‘ื“ื–ืฉืขืงืฅ EndpointSlice, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ื”ืื˜ ื ื™ื˜ ืžืขืจ ื•ื•ื™ 100 ืขื ื“ืคึผืึธื™ื ืฅ (ื“ื™ ื•ื•ืขืจื˜ ืื™ื– ืงืึธื ืคื™ื’ื•ืจืึทื‘ืœืข). ื“ื™ EndpointSlice API ื•ื•ืขื˜ ืื•ื™ืš ืฆื•ืฉื˜ืขืœืŸ ืึทืคึผืขืจื˜ื•ื ืึทื˜ื™ื– ืคึฟืึทืจ ื–ื™ื™ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’: ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงื™ื™ืคืœ IP ืึทื“ืจืขืกืขืก ืคึฟืึทืจ ื™ืขื“ืขืจ ืคึผืึธื“, ื ื™ื™ึทืข ืฉื˜ืึทื˜ืŸ ืคึฟืึทืจ ืขื ื“ืคึผืึธื™ื ืฅ (ื ื™ื˜ ื‘ืœื•ื™ื– Ready ะธ NotReady), ื“ื™ื ืึทืžื™ืฉ ืกืึทื‘ืกืขื˜ื˜ื™ื ื’ ืคึฟืึทืจ ืขื ื“ืคึผื•ื™ื ืฅ.

ื“ืขืจ ืื™ื™ื ืขืจ ื“ืขืจืœืื ื’ื˜ ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ืžืขืœื“ื•ื ื’ ื”ืื˜ ืจื™ื˜ืฉื˜ ื“ื™ ื‘ื™ืชื ื•ื•ืขืจืกื™ืข ืคื™ื ืึทืœื™ื–ืขืจ, ื’ืขื”ื™ื™ืกืŸ service.kubernetes.io/load-balancer-cleanup ืื•ืŸ ืึทื˜ืึทื˜ืฉื˜ ืฆื• ื™ืขื“ืขืจ ื“ื™ื ืกื˜ ืžื™ื˜ ื˜ื™ืคึผ LoadBalancer. ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ืœื™ื˜ื™ื ื’ ืึทื–ืึท ืึท ื“ื™ื ืกื˜, ืขืก ืคึผืจื™ื•ื•ืขื ืฅ ื“ื™ ืคืึทืงื˜ื™ืฉ ื“ื™ืœื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ ื‘ื™ื– ื“ื™ "ืจื™ื™ื ื™ืงื•ื ื’" ืคื•ืŸ ืึทืœืข ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื‘ืึทืœืึทื ืกืขืจ ืจืขืกื•ืจืกืŸ ืื™ื– ื’ืขืขื ื“ื™ืงื˜.

ืึทืคึผื™ ืžืึทืฉื™ื ืขืจื™

ื“ืขืจ ืขืžืขืก "ืกื˜ื™ื™ื‘ืึทืœืึทื–ื™ื™ืฉืึทืŸ ืžื™ื™ืœืกื˜ืึธื•ืŸ" ืื™ื– ืื™ืŸ ื“ืขืจ ื’ืขื’ื ื˜ ืคื•ืŸ ื“ื™ Kubernetes API ืกืขืจื•ื•ืขืจ ืื•ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืื™ื. ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืœืึทืจื’ืขืœื™ ื“ืึทื ืง ืฆื• ื˜ืจืึทื ืกืคืขืจื™ื ื’ ืฆื• ืกื˜ืึทื‘ื™ืœ ืกื˜ืึทื˜ื•ืก ื“ื™ ื•ื•ืืก ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืกืคึผืขืฆื™ืขืœืข ื”ืงื“ืžื” CustomResourceDefinitions (CRD), ื•ื•ืึธืก ื”ืึธื‘ืŸ ื’ืขื”ืื˜ ื‘ื™ืชื ืกื˜ืึทื˜ื•ืก ื–ื™ื ื˜ ื“ื™ ื•ื•ื™ื™ึทื˜ ื˜ืขื’ ืคื•ืŸ Kubernetes 1.7 (ืื•ืŸ ื“ืึธืก ืื™ื– ื™ื•ื ื™ 2017!). ื“ื™ ื–ืขืœื‘ืข ืกื˜ื™ื™ื‘ืึทืœืึทื–ื™ื™ืฉืึทืŸ ื’ืขืงื•ืžืขืŸ ืฆื• ื“ื™ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ:

  • "ืกื•ื‘ืจืขืกื•ืจืกืŸ" ืžื™ื˜ /status ะธ /scale ืคึฟืึทืจ CustomResources;
  • ื˜ืจืึทื ืกืคืึธืจืžืึทืฆื™ืข ื•ื•ืขืจืกื™ืขืก ืคึฟืึทืจ CRD, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื•ื•ืขื‘ื”ืึธืึธืง;
  • ืœืขืฆื˜ื ืก ื“ืขืจืœืื ื’ื˜ (ืื™ืŸ K8s 1.15) ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืึทืœื•ืขืก (ื“ื™ืคืึธืœื˜ื™ื ื’) ืื•ืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ืคืขืœื“ ื‘ืึทื–ื™ื™ึทื˜ื™ืงื•ื ื’ (ืคึผืจื•ื™ื ื’) ืคึฟืึทืจ CustomResources;
  • ื’ืขืœืขื’ื ื”ื™ื™ึทื˜ ืึทืคึผืœื™ื™ื™ื ื’ ื“ื™ OpenAPI v3 ืกื˜ืฉืขืžืึท ืฆื• ืฉืึทืคึฟืŸ ืื•ืŸ ืึทืจื•ื™ืกื’ืขื‘ืŸ OpenAPI ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื’ืขื ื™ืฆื˜ ืฆื• ื•ื•ืึทืœืึทื“ื™ื™ื˜ CRD ืจืขืกื•ืจืกืŸ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜.

ืืŸ ืื ื“ืขืจ ืžืขืงืึทื ื™ื–ืึทื ื•ื•ืึธืก ืื™ื– ืœืึทื ื’ ื’ืขื•ื•ืืจืŸ ื‘ืึทืงืึทื ื˜ ืฆื• ืงื•ื‘ืขืจื ืขื˜ืขืก ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก: ืึทืจื™ื™ึทื ื˜ืจืขื˜ืŸ ื•ื•ืขื‘ื”ืึธืึธืง - ืื•ื™ืš ืคืืจื‘ืœื™ื‘ืŸ ืื™ืŸ ื‘ื™ืชื ืกื˜ืึทื˜ื•ืก ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ (ื–ื™ื ื˜ K8s 1.9) ืื•ืŸ ืื™ื– ืื™ืฆื˜ ื“ืขืจืงืœืขืจื˜ ืกื˜ืึทื‘ื™ืœ.

ืฆื•ื•ื™ื™ ืื ื“ืขืจืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื”ืึธื‘ืŸ ืจื™ื˜ืฉื˜ ื‘ื™ืชื: ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ ืฆื•ืœื™ื™ื’ืŸ ะธ ื•ื•ืึทืš ื‘ื•ืงืžืึทืจืงืก.

ืื•ืŸ ื“ืขืจ ื‘ืœื•ื™ื– ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื›ื™ื“ืขืฉ ืื™ืŸ ื“ื™ ืึทืœืฃ ื•ื•ืขืจืกื™ืข ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื•ืจื›ืคืึทืœ ืคื•ืŸ SelfLink - ืึท ืกืคึผืขืฆื™ืขืœืข URI ื•ื•ืึธืก ืจืขืคึผืจืึทื–ืขื ืฅ ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ื›ื™ื™ืคืขืฅ ืื•ืŸ ืื™ื– ืึท ื˜ื™ื™ืœ ืคื•ืŸ ObjectMeta ะธ ListMeta (ื“"ื” ื˜ื™ื™ืœ ืคื•ืŸ ืงื™ื™ืŸ ื›ื™ื™ืคืขืฅ ืื™ืŸ Kubernetes). ืคืืจื•ื•ืืก ืคืืจืœืื–ืŸ ื–ื™ื™ ืขืก? ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืื™ืŸ ืึท ืคึผืฉื•ื˜ ื•ื•ืขื’ ืกืึธื•ื ื“ืก ื•ื•ื™ ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ ืคืึทืงื˜ื™ืฉ (ืึธื•ื•ื•ืขืจื•ื•ืขืœืžื™ื ื’) ืกื™ื‘ื•ืช ืคึฟืึทืจ ื“ืขื ืคืขืœื“ ืฆื• ื ืึธืš ืขืงืกื™ืกื˜ื™ืจืŸ. ืžืขืจ ืคืึธืจืžืึทืœ ืกื™ื‘ื•ืช ื–ืขื ืขืŸ ืฆื• ืึทืคึผื˜ืึทืžื™ื™ื– ืคืึธืจืฉื˜ืขืœื•ื ื’ (ื“ื•ืจืš ืจื™ืžื•ื•ื•ื™ื ื’ ืึท ื•ืžื ื™ื™ื˜ื™ืง ืคืขืœื“) ืื•ืŸ ืฆื• ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ื“ื™ ื“ื–ืฉืึทื ืขืจื™ืง-ืึทืคึผื™ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ืื™ื– ื’ืขืฆื•ื•ื•ื ื’ืขืŸ ืฆื• ืฉืขืคึผืŸ ืึทื–ืึท ืึท ืคืขืœื“ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืขืœ ื•ื•ืขื’ (ื“ืึธืก ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ืคืขืœื“ ื•ื•ืึธืก ืื™ื– ื‘ืึทืฉื˜ื™ืžื˜ ืจืขื›ื˜ ืื™ื™ื“ืขืจ ื“ื™ ื›ื™ื™ืคืขืฅ ืื™ื– ืกื™ืจื™ืึทืœื™ื™ื–ื“). ืืžืช ืึทื‘ืกืึทืœืขืกืึทื ืก (ื™ืŸ ื‘ื™ืชื) SelfLink ื•ื•ืขื˜ ืคึผืึทืกื™ืจืŸ ื“ื•ืจืš Kubernetes ื•ื•ืขืจืกื™ืข 1.20, ืื•ืŸ ืœืขืฆื˜ - 1.21.

ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ

ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืจื‘ืขื˜ ืื™ืŸ ื“ืขืจ ื’ืขื’ื ื˜ ืคื•ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ, ื•ื•ื™ ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืจื™ืœื™ืกื™ื–, ืื™ื– ื‘ืืžืขืจืงื˜ ืื™ืŸ ื“ืขืจ ื’ืขื’ื ื˜ CSI ืฉื˜ื™ืฆืŸ. ื“ื™ ื”ื•ื™ืคื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ืึธ ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ:

  • ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ (ืื™ืŸ ืึทืœืฃ ื•ื•ืขืจืกื™ืข) ืืจื•ื™ืก CSI ืคึผืœื•ื’ื™ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Windows ืึทืจื‘ืขื˜ ื ืึธื•ื“ื–: ื“ืขืจ ืงืจืึทื ื˜ ื•ื•ืขื’ ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืกื˜ืึธืจื™ื“ื–ืฉ ื•ื•ืขื˜ ืื•ื™ืš ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืื™ืŸ-ื‘ื•ื™ื ืคึผืœื•ื’ื™ื ืก ืื™ืŸ ื“ื™ Kubernetes ื”ืึทืจืฅ ืื•ืŸ FlexVolume ืคึผืœื•ื’ื™ื ืก ืคื•ืŸ ืžื™ื™ืงืจืึธืกืึธืคึฟื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ Powershell;

    Kubernetes 1.16: ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื–
    ืกื›ืขืžืข ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ CSI ืคึผืœื•ื’ื™ื ืก ืื™ืŸ Kubernetes ืคึฟืึทืจ Windows

  • ื’ืขืœืขื’ื ื”ื™ื™ึทื˜ ืจืขืกื™ื–ื™ื ื’ CSI ื•ื•ืึทืœื™ื•ืžื–, ื‘ืึทืงืขื ืขื  ืฆื•ืจื™ืง ืื™ืŸ K8s 1.12, ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืฆื• ืึท ื‘ื™ืชื ื•ื•ืขืจืกื™ืข;
  • ื ืขื ืœืขืš "ื”ืขื›ืขืจื•ื ื’" (ืคื•ืŸ ืึทืœืฃ ืฆื• ื‘ื™ืชื) ืื™ื– ืึทื˜ืฉื™ื•ื•ื“ ื“ื•ืจืš ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ CSI ืฆื• ืฉืึทืคึฟืŸ ื”ื™ื’ืข ื™ืคืขืžืขืจืึทืœ ื•ื•ืึทืœื™ื•ืžื– (CSI ื™ื ืœื™ื ืข ื‘ืึทื ื“ ืฉื˜ื™ืฆืŸ).

ื‘ืึทืงืขื ืขื  ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹Kubernetes ื‘ืึทื ื“ ืงืœืึธื•ื ื™ื ื’ ืคึฟื•ื ืงืฆื™ืข (ื ื™ืฆืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคึผื•ื•ืง ื•ื•ื™ DataSource ืฆื• ืฉืึทืคึฟืŸ ื ื™ื™ึท ืคึผื•ื•ืง) ื”ืื˜ ืื•ื™ืš ืื™ืฆื˜ ื‘ืืงื•ืžืขืŸ ื‘ื™ืชื ืกื˜ืึทื˜ื•ืก.

ืกื˜ืฉืขื“ื•ืœืขืจ

ืฆื•ื•ื™ื™ ื ืึธื•ื˜ืึทื‘ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ืกืงืขื“ื–ืฉื•ืœื™ื ื’ (ื‘ื™ื™ื“ืข ืื™ืŸ ืึทืœืฃ):

  • EvenPodsSpreading - ื’ืขืœืขื’ื ื”ื™ื™ื˜ ื ื™ืฆืŸ ืคึผืึธื“ืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื ื™ืฅ ืคึฟืึทืจ "ื™ื•ืฉืจ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’" ืคื•ืŸ ืœืึธื•ื“ื– (ื•ื•ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื•ืŸ ืจืขืคึผืœื™ืงืึทืกืขื˜) ืื•ืŸ ืึทื“ื–ืฉืึทืกื˜ื™ื ื’ ื“ืขื ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ (ื•ื•ื™ ืึท ืฉื•ื•ืขืจ ืคืึธื“ืขืจื•ื ื’ ืึธื“ืขืจ ื•ื•ื™ ืึท ื•ื•ื™ื™ืš ืฆื•ืฉื˜ืึทื ื“, ื“"ื” ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜). ื“ืขืจ ืฉื˜ืจื™ืš ื•ื•ืขื˜ ื™ืงืกืคึผืึทื ื“ ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ืคึผืœืึทื ื ืขื“ ืคึผืึธื“ืก, ื“ืขืจื•ื•ื™ื™ึทืœ ืœื™ืžื™ื˜ืขื“ ื“ื•ืจืš ืึธืคึผืฆื™ืขืก PodAffinity ะธ PodAntiAffinity, ื’ืขื‘ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ืคื™ื™ื ืขืจ ืงืึธื ื˜ืจืึธืœ ืื™ืŸ ื“ืขื ืขื ื™ืŸ, ื•ื•ืึธืก ืžื™ื˜ืœ ื‘ืขืกืขืจ ื”ื•ื™ืš ืึทื•ื•ื™ื™ืœืึทื‘ื™ืœืึทื˜ื™ ืื•ืŸ ืึธืคึผื˜ื™ืžื™ื–ืขื“ ืžื™ื˜ืœ ืงืึทื ืกืึทืžืฉืึทืŸ. ื“ืขื˜ืึทื™ืœืก - ืื™ืŸ ืงืขืคึผ.
  • ื ื•ืฆืŸ ื‘ืขืกื˜ืคื™ื˜ ืคึผืึธืœื™ื˜ื™ืง ะฒ RequestedToCapacity Ratio ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ ืคึฟื•ื ืงืฆื™ืข ื‘ืขืฉืึทืก ืคึผืึธื“ ืคึผืœืึทื ื™ืจื•ื ื’, ื•ื•ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ื ื•ืฆืŸ ื‘ื™ืŸ ืคึผืึทืงื™ื ื’ ("ืคึผืึทืงื™ื ื’ ืื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–") ืคึฟืึทืจ ื‘ื™ื™ื“ืข ื™ืงืขืจื“ื™ืง ืจืขืกื•ืจืกืŸ (ืคึผืจืึทืกืขืกืขืจ, ื–ื›ึผืจื•ืŸ) ืื•ืŸ ืขืงืกื˜ืขื ื“ืขื“ (ื•ื•ื™ ื’ืคึผื•). ืคึฟืึทืจ ืžืขืจ ื“ืขื˜ืึทื™ืœืก, ื–ืขืŸ ืงืขืคึผ.

    Kubernetes 1.16: ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื–
    ืกืงืขื“ื–ืฉื•ืœื™ื ื’ ืคึผืึธื“ืก: ืื™ื™ื“ืขืจ ื ื™ืฆืŸ ื‘ืขืกื˜ืขืจ ืคึผืึทืกื™ืง ืคึผืึธืœื™ื˜ื™ืง (ื“ื™ืจืขืงื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืกืงืขื“ื–ืฉื•ืœืขืจ) ืื•ืŸ ืžื™ื˜ ื–ื™ื™ืŸ ื ื•ืฆืŸ (ื“ื•ืจืš ืกืงืขื“ื–ืฉื•ืœืขืจ ืขืงืกื˜ืขื ื“ืขืจ)

ืื™ืŸ ื“ืขืจืฆื•, ืจืขืคึผืจื™ื–ืขื ื˜ื™ื“ ื“ื•ืจืš ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉืึทืคึฟืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกืงืขื“ื–ืฉื•ืœืขืจ ืคึผืœื•ื’ื™ื ืก ืึทืจื•ื™ืก ื“ื™ ื”ื•ื™ืคึผื˜ Kubernetes ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื‘ื•ื™ื (ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื).

ืื ื“ืขืจืข ืขื ื“ืขืจื•ื ื’ืขืŸ

ืื•ื™ืš ืื™ืŸ ื“ื™ Kubernetes 1.16 ืžืขืœื“ื•ื ื’ ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืืžืขืจืงื˜ ืื™ื ื™ืฆื™ืื˜ื™ื•ื• ืคึฟืึทืจ ื‘ืจืขื ื’ืขืŸ ื‘ื ื™ืžืฆื ืžืขื˜ืจื™ืงืก ืื™ืŸ ืคื•ืœ ืกื“ืจ, ืึธื“ืขืจ ืžืขืจ ื’ืขื ื•ื™, ืื™ืŸ ืœื•ื™ื˜ ืžื™ื˜ ืืคื™ืฆื™ืขืœืข ืจืขื’ื•ืœืืฆื™ืขืก ืฆื• K8 ืก ื™ื ืกื˜ืจืึทืžืขื ื˜ื™ื™ืฉืึทืŸ. ื–ื™ื™ ืœืึทืจื’ืขืœื™ ืคืึทืจืœืึธื–ื  ืื•ื™ืฃ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคึผืจืึธืžืขื˜ื”ืขื•ืก ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. ื™ื ืงืึทื ืกื™ืกื˜ืขื ืกื™ื– ื–ืขื ืขืŸ ืื•ื™ืคื’ืขืฉื˜ืื ืขืŸ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืŸ ืกื™ื‘ื•ืช (ืœืžืฉืœ, ืขื˜ืœืขื›ืข ืžืขื˜ืจื™ืงืก ื–ืขื ืขืŸ ืคืฉื•ื˜ ื‘ืืฉืืคืŸ ืื™ื™ื“ืขืจ ื“ื™ ืงืจืึทื ื˜ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืืจื•ื™ืก), ืื•ืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื‘ืึทืฉืœืึธืกืŸ ืึทื– ืขืก ืื™ื– ืฆื™ื™ึทื˜ ืฆื• ื‘ืจืขื ื’ืขืŸ ืึทืœืฅ ืฆื• ืึท ืื™ื™ืŸ ื ืึธืจืžืึทืœ, "ืื™ืŸ ืฉื•ืจื” ืžื™ื˜ ื“ื™ ืจืขืฉื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธืžืขื˜ื”ืขื•ืก ื™ืงืึธื•ืกื™ืกื˜ืึทื." ื“ื™ ืื™ืฆื˜ื™ืงืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืขื ืื™ื ื™ืฆื™ืื˜ื™ื•ื• ืื™ื– ืื™ืŸ ืึทืœืฃ ืกื˜ืึทื˜ื•ืก, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืจืึทื’ืจืขืกื™ื•ื• ืคึผืจืึธืžืึธื˜ืขื“ ืื™ืŸ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Kubernetes ืฆื• ื‘ื™ืชื (1.17) ืื•ืŸ ืกื˜ืึทื‘ื™ืœ (1.18).

ืื™ืŸ ื“ืขืจืฆื•, ื“ื™ ืคืืœื’ืขื ื“ืข ืขื ื“ืขืจื•ื ื’ืขืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืืžืขืจืงื˜:

  • Windows ืฉื˜ื™ืฆืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ั ืื•ื™ืกื–ืขืŸ Kubeadm ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ื“ืขื ืึทืก (ืึทืœืฃ ื•ื•ืขืจืกื™ืข), ื’ืขืœืขื’ื ื”ื™ื™ื˜ RunAsUserName ืคึฟืึทืจ Windows ืงืึทื ื˜ื™ื™ื ืขืจื– (ืึทืœืฃ ื•ื•ืขืจืกื™ืข), ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’ ื’ืจื•ืคืข ืžืึทื ืึทื’ืขื“ ืกืขืจื•ื•ื™ืก ืึทืงืึทื•ื ื˜ (gMSA) ืฉื˜ื™ืฆืŸ ืึทืจื•ื™ืฃ ืฆื• ื‘ื™ืชื ื•ื•ืขืจืกื™ืข, ืฉื˜ื™ืฆืŸ ืึธื ืงืœืึทืคึผืŸ / ืฆื•ื˜ืฉืขืคึผืขืŸ ืคึฟืึทืจ vSphere ื•ื•ืึทืœื™ื•ืžื–.
  • ืจื™ืกื™ื™ืงืึทืœื“ ื“ืึทื˜ืŸ ืงืึทืžืคึผืจืขืฉืึทืŸ ืžืขืงืึทื ื™ื–ืึทื ืื™ืŸ ืึทืคึผื™ ืจืขืกืคึผืึธื ืกืขืก. ื‘ื™ื– ืึทื”ืขืจ, ืึท ื”ื˜ื˜ืคึผ ืคื™ืœื˜ืขืจ ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื“ื™ ืฆื•ื•ืขืงืŸ, ื•ื•ืึธืก ื™ืžืคึผืึธื•ื–ื“ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืจื™ืกื˜ืจื™ืงืฉืึทื ื– ื•ื•ืึธืก ืคึผืจื™ื•ื•ืขื ื˜ื™ื“ ืขืก ืฆื• ื–ื™ื™ืŸ ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜. "ื˜ืจืึทื ืกืคึผืึทืจืขื ื˜ ื‘ืขื˜ืŸ ืงืึทืžืคึผืจืขืฉืึทืŸ" ืื™ืฆื˜ ืึทืจื‘ืขื˜: ืงืœื™ื™ืึทื ืฅ ืฉื™ืงืŸ Accept-Encoding: gzip ืื™ืŸ ื“ื™ ื›ืขื“ืขืจ, ื–ื™ื™ ื‘ืึทืงื•ืžืขืŸ ืึท GZIP-ืงืึธืžืคึผืจืขืกื˜ ืขื ื˜ืคืขืจ ืื•ื™ื‘ ื“ื™ ื’ืจื™ื™ืก ื™ืงืกื™ื“ื– 128 ืงื‘. Go ืงืœื™ื™ืึทื ืฅ ืฉื˜ื™ืฆืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืงืึทืžืคึผืจืขืฉืึทืŸ (ืฉื™ืงื˜ ื“ื™ ืคืืจืœืื ื’ื˜ ื›ืขื“ืขืจ), ืึทื–ื•ื™ ื–ื™ื™ ื•ื•ืขืœืŸ ืžื™ื“ ื‘ืึทืžืขืจืงืŸ ืึท ืจืขื“ื•ืงืฆื™ืข ืื™ืŸ ืคืึทืจืงืขืจ. (ืงืœื™ื™ืŸ ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธื ืก ืงืขืŸ ื–ื™ื™ืŸ ื“ืืจืฃ ืคึฟืึทืจ ืื ื“ืขืจืข ืฉืคึผืจืึทื›ืŸ.)
  • ื’ืขื•ื•ืืจืŸ ืžืขื’ืœืขืš ืกืงื™ื™ืœื™ื ื’ HPA ืคื•ืŸ / ืฆื• ื ื•ืœ ืคึผืึธื“ืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืžืขื˜ืจื™ืงืก. ืื•ื™ื‘ ืื™ืจ ื•ื•ืึธื’ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทื‘ื“ื–ืฉืขืงืฅ / ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืžืขื˜ืจื™ืงืก, ื•ื•ืขืŸ ื•ื•ืขืจืงืœืึธื•ื“ื– ื–ืขื ืขืŸ ืœื™ื™ื“ื™ืง, ืื™ืจ ืงืขื ืขืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื•ื•ืึธื’ ืฆื• 0 ืจืขืคึผืœืึทืงืึทื– ืฆื• ืฉืคึผืึธืจืŸ ืจืขืกื•ืจืกืŸ. ื“ืขืจ ืฉื˜ืจื™ืš ื–ืึธืœ ื–ื™ื™ืŸ ืกืคึผืขืฆื™ืขืœ ื ื•ืฆื™ืง ืคึฟืึทืจ ืงืึทืกืขืก ื•ื•ื• ื˜ื•ืขืจืก ื‘ืขื˜ืŸ ื’ืคึผื• ืจืขืกื•ืจืกืŸ, ืื•ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืœื™ื™ื“ื™ืง ื˜ื•ืขืจืก ื™ืงืกื™ื“ื– ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคืึทืจืึทื ืขืŸ ื’ืคึผื•.
  • ื ื™ื• ืงืœื™ืขื ื˜ - k8s.io/client-go/metadata.Client - ืคึฟืึทืจ "ื’ืขื ืขืจืึทืœื™ื™ื–ื“" ืึทืงืกืขืก ืฆื• ืึทื‘ื“ื–ืฉืขืงืฅ. ืขืก ืื™ื– ื“ื™ื–ื™ื™ื ื“ ืฆื• ืœื™ื™ื›ื˜ ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืžืขื˜ืึทื“ืึทื˜ืึท (ื“"ื” ืกืึทื‘ืกืขืงืฉืึทืŸ metadata) ืคึฟื•ืŸ ืงื ื•ื™ืœ ืจืขืกื•ืจืกืŸ ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ืžื™ืกื˜ ื–ืึทืžืœื•ื ื’ ืื•ืŸ ืงื•ื•ืึธื˜ืข ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ื–ื™ื™.
  • ื‘ื•ื™ืขืŸ Kubernetes ืื™ืฆื˜ ืื™ืจ ืงืขื ืขืŸ ืึธืŸ ืœืขื’ืึทื˜ ("ื’ืขื‘ื•ื™ื˜-ืื™ืŸ" ืื™ืŸ-ื‘ื•ื™ื) ื•ื•ืึธืœืงืŸ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– (ืึทืœืฃ ื•ื•ืขืจืกื™ืข).
  • ืฆื• ื“ื™ ืงื•ื‘ืขืึทื“ื ื ื•ืฆืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ (ืึทืœืฃ ื•ื•ืขืจืกื™ืข) ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฆื•ืœื™ื™ื’ืŸ ืงืึทืกื˜ืึทืžื™ื™ื– ืคึผืึทื˜ืฉืึทื– ื‘ืขืฉืึทืก ืึทืคึผืขืจื™ื™ืฉืึทื ื– init, join ะธ upgrade. ืœืขืจืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ ื“ื™ ืคืึธืŸ --experimental-kustomize, ื–ืขืŸ ืื™ืŸ ืงืขืคึผ.
  • ื ื™ื™ึท ืขื ื“ืคึผื•ื™ื ื˜ ืคึฟืึทืจ ืึทืคึผื™ืกืขืจื•ื•ืขืจ - readyz, - ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึทืจื•ื™ืกืคื™ืจืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื–ื™ื™ึทืŸ ื’ืจื™ื™ื˜ืงื™ื™ึทื˜. ื“ืขืจ ืึทืคึผื™ ืกืขืจื•ื•ืขืจ ืื•ื™ืš ืื™ืฆื˜ ื”ืื˜ ืึท ืคืึธืŸ --maximum-startup-sequence-duration, ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ืจืขื’ื•ืœื™ืจืŸ ื–ื™ื™ึทืŸ ืจื™ืกื˜ืึทืจื˜.
  • ืฆื•ื•ื™ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคึฟืึทืจ Azure ื“ืขืจืงืœืขืจื˜ ืกื˜ืึทื‘ื™ืœ: ืฉื˜ื™ืฆืŸ ืึทื•ื•ื™ื™ืœืึทื‘ื™ืœื™ื˜ื™ ื–ืึธื ืขืก (ืึทื•ื•ืึทื™ืœืึทื‘ื™ืœื™ื˜ื™ ื–ืึธื ืขืก) ืื•ืŸ ืงืจื™ื™ึทื– ืžื™ื˜ืœ ื’ืจื•ืคึผืข (ืจื’). ืื™ืŸ ื“ืขืจืฆื•, Azure ื”ืื˜ ืฆื•ื’ืขื’ืขื‘ืŸ:
  • AWS ืื™ืฆื˜ ื”ืื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ EBS ืื•ื™ืฃ Windows ืื•ืŸ ืึธืคึผื˜ื™ืžื™ื–ืขื“ EC2 API ืจื•ืคื˜ DescribeInstances.
  • ืงื•ื‘ืขืื“ื ืื™ื– ืื™ืฆื˜ ืื•ืžืืคื”ืขื ื’ื™ืง ืžื™ื’ืจื™ื™ืฅ CoreDNS ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื•ื•ืขืŸ ืึทืคึผื’ืจื™ื™ื“ื™ื ื’ ื“ื™ CoreDNS ื•ื•ืขืจืกื™ืข.
  • ื‘ื™ื ืึทืจื™ืขืก ืขื˜ืงื“ ืื™ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ื”ืึธื‘ืŸ ื’ืขื˜ืืŸ ื•ื•ืขืœื˜-ืขืงืกืขืงื•ื˜ืึทื‘ืœืข, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืœื•ื™ืคืŸ ื“ืขื ื‘ื™ืœื“ ืึธืŸ ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ ื•ื•ืึธืจืฆืœ ืจืขื›ื˜. ืื•ื™ืš, ืขื˜ืง ืžื™ื’ืจืึทื˜ื™ืึธืŸ ื‘ื™ืœื“ ืคืืจืฉื˜ืืคื˜ ืขื˜ืง 2 ื•ื•ืขืจืกื™ืข ืฉื˜ื™ืฆืŸ.
  • ะ’ ืงืœืึทืกื˜ืขืจ ืึทื•ื˜ืึธืกืงืึทืœืขืจ 1.16.0 ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ืกื˜ืจืึธืœืขืกืก ื•ื•ื™ ื“ื™ ื‘ืึทื–ืข ื‘ื™ืœื“, ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’, ืฆื•ื’ืขื’ืขื‘ืŸ ื ื™ื™ึทืข ื•ื•ืึธืœืงืŸ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– (DigitalOcean, Magnum, Packet).
  • ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ / ืึธืคืขื ื’ื™ืง ื•ื•ื™ื™ื›ื•ื•ืืจื’: ื’ื™ื™ืŸ 1.12.9, ืขื˜ืง 3.3.15, CoreDNS 1.6.2.

ืคึผืก

ืœื™ื™ืขื ืขืŸ ืื•ื™ืš ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’:

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’