Kubernetes 1.16: āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļŦāļĨāļąāļ

Kubernetes 1.16: āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļŦāļĨāļąāļ

āļ§āļąāļ™āļ™āļĩāđ‰ āļ§āļąāļ™āļžāļļāļ˜ āļˆāļ°āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™ Kubernetes āļĢāļļāđˆāļ™āļ–āļąāļ”āđ„āļ› - 1.16. āļ•āļēāļĄāļ›āļĢāļ°āđ€āļžāļ“āļĩāļ—āļĩāđˆāļžāļąāļ’āļ™āļēāļ‚āļķāđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļšāļĨāđ‡āļ­āļāļ‚āļ­āļ‡āđ€āļĢāļē āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļ§āļąāļ™āļ„āļĢāļšāļĢāļ­āļšāļ›āļĩāļ—āļĩāđˆ XNUMX āļ—āļĩāđˆāđ€āļĢāļēāļāļģāļĨāļąāļ‡āļžāļđāļ”āļ–āļķāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđƒāļŦāļĄāđˆ

āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāđ€āļ•āļĢāļĩāļĒāļĄāđ€āļ­āļāļŠāļēāļĢāļ™āļĩāđ‰āļ™āļģāļĄāļēāļˆāļēāļ āļ•āļēāļĢāļēāļ‡āļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ Kubernetes, āļšāļąāļ™āļ—āļķāļāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡-1.16 āđāļĨāļ°āļ›āļąāļāļŦāļēāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āļ„āļģāļ‚āļ­āļ”āļķāļ‡ āđāļĨāļ°āļ‚āđ‰āļ­āđ€āļŠāļ™āļ­āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ Kubernetes (KEP) āļ‡āļąāđ‰āļ™āđ„āļ›āļāļąāļ™!..

āđ‚āļŦāļ™āļ”

āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļ—āļĩāđˆāđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļˆāļģāļ™āļ§āļ™āļĄāļēāļ (āđƒāļ™āļŠāļ–āļēāļ™āļ°āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē) āļˆāļ°āļ–āļđāļāļ™āļģāđ€āļŠāļ™āļ­āļ—āļĩāđˆāļ”āđ‰āļēāļ™āļ‚āđ‰āļēāļ‡āļ‚āļ­āļ‡āđ‚āļŦāļ™āļ”āļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒ K8s (Kubelet)

āļ›āļĢāļ°āļāļēāļĢāđāļĢāļāļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē ÂŦāļ āļēāļŠāļ™āļ°āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§Âŧ (āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŠāļąāđˆāļ§āļ„āļĢāļēāļ§)āļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļĨāļ”āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ‚āļ­āļ‡āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāđāļāđ‰āđ„āļ‚āļˆāļļāļ”āļšāļāļžāļĢāđˆāļ­āļ‡āđƒāļ™āļžāđ‡āļ­āļ”. āļāļĨāđ„āļāđƒāļŦāļĄāđˆāļ™āļĩāđ‰āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āđ€āļ›āļīāļ”āļ•āļąāļ§āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļžāļīāđ€āļĻāļĐāļ—āļĩāđˆāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļ™āđ€āļ™āļĄāļŠāđ€āļ›āļ‹āļ‚āļ­āļ‡āļžāđ‡āļ­āļ”āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āđƒāļ™āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļēāļŠāļąāđ‰āļ™āđ† āļˆāļļāļ”āļ›āļĢāļ°āļŠāļ‡āļ„āđŒāļ„āļ·āļ­āļāļēāļĢāđ‚āļ•āđ‰āļ•āļ­āļšāļāļąāļšāļžāđ‡āļ­āļ”āđāļĨāļ°āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļ­āļ·āđˆāļ™āđ€āļžāļ·āđˆāļ­āđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāđāļĨāļ°āđāļāđ‰āđ„āļ‚āļ‚āđ‰āļ­āļšāļāļžāļĢāđˆāļ­āļ‡ āļĄāļĩāļāļēāļĢāļ™āļģāļ„āļģāļŠāļąāđˆāļ‡āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļšāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ™āļĩāđ‰āđ„āļ›āđƒāļŠāđ‰ kubectl debugāļ„āļĨāđ‰āļēāļĒāļāļąāļ™āđƒāļ™āļŠāļēāļĢāļ°āļŠāļģāļ„āļąāļāļāļąāļš kubectl exec: āđāļ—āļ™āļ—āļĩāđˆāļˆāļ°āļĢāļąāļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāđƒāļ™āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ (āđ€āļŠāđˆāļ™āđƒāļ™ exec) āļˆāļ°āđ€āļ›āļīāļ”āļ•āļąāļ§āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāđƒāļ™āļžāđ‡āļ­āļ” āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ€āļŠāđˆāļ™ āļ„āļģāļŠāļąāđˆāļ‡āļ™āļĩāđ‰āļˆāļ°āđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāđƒāļŦāļĄāđˆāđ€āļ‚āđ‰āļēāļāļąāļšāļžāđ‡āļ­āļ”:

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

āļ”āļđāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŠāļąāđˆāļ§āļ„āļĢāļēāļ§ (āđāļĨāļ°āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™) āđ„āļ”āđ‰āđƒāļ™ KEP āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡. āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™ (āđƒāļ™ K8s 1.16) āđ€āļ›āđ‡āļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē āđāļĨāļ°āļŦāļ™āļķāđˆāļ‡āđƒāļ™āđ€āļāļ“āļ‘āđŒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ‚āļ­āļ™āļĒāđ‰āļēāļĒāđ„āļ›āļĒāļąāļ‡āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļšāļ•āđ‰āļēāļ„āļ·āļ­ â€œāļāļēāļĢāļ—āļ”āļŠāļ­āļš Ephemeral Containers API āļŠāļģāļŦāļĢāļąāļš [Kubernetes] āļ­āļĒāđˆāļēāļ‡āļ™āđ‰āļ­āļĒ 2 āļĢāļļāđˆāļ™â€

NB: āđ‚āļ”āļĒāļŠāļēāļĢāļ°āļŠāļģāļ„āļąāļāđāļĨāļ°āđāļĄāđ‰āđāļ•āđˆāļŠāļ·āđˆāļ­ āļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āļ™āļĩāđ‰āļ„āļĨāđ‰āļēāļĒāļāļąāļšāļ›āļĨāļąāđŠāļāļ­āļīāļ™āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāđāļĨāđ‰āļ§ kubectl-debugāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ—āļĩāđˆāđ€āļĢāļē āđ€āļ‚āļĩāļĒāļ™āđāļĨāđ‰āļ§. āđ€āļ›āđ‡āļ™āļ—āļĩāđˆāļ„āļēāļ”āļ§āđˆāļēāđ€āļĄāļ·āđˆāļ­āļĄāļĩāļāļēāļĢāļ–āļ·āļ­āļāļģāđ€āļ™āļīāļ”āļ‚āļ­āļ‡āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŠāļąāđˆāļ§āļ„āļĢāļēāļ§ āļāļēāļĢāļžāļąāļ’āļ™āļēāļ›āļĨāļąāđŠāļāļ­āļīāļ™āļ āļēāļĒāļ™āļ­āļāļ—āļĩāđˆāđāļĒāļāļˆāļēāļāļāļąāļ™āļˆāļ°āļŦāļĒāļļāļ”āļĨāļ‡

āļ­āļĩāļāļŦāļ™āļķāđˆāļ‡āļ™āļ§āļąāļ•āļāļĢāļĢāļĄ - PodOverhead - āļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰ āļāļĨāđ„āļāđƒāļ™āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ•āđ‰āļ™āļ—āļļāļ™āļ„āđˆāļēāđ‚āļŠāļŦāļļāđ‰āļĒāļŠāļģāļŦāļĢāļąāļšāļžāđ‡āļ­āļ”āļ‹āļķāđˆāļ‡āļ­āļēāļˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āļ­āļĒāđˆāļēāļ‡āļĄāļēāļāļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļĢāļąāļ™āđ„āļ—āļĄāđŒāļ—āļĩāđˆāđƒāļŠāđ‰ āļĒāļāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļœāļđāđ‰āđ€āļ‚āļĩāļĒāļ™ KEP āļ™āļĩāđ‰ āļŠāđˆāļ‡āļœāļĨāđƒāļŦāđ‰āđ€āļāļīāļ” Kata Containers āļ‹āļķāđˆāļ‡āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āđ€āļ„āļ­āļĢāđŒāđ€āļ™āļĨāļ‚āļ­āļ‡āđāļ‚āļ, kata agent, āļĢāļ°āļšāļš init āļŊāļĨāļŊ āđ€āļĄāļ·āđˆāļ­āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļĄāļēāļ āļāđ‡āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļĨāļ°āđ€āļĨāļĒāđ„āļ”āđ‰ āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļĄāļĩāļ§āļīāļ˜āļĩāđƒāļ™āļāļēāļĢāļžāļīāļˆāļēāļĢāļ“āļēāđ‚āļ„āļ§āļ•āđ‰āļē āļāļēāļĢāļ§āļēāļ‡āđāļœāļ™ āļŊāļĨāļŊ āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āđ€āļžāļ·āđˆāļ­āļ™āļģāđ„āļ›āļ›āļāļīāļšāļąāļ•āļīāđƒāļ™ PodSpec āđ€āļžāļīāđˆāļĄāļŸāļīāļĨāļ”āđŒāđāļĨāđ‰āļ§ Overhead *ResourceList (āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ RuntimeClassāļ–āđ‰āļēāļĄāļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™)

āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļ—āļĩāđˆāđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļ­āļĩāļāļ­āļĒāđˆāļēāļ‡āļŦāļ™āļķāđˆāļ‡āļāđ‡āļ„āļ·āļ­ āļ•āļąāļ§āļˆāļąāļ”āļāļēāļĢāđ‚āļ—āđ‚āļžāđ‚āļĨāļĒāļĩāđ‚āļŦāļ™āļ” (āļœāļđāđ‰āļˆāļąāļ”āļāļēāļĢāđ‚āļ—āđ‚āļžāđ‚āļĨāļĒāļĩāđ‚āļŦāļ™āļ”)āļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļĢāļ§āļĄāđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢāļ—āļĢāļąāļžāļĒāļēāļāļĢāļŪāļēāļĢāđŒāļ”āđāļ§āļĢāđŒāļŠāļģāļŦāļĢāļąāļšāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ•āđˆāļēāļ‡āđ† āđƒāļ™ â€‹â€‹Kubernetes āļ­āļĒāđˆāļēāļ‡āļĨāļ°āđ€āļ­āļĩāļĒāļ” āļ„āļ§āļēāļĄāļ„āļīāļ”āļĢāļīāđ€āļĢāļīāđˆāļĄāļ™āļĩāđ‰āđ„āļ”āđ‰āļĢāļąāļšāđāļĢāļ‡āļœāļĨāļąāļāļ”āļąāļ™āļˆāļēāļāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļĩāđˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆāļ•āđˆāļēāļ‡āđ† (āļˆāļēāļāļŠāļēāļ‚āļēāđ‚āļ—āļĢāļ„āļĄāļ™āļēāļ„āļĄ āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļˆāļąāļāļĢ āļšāļĢāļīāļāļēāļĢāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™ āļŊāļĨāļŊ) āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļšāļšāļ‚āļ™āļēāļ™āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡ āđāļĨāļ°āļĨāļ”āļ„āļ§āļēāļĄāļĨāđˆāļēāļŠāđ‰āļēāđƒāļ™āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ‹āļķāđˆāļ‡āđƒāļŠāđ‰ CPU āļ‚āļąāđ‰āļ™āļŠāļđāļ‡āđāļĨāļ° āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāđ€āļĢāđˆāļ‡āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļ”āđ‰āļ§āļĒāļŪāļēāļĢāđŒāļ”āđāļ§āļĢāđŒ āļˆāļ™āļ–āļķāļ‡āļ‚āļ“āļ°āļ™āļĩāđ‰āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ”āļąāļ‡āļāļĨāđˆāļēāļ§āđƒāļ™ Kubernetes āļ—āļģāđ„āļ”āđ‰āļŠāļģāđ€āļĢāđ‡āļˆāļ”āđ‰āļ§āļĒāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™ (āļ•āļąāļ§āļˆāļąāļ”āļāļēāļĢ CPU, āļ•āļąāļ§āļˆāļąāļ”āļāļēāļĢāļ­āļļāļ›āļāļĢāļ“āđŒ, CNI) āđāļĨāļ°āļ•āļ­āļ™āļ™āļĩāđ‰āļˆāļ°āļĄāļĩāļāļēāļĢāđ€āļžāļīāđˆāļĄāļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹āļ āļēāļĒāđƒāļ™āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļĢāļ§āļĄāđāļ™āļ§āļ—āļēāļ‡āđ€āļ‚āđ‰āļēāļ”āđ‰āļ§āļĒāļāļąāļ™āđāļĨāļ°āļĨāļ”āļ„āļ§āļēāļĄāļĒāļļāđˆāļ‡āļĒāļēāļāđƒāļ™āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ‚āļ­āļ‡āđ‚āļ—āđ‚āļžāđ‚āļĨāļĒāļĩāđƒāļŦāļĄāđˆāļ—āļĩāđˆāļ„āļĨāđ‰āļēāļĒāļāļąāļ™ - āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļēāđ‚āļ—āđ‚āļžāđ‚āļĨāļĒāļĩ - āļ—āļĢāļēāļš - āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļēāļ‡āļāļąāđˆāļ‡ Kubelet āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”-āđ€āļ‚āđ‰āļē KEP āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡.

Kubernetes 1.16: āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļŦāļĨāļąāļ
āđ„āļ”āļ­āļ°āđāļāļĢāļĄāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ•āļąāļ§āļˆāļąāļ”āļāļēāļĢāđ‚āļ—āđ‚āļžāđ‚āļĨāļĒāļĩ

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ–āļąāļ”āđ„āļ› - āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļāļģāļĨāļąāļ‡āļ—āļģāļ‡āļēāļ™āļ­āļĒāļđāđˆ (āđ‚āļžāļĢāļšāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™). āļ”āļąāļ‡āļ—āļĩāđˆāļ„āļļāļ“āļ—āļĢāļēāļš āļŠāļģāļŦāļĢāļąāļšāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļ—āļĩāđˆāđƒāļŠāđ‰āđ€āļ§āļĨāļēāļ™āļēāļ™āđƒāļ™āļāļēāļĢāđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™ āđ€āļ›āđ‡āļ™āļāļēāļĢāļĒāļēāļāļ—āļĩāđˆāļˆāļ°āđ„āļ”āđ‰āļĢāļąāļšāļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆāļ—āļąāļ™āļŠāļĄāļąāļĒ: āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™āļˆāļ°āļ–āļđāļ "āļ›āļīāļ”āļ•āļēāļĒ" āļāđˆāļ­āļ™āļ—āļĩāđˆāļˆāļ°āđ€āļĢāļīāđˆāļĄāļ—āļģāļ‡āļēāļ™āļˆāļĢāļīāļ‡ āļŦāļĢāļ·āļ­āļˆāļšāļĨāļ‡āļ”āđ‰āļ§āļĒāļāļēāļĢāļŦāļĒāļļāļ”āļŠāļ°āļ‡āļąāļāđ€āļ›āđ‡āļ™āđ€āļ§āļĨāļēāļ™āļēāļ™ āđ€āļŠāđ‡āļ„āđƒāļŦāļĄāđˆ (āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™āļœāđˆāļēāļ™āļŸāļĩāđ€āļˆāļ­āļĢāđŒāđ€āļāļ•āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē StartupProbeEnabled) āļĒāļāđ€āļĨāļīāļ - āļŦāļĢāļ·āļ­āļ„āđˆāļ­āļ™āļ‚āđ‰āļēāļ‡āļˆāļ°āđ€āļĨāļ·āđˆāļ­āļ™ - āļœāļĨāļāļĢāļ°āļ—āļšāļ‚āļ­āļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļ·āđˆāļ™ āđ† āļˆāļ™āļāļĢāļ°āļ—āļąāđˆāļ‡āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļēāļ—āļĩāđˆāļžāđ‡āļ­āļ”āļ—āļģāļ‡āļēāļ™āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™ āļ”āđ‰āļ§āļĒāđ€āļŦāļ•āļļāļ™āļĩāđ‰ āđ€āļ”āļīāļĄāļ—āļĩāļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āļ™āļĩāđ‰āļˆāļķāļ‡āļ–āļđāļāđ€āļĢāļĩāļĒāļ pod-startup liveness-probe āļĢāļ°āļ‡āļąāļš. āļŠāļģāļŦāļĢāļąāļšāļžāđ‡āļ­āļ”āļ—āļĩāđˆāđƒāļŠāđ‰āđ€āļ§āļĨāļēāļ™āļēāļ™āđƒāļ™āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļŠāļģāļĢāļ§āļˆāļŠāļ–āļēāļ™āļ°āđƒāļ™āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļēāļ—āļĩāđˆāļ„āđˆāļ­āļ™āļ‚āđ‰āļēāļ‡āļŠāļąāđ‰āļ™āđ„āļ”āđ‰

āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ RuntimeClass āļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļąāļ™āļ—āļĩāđƒāļ™āļŠāļ–āļēāļ™āļ°āđ€āļšāļ•āđ‰āļē āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄāļāļēāļĢāļĢāļ­āļ‡āļĢāļąāļš "āļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļ•āđˆāļēāļ‡āļāļąāļ™" āļ„ āļāļēāļĢāļˆāļąāļ”āļ•āļēāļĢāļēāļ‡āđ€āļĢāļĩāļĒāļ™āļĢāļąāļ™āđ„āļ—āļĄāđŒ āļ•āļ­āļ™āļ™āļĩāđ‰āđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™āđ€āļĨāļĒāļ—āļĩāđˆāđāļ•āđˆāļĨāļ°āđ‚āļŦāļ™āļ”āļˆāļ°āļ•āđ‰āļ­āļ‡āļĢāļ­āļ‡āļĢāļąāļš RuntimeClass āđāļ•āđˆāļĨāļ°āļĢāļēāļĒāļāļēāļĢ: āļŠāļģāļŦāļĢāļąāļšāļžāđ‡āļ­āļ” āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļ RuntimeClass āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ„āļģāļ™āļķāļ‡āļ–āļķāļ‡āđ‚āļ—āđ‚āļžāđ‚āļĨāļĒāļĩāļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒ āļāđˆāļ­āļ™āļŦāļ™āđ‰āļēāļ™āļĩāđ‰ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļšāļĢāļĢāļĨāļļāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļ™āļĩāđ‰ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļžāđ‡āļ­āļ”āļˆāļšāļĨāļ‡āļšāļ™āđ‚āļŦāļ™āļ”āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšāļ—āļļāļāļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļˆāļķāļ‡āļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļāļģāļŦāļ™āļ”āļāļŽāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđƒāļŦāđ‰āļāļąāļš NodeSelector āđāļĨāļ°āļ„āđˆāļēāļ„āļ§āļēāļĄāļ„āļĨāļēāļ”āđ€āļ„āļĨāļ·āđˆāļ­āļ™ āđƒāļ™ KEP āļĄāļąāļ™āļžāļđāļ”āļ–āļķāļ‡āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđāļĨāļ°āđāļ™āđˆāļ™āļ­āļ™āļ§āđˆāļēāļĢāļ§āļĄāļ–āļķāļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™

āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāļ—āļĩāđˆāļŠāļģāļ„āļąāļāļŠāļ­āļ‡āļ›āļĢāļ°āļāļēāļĢāļ—āļĩāđˆāļ›āļĢāļēāļāļāđ€āļ›āđ‡āļ™āļ„āļĢāļąāđ‰āļ‡āđāļĢāļ (āđƒāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē) āđƒāļ™ Kubernetes 1.16 āđ„āļ”āđ‰āđāļāđˆ:

  • āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ āļŠāđāļ•āđ‡āļāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāļ„āļđāđˆ - IPv4/IPv6 - āđāļĨāļ° "āļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆ" āļ—āļĩāđˆāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļ™āđƒāļ™āļĢāļ°āļ”āļąāļšāļžāđ‡āļ­āļ” āđ‚āļŦāļ™āļ” āļšāļĢāļīāļāļēāļĢ āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡ IPv4-to-IPv4 āđāļĨāļ° IPv6-to-IPv6 āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļžāđ‡āļ­āļ” āļ•āļąāđ‰āļ‡āđāļ•āđˆāļžāđ‡āļ­āļ”āđ„āļ›āļˆāļ™āļ–āļķāļ‡āļšāļĢāļīāļāļēāļĢāļ āļēāļĒāļ™āļ­āļ āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ­āđ‰āļēāļ‡āļ­āļīāļ‡ (āļ āļēāļĒāđƒāļ™āļ›āļĨāļąāđŠāļāļ­āļīāļ™ Bridge CNI, PTP CNI āđāļĨāļ° Host-Local IPAM) āļ•āļĨāļ­āļ”āļˆāļ™ Reverse Compatible āļāļąāļšāļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒ Kubernetes āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™āļ­āļĒāļđāđˆ IPv4 āļŦāļĢāļ·āļ­ IPv6 āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ­āļĒāļđāđˆāđƒāļ™ KEP.

    āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāđāļŠāļ”āļ‡āļ—āļĩāđˆāļ­āļĒāļđāđˆ 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#

  • API āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļšāļ›āļĨāļēāļĒāļ—āļēāļ‡ - EndpointSlice API. āļŠāđˆāļ§āļĒāđāļāđ‰āļ›āļąāļāļŦāļēāļ”āđ‰āļēāļ™āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž/āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Endpoint API āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‹āļķāđˆāļ‡āļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ•āđˆāļēāļ‡āđ† āđƒāļ™āđāļœāļ‡āļ„āļ§āļšāļ„āļļāļĄ (apiserver, āļŊāļĨāļŊ , āļ•āļąāļ§āļ„āļ§āļšāļ„āļļāļĄāļ•āļģāđāļŦāļ™āđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ, kube-proxy) API āđƒāļŦāļĄāđˆāļˆāļ°āļ–āļđāļāđ€āļžāļīāđˆāļĄāđƒāļ™āļāļĨāļļāđˆāļĄ Discovery API āđāļĨāļ°āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāđāļšāđ‡āļ„āđ€āļ­āļ™āļ”āđŒāđ€āļ­āļ™āļ”āđŒāļžāļ­āļĒāļ•āđŒāļ™āļąāļšāļŦāļĄāļ·āđˆāļ™āđƒāļ™āđāļ•āđˆāļĨāļ°āļšāļĢāļīāļāļēāļĢāđƒāļ™āļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāđ‚āļŦāļ™āļ”āļ™āļąāļšāļžāļąāļ™āļĢāļēāļĒāļāļēāļĢ āđ€āļĄāļ·āđˆāļ­āļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļģāđ€āļŠāđˆāļ™āļ™āļĩāđ‰ āđāļ•āđˆāļĨāļ°āļšāļĢāļīāļāļēāļĢāļˆāļ°āļ–āļđāļāđāļĄāļ›āļāļąāļšāļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒ N āļĢāļēāļĒāļāļēāļĢ EndpointSliceāļ‹āļķāđˆāļ‡āđāļ•āđˆāļĨāļ°āļˆāļļāļ”āđ‚āļ”āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļˆāļ°āļĄāļĩāļˆāļļāļ”āļ›āļĨāļēāļĒāđ„āļĄāđˆāđ€āļāļīāļ™ 100 āļˆāļļāļ” (āļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ„āļ”āđ‰) EndpointSlice API āļĒāļąāļ‡āđƒāļŦāđ‰āđ‚āļ­āļāļēāļŠāđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļēāđƒāļ™āļ­āļ™āļēāļ„āļ•: āļĢāļ­āļ‡āļĢāļąāļšāļ—āļĩāđˆāļ­āļĒāļđāđˆ IP āļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢāļŠāļģāļŦāļĢāļąāļšāđāļ•āđˆāļĨāļ°āļžāđ‡āļ­āļ” āļŠāļ–āļēāļ™āļ°āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļšāļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ” (āđ„āļĄāđˆāđ€āļžāļĩāļĒāļ‡āđāļ•āđˆ Ready Ðļ NotReady) āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļĒāđˆāļ­āļĒāđāļšāļšāđ„āļ”āļ™āļēāļĄāļīāļāļŠāļģāļŦāļĢāļąāļšāļ›āļĨāļēāļĒāļ—āļēāļ‡

āļ—āļĩāđˆāļ™āļģāđ€āļŠāļ™āļ­āđƒāļ™āļĢāļļāđˆāļ™āļĨāđˆāļēāļŠāļļāļ”āļ–āļķāļ‡āļĢāļļāđˆāļ™āđ€āļšāļ•āđ‰āļēāđāļĨāđ‰āļ§ āļ„āļ™āļŠāļļāļ”āļ—āđ‰āļēāļĒāļŠāļ·āđˆāļ­ service.kubernetes.io/load-balancer-cleanup āđāļĨāļ°āđāļ™āļšāļĄāļēāļāļąāļšāđāļ•āđˆāļĨāļ°āļšāļĢāļīāļāļēāļĢāļ”āđ‰āļ§āļĒāļ›āļĢāļ°āđ€āļ āļ— LoadBalancer. āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļĨāļšāļšāļĢāļīāļāļēāļĢāļ”āļąāļ‡āļāļĨāđˆāļēāļ§ āļˆāļ°āļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļĨāļšāļ—āļĢāļąāļžāļĒāļēāļāļĢāļˆāļĢāļīāļ‡āļˆāļ™āļāļ§āđˆāļē "āļāļēāļĢāļĨāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ" āļ‚āļ­āļ‡āļ—āļĢāļąāļžāļĒāļēāļāļĢāļ•āļąāļ§āļ›āļĢāļąāļšāļŠāļĄāļ”āļļāļĨāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļˆāļ°āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™

āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļˆāļąāļāļĢāđ€āļ­āļžāļĩāđ„āļ­

“āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļŠāļģāļ„āļąāļāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢ” āļ—āļĩāđˆāđāļ—āđ‰āļˆāļĢāļīāļ‡āļ™āļąāđ‰āļ™āļ­āļĒāļđāđˆāđƒāļ™āļ‚āļ­āļšāđ€āļ‚āļ•āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ Kubernetes API āđāļĨāļ°āļāļēāļĢāđ‚āļ•āđ‰āļ•āļ­āļšāļāļąāļšāļĄāļąāļ™ āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļ­āļĒāđˆāļēāļ‡āļĄāļēāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļšāļ„āļļāļ“ āđ‚āļ­āļ™āđ„āļ›āļŠāļđāđˆāļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆāļĄāļąāđˆāļ™āļ„āļ‡āļœāļđāđ‰āļ—āļĩāđˆāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāđāļ™āļ°āļ™āļģāđ€āļ›āđ‡āļ™āļžāļīāđ€āļĻāļĐ CustomResourceDefinitions (āļ‹āļĩāļ­āļēāļĢāđŒāļ”āļĩ)āļ‹āļķāđˆāļ‡āļĄāļĩāļŠāļ–āļēāļ™āļ°āđ€āļšāļ•āđ‰āļēāļĄāļēāļ•āļąāđ‰āļ‡āđāļ•āđˆāļŠāļĄāļąāļĒ Kubernetes 1.7 āļ­āļąāļ™āļŦāđˆāļēāļ‡āđ„āļāļĨ (āđāļĨāļ°āļ™āļĩāđˆāļ„āļ·āļ­āđ€āļ”āļ·āļ­āļ™āļĄāļīāļ–āļļāļ™āļēāļĒāļ™ 2017!) āļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāđāļšāļšāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ™āļĩāđ‰āļĄāļēāļžāļĢāđ‰āļ­āļĄāļāļąāļšāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡:

  • "āļ—āļĢāļąāļžāļĒāļēāļāļĢāļĒāđˆāļ­āļĒ" āļ”āđ‰āļ§āļĒ /status Ðļ /scale āļŠāļģāļŦāļĢāļąāļš CustomResources;
  • āļāļēāļĢāđāļ›āļĨāļ‡ āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļŠāļģāļŦāļĢāļąāļš CRD āđ‚āļ”āļĒāļ­āļīāļ‡āļˆāļēāļ webhook āļ āļēāļĒāļ™āļ­āļ
  • āļ™āļģāđ€āļŠāļ™āļ­āđ€āļĄāļ·āđˆāļ­āđ€āļĢāđ‡āļ§ āđ† āļ™āļĩāđ‰ (āđƒāļ™ K8s 1.15) āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™) āđāļĨāļ°āļāļēāļĢāļĨāļšāļŸāļīāļĨāļ”āđŒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī (āļāļēāļĢāļ•āļąāļ”āđāļ•āđˆāļ‡āļāļīāđˆāļ‡) āļŠāļģāļŦāļĢāļąāļš CustomResources;
  • āđ‚āļ­āļāļēāļŠ āđƒāļŠāđ‰āļŠāļ„āļĩāļĄāļē OpenAPI v3 āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļ­āļāļŠāļēāļĢ OpenAPI āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—āļĢāļąāļžāļĒāļēāļāļĢ CRD āļšāļ™āļāļąāđˆāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ

āļāļĨāđ„āļāļ­āļ·āđˆāļ™āļ—āļĩāđˆāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš Kubernetes āļ„āļļāđ‰āļ™āđ€āļ„āļĒāļĄāļēāļ™āļēāļ™āđāļĨāđ‰āļ§: āđ€āļ§āđ‡āļšāļŪāļļāļ„āļĢāļąāļšāļŠāļĄāļąāļ„āļĢ - āļĒāļąāļ‡āļ„āļ‡āļ­āļĒāļđāđˆāđƒāļ™āļŠāļ–āļēāļ™āļ°āđ€āļšāļ•āđ‰āļēāđ€āļ›āđ‡āļ™āđ€āļ§āļĨāļēāļ™āļēāļ™ (āļ•āļąāđ‰āļ‡āđāļ•āđˆ K8s 1.9) āđāļĨāļ°āļ•āļ­āļ™āļ™āļĩāđ‰āļāđ‡āļ›āļĢāļ°āļāļēāļĻāļ§āđˆāļēāđ€āļŠāļ–āļĩāļĒāļĢāđāļĨāđ‰āļ§

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ­āļ·āđˆāļ™āļ­āļĩāļāļŠāļ­āļ‡āļ›āļĢāļ°āļāļēāļĢāļ–āļķāļ‡āļĢāļļāđˆāļ™āđ€āļšāļ•āđ‰āļēāđāļĨāđ‰āļ§: āđƒāļŠāđ‰āļāļąāđˆāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ Ðļ āļ”āļđāļšāļļāđŠāļāļĄāļēāļĢāđŒāļ.

āđāļĨāļ°āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļ—āļĩāđˆāļŠāļģāļ„āļąāļāđ€āļžāļĩāļĒāļ‡āļ­āļĒāđˆāļēāļ‡āđ€āļ”āļĩāļĒāļ§āđƒāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļēāļāđ‡āļ„āļ·āļ­ āļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§ āļˆāļēāļ SelfLink — URI āļžāļīāđ€āļĻāļĐāļ—āļĩāđˆāđāļŠāļ”āļ‡āļ–āļķāļ‡āļ§āļąāļ•āļ–āļļāļ—āļĩāđˆāļĢāļ°āļšāļļāđāļĨāļ°āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡ ObjectMeta Ðļ ListMeta (āđ€āļŠāđˆāļ™ āļŠāđˆāļ§āļ™āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡āļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒāđƒāļ”āđ† āđƒāļ™ Kubernetes) āļ—āļģāđ„āļĄāļžāļ§āļāđ€āļ‚āļēāļ–āļķāļ‡āļĨāļ°āļ—āļīāđ‰āļ‡āļĄāļąāļ™? āđāļĢāļ‡āļˆāļđāļ‡āđƒāļˆāļ”āđ‰āļ§āļĒāļ§āļīāļ˜āļĩāļ‡āđˆāļēāļĒāđ† āđ€āļŠāļĩāļĒāļ‡ āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāđ„āļĄāđˆāļĄāļĩāđ€āļŦāļ•āļļāļœāļĨāļ—āļĩāđˆāđāļ—āđ‰āļˆāļĢāļīāļ‡ (āļĨāđ‰āļ™āļŦāļĨāļēāļĄ) āļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āļŸāļīāļĨāļ”āđŒāļ™āļĩāđ‰āļĒāļąāļ‡āļ„āļ‡āļĄāļĩāļ­āļĒāļđāđˆ āđ€āļŦāļ•āļļāļœāļĨāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ„āļ·āļ­āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™ (āđ‚āļ”āļĒāļāļēāļĢāļĨāļšāļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļ­āļ­āļ) āđāļĨāļ°āđ€āļžāļ·āđˆāļ­āļĨāļ”āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ generic-apiserver āļ‹āļķāđˆāļ‡āļ–āļđāļāļšāļąāļ‡āļ„āļąāļšāđƒāļŦāđ‰āļˆāļąāļ”āļāļēāļĢāļŸāļīāļĨāļ”āđŒāļ”āļąāļ‡āļāļĨāđˆāļēāļ§āļ”āđ‰āļ§āļĒāļ§āļīāļ˜āļĩāļžāļīāđ€āļĻāļĐ (āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļŸāļīāļĨāļ”āđŒāđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ„āļ§āđ‰āļ•āļĢāļ‡āļŦāļ™āđ‰āļēāļ§āļąāļ•āļ–āļļ āđ€āļ›āđ‡āļ™āļ­āļ™āļļāļāļĢāļĄ) āļ„āļ§āļēāļĄāļĨāđ‰āļēāļŠāļĄāļąāļĒāļ—āļĩāđˆāđāļ—āđ‰āļˆāļĢāļīāļ‡ (āļ āļēāļĒāđƒāļ™āđ€āļšāļ•āđ‰āļē) SelfLink āļˆāļ°āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ‚āļ”āļĒ Kubernetes āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 1.20 āđāļĨāļ°āļŠāļļāļ”āļ—āđ‰āļēāļĒ - 1.21

āļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨ

āļ‡āļēāļ™āļŦāļĨāļąāļāđƒāļ™āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļˆāļąāļ”āđ€āļāđ‡āļšāđ€āļŠāđˆāļ™āđ€āļ”āļĩāļĒāļ§āļāļąāļšāđƒāļ™āļĢāļļāđˆāļ™āļāđˆāļ­āļ™āļŦāļ™āđ‰āļēāļ™āļąāđ‰āļ™āļ–āļđāļāļŠāļąāļ‡āđ€āļāļ•āđƒāļ™āļžāļ·āđ‰āļ™āļ—āļĩāđˆ āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļ‚āļ­āļ‡āļ‹āļĩāđ€āļ­āļŠāđ„āļ­. āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļŦāļĨāļąāļāļ—āļĩāđˆāļ™āļĩāđˆāļ„āļ·āļ­:

  • āđ€āļ›āđ‡āļ™āļ„āļĢāļąāđ‰āļ‡āđāļĢāļ (āđƒāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē) āļ›āļĢāļēāļāļ āļĢāļ­āļ‡āļĢāļąāļšāļ›āļĨāļąāđŠāļāļ­āļīāļ™ CSI āļŠāļģāļŦāļĢāļąāļšāđ‚āļŦāļ™āļ”āļœāļđāđ‰āļ›āļāļīāļšāļąāļ•āļīāļ‡āļēāļ™āļ”āđ‰āļ§āļĒ Windows: āļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļšāļžāļ·āđ‰āļ™āļ—āļĩāđˆāļˆāļąāļ”āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļˆāļ°āđāļ—āļ™āļ—āļĩāđˆāļ›āļĨāļąāđŠāļāļ­āļīāļ™āđƒāļ™āđāļœāļ™āļœāļąāļ‡āđƒāļ™āļ„āļ­āļĢāđŒ Kubernetes āđāļĨāļ°āļ›āļĨāļąāđŠāļāļ­āļīāļ™ FlexVolume āļˆāļēāļ Microsoft āļ—āļĩāđˆāđƒāļŠāđ‰ Powershell

    Kubernetes 1.16: āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļŦāļĨāļąāļ
    āđāļœāļ™āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ›āļĨāļąāđŠāļāļ­āļīāļ™ CSI āđƒāļ™ Kubernetes āļŠāļģāļŦāļĢāļąāļš Windows

  • āđ‚āļ­āļāļēāļŠ āļāļēāļĢāļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āļ›āļĢāļīāļĄāļēāļ“ CSIāļ‹āļķāđˆāļ‡āđ€āļ›āļīāļ”āļ•āļąāļ§āđƒāļ™ K8s 1.12 āđāļĨāļ°āđ„āļ”āđ‰āļ‚āļĒāļēāļĒāđ€āļ›āđ‡āļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļšāļ•āđ‰āļēāđāļĨāđ‰āļ§
  • "āļāļēāļĢāđ‚āļ›āļĢāđ‚āļĄāļ•" āļ—āļĩāđˆāļ„āļĨāđ‰āļēāļĒāļāļąāļ™ (āļˆāļēāļāļ­āļąāļĨāļŸāđˆāļēāļ–āļķāļ‡āđ€āļšāļ•āđ‰āļē) āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ„āļ”āđ‰āļˆāļēāļāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāđƒāļŠāđ‰ CSI āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļ›āļĢāļīāļĄāļēāļ“āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§āđƒāļ™āļ—āđ‰āļ­āļ‡āļ–āļīāđˆāļ™ (āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļ›āļĢāļīāļĄāļēāļ“āļ­āļīāļ™āđ„āļĨāļ™āđŒ CSI).

āđ€āļ›āļīāļ”āļ•āļąāļ§āđƒāļ™ Kubernetes āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļāđˆāļ­āļ™āļŦāļ™āđ‰āļē āļŸāļąāļ‡āļāđŒāļŠāļąāđˆāļ™āļāļēāļĢāđ‚āļ„āļĨāļ™āđ‚āļ§āļĨāļļāđˆāļĄ (āđƒāļŠāđ‰āļžāļĩāļ§āļĩāļ‹āļĩāļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāđ€āļ›āđ‡āļ™ DataSource āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡ PVC āđƒāļŦāļĄāđˆ) āļ•āļ­āļ™āļ™āļĩāđ‰āđ„āļ”āđ‰āļĢāļąāļšāļŠāļ–āļēāļ™āļ°āđ€āļšāļ•āđ‰āļēāđāļĨāđ‰āļ§āđ€āļŠāđˆāļ™āļāļąāļ™

āļāļģāļŦāļ™āļ”āļāļēāļĢ

āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļāļģāļŦāļ™āļ”āļāļēāļĢāļ—āļĩāđˆāđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļŠāļ­āļ‡āļ›āļĢāļ°āļāļēāļĢ (āļ—āļąāđ‰āļ‡āđƒāļ™āļĢāļļāđˆāļ™āļ­āļąāļĨāļŸāđˆāļē):

  • EvenPodsSpreading - āđ‚āļ­āļāļēāļŠ āđƒāļŠāđ‰āļžāđ‡āļ­āļ”āđāļ—āļ™āļŦāļ™āđˆāļ§āļĒāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāļĨāļ­āļˆāļīāļ„āļąāļĨāļŠāļģāļŦāļĢāļąāļš "āļāļēāļĢāļāļĢāļ°āļˆāļēāļĒāļ—āļĩāđˆāļĒāļļāļ•āļīāļ˜āļĢāļĢāļĄ" āļ‚āļ­āļ‡āđ‚āļŦāļĨāļ” (āđ€āļŠāđˆāļ™ Deployment āđāļĨāļ° ReplicaSet) āđāļĨāļ°āļāļēāļĢāļ›āļĢāļąāļšāļāļēāļĢāļāļĢāļ°āļˆāļēāļĒāļ™āļĩāđ‰ (āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āļ—āļĩāđˆāļĒāļēāļāļŦāļĢāļ·āļ­āđ€āļ›āđ‡āļ™āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļ—āļĩāđˆāļ­āđˆāļ­āļ™āļ™āļļāđˆāļĄ āđ€āļŠāđˆāļ™ āļĨāļģāļ”āļąāļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļ) āļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āļ™āļĩāđ‰āļˆāļ°āļ‚āļĒāļēāļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļāļĢāļ°āļˆāļēāļĒāļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļžāđ‡āļ­āļ”āļ—āļĩāđˆāļ§āļēāļ‡āđāļœāļ™āđ„āļ§āđ‰ āļ‹āļķāđˆāļ‡āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļ–āļđāļāļˆāļģāļāļąāļ”āļ”āđ‰āļ§āļĒāļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ•āđˆāļēāļ‡āđ† PodAffinity Ðļ PodAntiAffinityāļ—āļģāđƒāļŦāđ‰āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āļ„āļ§āļšāļ„āļļāļĄāđ„āļ”āđ‰āļ”āļĩāļ‚āļķāđ‰āļ™āđƒāļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļ™āļĩāđ‰ āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ–āļķāļ‡āļ„āļ§āļēāļĄāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļđāļ‡āđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ—āļĢāļąāļžāļĒāļēāļāļĢāļ—āļĩāđˆāļ›āļĢāļąāļšāđƒāļŦāđ‰āđ€āļŦāļĄāļēāļ°āļŠāļĄāļĒāļīāđˆāļ‡āļ‚āļķāđ‰āļ™ āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”-āđ€āļ‚āđ‰āļē KEP.
  • āđƒāļŠāđ‰ āļ™āđ‚āļĒāļšāļēāļĒ BestFit Ðē āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļĨāļģāļ”āļąāļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļ RequestedToCapacityRatio āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļ§āļēāļ‡āđāļœāļ™āļžāđ‡āļ­āļ”āļ‹āļķāđˆāļ‡āļˆāļ°āļŠāđˆāļ§āļĒāđƒāļŦāđ‰ āđ€āļžāļ·āđˆāļ­āļŠāļĄāļąāļ„āļĢ āļšāļĢāļĢāļˆāļļāļ–āļąāļ‡ (“āļāļēāļĢāļšāļĢāļĢāļˆāļļāđƒāļ™āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒâ€) āļŠāļģāļŦāļĢāļąāļšāļ—āļąāđ‰āļ‡āļ—āļĢāļąāļžāļĒāļēāļāļĢāļžāļ·āđ‰āļ™āļāļēāļ™ (āđ‚āļ›āļĢāđ€āļ‹āļŠāđ€āļ‹āļ­āļĢāđŒ āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ) āđāļĨāļ°āļ—āļĢāļąāļžāļĒāļēāļāļĢāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ (āđ€āļŠāđˆāļ™ GPU) āļŠāļģāļŦāļĢāļąāļšāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āđ‚āļ›āļĢāļ”āļ”āļđ KEP.

    Kubernetes 1.16: āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāļŦāļĨāļąāļ
    āļžāđ‡āļ­āļ”āļāļēāļĢāļāļģāļŦāļ™āļ”āđ€āļ§āļĨāļē: āļāđˆāļ­āļ™āļ—āļĩāđˆāļˆāļ°āđƒāļŠāđ‰āļ™āđ‚āļĒāļšāļēāļĒāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļ—āļĩāđˆāļŠāļļāļ” (āđ‚āļ”āļĒāļ•āļĢāļ‡āļœāđˆāļēāļ™āļ•āļąāļ§āļāļģāļŦāļ™āļ”āļ•āļēāļĢāļēāļ‡āđ€āļ§āļĨāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™) āđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ (āļœāđˆāļēāļ™āļ•āļąāļ§āļ‚āļĒāļēāļĒāļāļģāļŦāļ™āļ”āļāļēāļĢ)

āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āđāļŠāļ”āļ‡āđ‚āļ”āļĒ āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ›āļĨāļąāđŠāļāļ­āļīāļ™āļ‚āļ­āļ‡āļ„āļļāļ“āđ€āļ­āļ‡āļŠāļģāļŦāļĢāļąāļšāļ•āļąāļ§āļāļģāļŦāļ™āļ”āđ€āļ§āļĨāļēāļ āļēāļĒāļ™āļ­āļāđāļœāļ™āļœāļąāļ‡āļāļēāļĢāļžāļąāļ’āļ™āļē Kubernetes āļŦāļĨāļąāļ (āļ™āļ­āļāđāļœāļ™āļœāļąāļ‡)

āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ­āļ·āđˆāļ™āđ†

āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āđƒāļ™ Kubernetes 1.16 āļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāļąāļ‡āđ€āļāļ•āđ„āļ”āđ‰ āļ„āļ§āļēāļĄāļ„āļīāļ”āļĢāļīāđ€āļĢāļīāđˆāļĄāļŠāļģāļŦāļĢāļąāļš āļāļēāļĢāļ™āļģ āđ€āļĄāļ•āļĢāļīāļāļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ•āļēāļĄāļĨāļģāļ”āļąāļšāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļŦāļĢāļ·āļ­āđ€āļˆāļēāļ°āļˆāļ‡āļĄāļēāļāļ‚āļķāđ‰āļ™āļ•āļēāļĄ āļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļšāļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢ āđ„āļ›āļˆāļ™āļ–āļķāļ‡āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ‚āļ­āļ‡ K8 āļžāļ§āļāđ€āļ‚āļēāļžāļķāđˆāļ‡āļžāļēāļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āđƒāļŦāļāđˆ āđ€āļ­āļāļŠāļēāļĢāļ‚āļ­āļ‡āđ‚āļžāļĢāļĄāļĩāļ˜āļĩāļ­āļļāļŠ. āļ„āļ§āļēāļĄāđ„āļĄāđˆāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļ™āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļˆāļēāļāļŦāļĨāļēāļĒāļŠāļēāđ€āļŦāļ•āļļ (āđ€āļŠāđˆāļ™ āļ•āļąāļ§āļ§āļąāļ”āļšāļēāļ‡āļ•āļąāļ§āļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļāđˆāļ­āļ™āļ—āļĩāđˆāļ„āļģāđāļ™āļ°āļ™āļģāļ›āļąāļˆāļˆāļļāļšāļąāļ™āļˆāļ°āļ›āļĢāļēāļāļāļ‚āļķāđ‰āļ™) āđāļĨāļ°āļ™āļąāļāļžāļąāļ’āļ™āļēāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ§āđˆāļēāļ–āļķāļ‡āđ€āļ§āļĨāļēāđāļĨāđ‰āļ§āļ—āļĩāđˆāļˆāļ°āļ•āđ‰āļ­āļ‡āļ™āļģāļ—āļļāļāļ­āļĒāđˆāļēāļ‡āđ„āļ›āļŠāļđāđˆāļĄāļēāļ•āļĢāļāļēāļ™āđ€āļ”āļĩāļĒāļ§ "āļ‹āļķāđˆāļ‡āļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļšāļŠāđˆāļ§āļ™āļ—āļĩāđˆāđ€āļŦāļĨāļ·āļ­āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāļ‚āļ­āļ‡ Prometheus" āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ•āļēāļĄāļ„āļ§āļēāļĄāļ„āļīāļ”āļĢāļīāđ€āļĢāļīāđˆāļĄāļ™āļĩāđ‰āđƒāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļ­āļĒāļđāđˆāđƒāļ™āļŠāļ–āļēāļ™āļ°āļ­āļąāļĨāļŸāđˆāļē āļ‹āļķāđˆāļ‡āļˆāļ°āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļŠāđˆāļ‡āđ€āļŠāļĢāļīāļĄāļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āđƒāļ™ Kubernetes āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ•āđˆāļ­āđ† āđ„āļ›āđ€āļ›āđ‡āļ™āđ€āļšāļ•āđ‰āļē (1.17) āđāļĨāļ°āđ€āļŠāļ–āļĩāļĒāļĢ (1.18)

āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāļąāļ‡āđ€āļāļ•āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ•āđˆāļ­āđ„āļ›āļ™āļĩāđ‰:

  • āļāļēāļĢāļžāļąāļ’āļ™āļēāļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™ Windows ҁ āļĢāļđāļ›āļĢāđˆāļēāļ‡ āļĒāļđāļ—āļīāļĨāļīāļ•āļĩāđ‰ Kubeadm āļŠāļģāļŦāļĢāļąāļšāļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļīāļāļēāļĢāļ™āļĩāđ‰ (āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē) āđ‚āļ­āļāļēāļŠ RunAsUserName āļŠāļģāļŦāļĢāļąāļš Windows- āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒ (āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē) āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ āļšāļąāļāļŠāļĩāļšāļĢāļīāļāļēāļĢāļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļĨāļļāđˆāļĄ (gMSA) āļĢāļ­āļ‡āļĢāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļšāļ•āđ‰āļē āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ āđ€āļĄāļēāļ™āļ•āđŒ/āđāļ™āļšāļŠāļģāļŦāļĢāļąāļšāđ‚āļ§āļĨāļļāđˆāļĄ vSphere
  • āļĢāļĩāđ„āļ‹āđ€āļ„āļīāļĨ āļāļĨāđ„āļāļāļēāļĢāļšāļĩāļšāļ­āļąāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ‚āļ­āļ‡ API. āļāđˆāļ­āļ™āļŦāļ™āđ‰āļēāļ™āļĩāđ‰ āļ•āļąāļ§āļāļĢāļ­āļ‡ HTTP āļ–āļđāļāđƒāļŠāđ‰āđ€āļžāļ·āđˆāļ­āļ§āļąāļ•āļ–āļļāļ›āļĢāļ°āļŠāļ‡āļ„āđŒāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰ āļ‹āļķāđˆāļ‡āļāļģāļŦāļ™āļ”āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āļŦāļĨāļēāļĒāļ›āļĢāļ°āļāļēāļĢāļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āļ•āļēāļĄāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āļ•āļ­āļ™āļ™āļĩāđ‰ "āļāļēāļĢāļšāļĩāļšāļ­āļąāļ”āļ„āļģāļ‚āļ­āđāļšāļšāđ‚āļ›āļĢāđˆāļ‡āđƒāļŠ" āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āđāļĨāđ‰āļ§: āļāļēāļĢāļŠāđˆāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒ Accept-Encoding: gzip āđƒāļ™āļŠāđˆāļ§āļ™āļŦāļąāļ§ āļžāļ§āļāđ€āļ‚āļēāļˆāļ°āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ—āļĩāđˆāļšāļĩāļšāļ­āļąāļ” GZIP āļŦāļēāļāļ‚āļ™āļēāļ”āđ€āļāļīāļ™ 128 KB āļĨāļđāļāļ„āđ‰āļē Go āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļšāļĩāļšāļ­āļąāļ”āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī (āļŠāđˆāļ‡āļŠāđˆāļ§āļ™āļŦāļąāļ§āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™) āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļžāļ§āļāđ€āļ‚āļēāļˆāļ°āļŠāļąāļ‡āđ€āļāļ•āđ€āļŦāđ‡āļ™āļ›āļĢāļīāļĄāļēāļ“āļāļēāļĢāļĢāļąāļšāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĨāļ”āļĨāļ‡āļ—āļąāļ™āļ—āļĩ (āļ­āļēāļˆāļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢāļ›āļĢāļąāļšāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒāļŠāļģāļŦāļĢāļąāļšāļ āļēāļĐāļēāļ­āļ·āđˆāļ™)
  • āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āđ„āļ›āđ„āļ”āđ‰ āļ›āļĢāļąāļšāļ‚āļ™āļēāļ” HPA āļˆāļēāļ/āđ€āļ›āđ‡āļ™āļĻāļđāļ™āļĒāđŒāļžāđ‡āļ­āļ”āļ•āļēāļĄāļ•āļąāļ§āļŠāļĩāđ‰āļ§āļąāļ”āļ āļēāļĒāļ™āļ­āļ. āļŦāļēāļāļ„āļļāļ“āļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āļ•āļēāļĄāļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒ/āļ•āļąāļ§āļ§āļąāļ”āļ āļēāļĒāļ™āļ­āļ āđ€āļĄāļ·āđˆāļ­āļ›āļĢāļīāļĄāļēāļ“āļ‡āļēāļ™āđ„āļĄāđˆāđ„āļ”āđ‰āđƒāļŠāđ‰āļ‡āļēāļ™ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āđāļšāļšāļˆāļģāļĨāļ­āļ‡āđ€āļ›āđ‡āļ™ 0 āđ„āļ”āđ‰āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđ€āļžāļ·āđˆāļ­āļ›āļĢāļ°āļŦāļĒāļąāļ”āļ—āļĢāļąāļžāļĒāļēāļāļĢ āļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āļ™āļĩāđ‰āļ„āļ§āļĢāļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļŠāļģāļŦāļĢāļąāļšāļāļĢāļ“āļĩāļ—āļĩāđˆāļœāļđāđ‰āļ›āļāļīāļšāļąāļ•āļīāļ‡āļēāļ™āļĢāđ‰āļ­āļ‡āļ‚āļ­āļ—āļĢāļąāļžāļĒāļēāļāļĢ GPU āđāļĨāļ°āļˆāļģāļ™āļ§āļ™āļœāļđāđ‰āļ›āļāļīāļšāļąāļ•āļīāļ‡āļēāļ™āļ—āļĩāđˆāđ„āļĄāđˆāđ„āļ”āđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āļ›āļĢāļ°āđ€āļ āļ—āļ•āđˆāļēāļ‡āđ† āđ€āļāļīāļ™āļˆāļģāļ™āļ§āļ™ GPU āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆ
  • āļĨāļđāļāļ„āđ‰āļēāđƒāļŦāļĄāđˆ - k8s.io/client-go/metadata.Client — āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ§āļąāļ•āļ–āļļāđāļšāļš "āļ—āļąāđˆāļ§āđ„āļ›" āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ•āļēāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒ (āđ€āļŠāđˆāļ™ āļŠāđˆāļ§āļ™āļĒāđˆāļ­āļĒ metadata) āļˆāļēāļāļ—āļĢāļąāļžāļĒāļēāļāļĢāļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒāđāļĨāļ°āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄāļ‚āļĒāļ°āđāļĨāļ°āđ‚āļ„āļ§āļ•āđ‰āļēāļĢāđˆāļ§āļĄāļāļąāļšāļ—āļĢāļąāļžāļĒāļēāļāļĢāđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™
  • āļŠāļĢāđ‰āļēāļ‡ Kubernetes āļ•āļ­āļ™āļ™āļĩāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ– āđ‚āļ”āļĒāđ„āļĄāđˆāļĄāļĩāļœāļđāđ‰āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļĢāļ°āļšāļšāļ„āļĨāļēāļ§āļ”āđŒāđāļšāļšāđ€āļ”āļīāļĄ ("āđƒāļ™āļ•āļąāļ§" āđƒāļ™āđāļœāļ™āļœāļąāļ‡) (āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē)
  • āđ„āļ›āļĒāļąāļ‡āļĒāļđāļ—āļīāļĨāļīāļ•āļĩāđ‰ kubeadm āđ€āļžāļīāđˆāļĄ āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļ”āļĨāļ­āļ‡ (āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļĨāļŸāđˆāļē) āđ€āļžāļ·āđˆāļ­āđƒāļŠāđ‰āđāļžāļ•āļŠāđŒāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ init, join Ðļ upgrade. āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļīāļ˜āļĩāđƒāļŠāđ‰āđāļŸāļĨāđ‡āļ --experimental-kustomize, āļ”āļđāđƒāļ™ KEP.
  • āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļš apiserver - readyz, - āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļ­āļ­āļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ„āļ§āļēāļĄāļžāļĢāđ‰āļ­āļĄāđ„āļ”āđ‰ āļ‚āļ“āļ°āļ™āļĩāđ‰āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ API āļĄāļĩāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļŠāļ–āļēāļ™āļ°āđāļĨāđ‰āļ§ --maximum-startup-sequence-durationāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāļĢāļĩāļŠāļ•āļēāļĢāđŒāļ—āđ„āļ”āđ‰
  • āļŠāļ­āļ‡ āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŠāļģāļŦāļĢāļąāļš Azure āļ›āļĢāļ°āļāļēāļĻāļĄāļĩāđ€āļŠāļ–āļĩāļĒāļĢāļ āļēāļž: āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™ āđ‚āļ‹āļ™āļ„āļ§āļēāļĄāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™ (āđ‚āļ‹āļ™āļ—āļĩāđˆāļĄāļĩāļˆāļģāļŦāļ™āđˆāļēāļĒ) āđāļĨāļ° āļāļĨāļļāđˆāļĄāļ‚āđ‰āļēāļĄāļ—āļĢāļąāļžāļĒāļēāļāļĢ (āļ­āļēāļĢāđŒāļˆāļĩ). āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ Azure āļĒāļąāļ‡āđ€āļžāļīāđˆāļĄ:
  • āļ•āļ­āļ™āļ™āļĩāđ‰ AWS āđ„āļ”āđ‰āđāļĨāđ‰āļ§ āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ āļŠāļģāļŦāļĢāļąāļš EBS āđƒāļ™ Windows Ðļ āļ›āļĢāļąāļšāđƒāļŦāđ‰āđ€āļŦāļĄāļēāļ°āļŠāļĄ āļāļēāļĢāđ€āļĢāļĩāļĒāļ EC2 API DescribeInstances.
  • āļ•āļ­āļ™āļ™āļĩāđ‰ Kubeadm āđ€āļ›āđ‡āļ™āļ­āļīāļŠāļĢāļ°āđāļĨāđ‰āļ§ āļ­āļžāļĒāļž āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļē CoreDNS āđ€āļĄāļ·āđˆāļ­āļ­āļąāļ›āđ€āļāļĢāļ”āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ CoreDNS
  • āđ„āļšāļ™āļēāļĢāļĩ āļŊāļĨāļŊ āđƒāļ™āļ­āļīāļĄāđ€āļĄāļˆ Docker āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āđ„āļ”āđ‰āļ—āļģ āļ›āļāļīāļšāļąāļ•āļīāļāļēāļĢāđ„āļ”āđ‰āļ—āļąāđˆāļ§āđ‚āļĨāļāļ‹āļķāđˆāļ‡āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ­āļīāļĄāđ€āļĄāļˆāļ™āļĩāđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļŠāļīāļ—āļ˜āļīāđŒāļĢāļđāļ— āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āļĢāļđāļ›āļ āļēāļžāļāļēāļĢāđ‚āļĒāļāļĒāđ‰āļēāļĒ āļŊāļĨāļŊ āļŦāļĒāļļāļ” āļĢāļ­āļ‡āļĢāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ etcd2
  • В āļ•āļąāļ§āļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āļ„āļĨāļąāļŠāđ€āļ•āļ­āļĢāđŒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī 1.16.0 āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ›āđƒāļŠāđ‰ distroless āđ€āļ›āđ‡āļ™āļ­āļīāļĄāđ€āļĄāļˆāļžāļ·āđ‰āļ™āļāļēāļ™ āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđ€āļžāļīāđˆāļĄāļœāļđāđ‰āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļ„āļĨāļēāļ§āļ”āđŒāļĢāļēāļĒāđƒāļŦāļĄāđˆ (DigitalOcean, Magnum, Packet)
  • āļ­āļąāļ›āđ€āļ”āļ•āđƒāļ™āļ‹āļ­āļŸāļ•āđŒāđāļ§āļĢāđŒāļ—āļĩāđˆāđƒāļŠāđ‰/āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļš: āđ„āļ› 1.12.9, āļŊāļĨāļŊ 3.3.15, CoreDNS 1.6.2

PS

āļ­āđˆāļēāļ™āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđƒāļ™āļšāļĨāđ‡āļ­āļāļ‚āļ­āļ‡āđ€āļĢāļē:

āļ—āļĩāđˆāļĄāļē: will.com

āļ‹āļ·āđ‰āļ­āđ‚āļŪāļŠāļ•āļīāđ‰āļ‡āļ—āļĩāđˆāđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āđ„āļ”āđ‰āļŠāļģāļŦāļĢāļąāļšāđ„āļ‹āļ•āđŒāļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™ DDoS āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ VPS VDS ðŸ”Ĩ āļ‹āļ·āđ‰āļ­āļšāļĢāļīāļāļēāļĢāđ€āļ§āđ‡āļšāđ‚āļŪāļŠāļ•āļīāđ‰āļ‡āļ—āļĩāđˆāđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āđ„āļ”āđ‰ āļžāļĢāđ‰āļ­āļĄāļĢāļ°āļšāļšāļ›āđ‰āļ­āļ‡āļāļąāļ™ DDoS āđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ VPS/VDS | ProHoster