เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡ Kubernetes เบชเบฐเบซเบกเบฑเบ, เบ—เบปเบ”เปเบ—เบ™เปเบฅเบฐ patch

Kubernetes เบกเบตเบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™: เบ™เบณเปƒเบŠเป‰, เปเบเป‰เป„เบ‚, เปเบเป‰เป„เบ‚ เปเบฅเบฐเบ›เปˆเบฝเบ™เปเบ—เบ™. เบกเบตเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เป€เบฎเบฑเบ”เปเบฅเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™. เปƒเบซเป‰เบ„เบดเบ”เบญเบญเบ.

เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡ Kubernetes เบชเบฐเบซเบกเบฑเบ, เบ—เบปเบ”เปเบ—เบ™เปเบฅเบฐ patch

เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™ Google เบ„เปเบฒเบงเปˆเบฒ "kubernetes เปƒเบŠเป‰ vs เบ—เบปเบ”เปเบ—เบ™" เปเบกเปˆเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆ เบ•เบญเบšเบเบฑเบš StackOverflow, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เป€เบกเบทเปˆเบญเบŠเบญเบเบซเบฒ "kubernetes เปƒเบŠเป‰ vs patch" เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบš kubectl patch, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบฅเบงเบกเป€เบญเบปเบฒเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš apply ะธ patch. เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบˆเบฐเป€เบšเบดเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ„เบปเบ™.

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบงเบปเบ‡เบˆเบญเบ™เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Kubernetes (เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบเบฒเบ™เบ™เบณเปƒเบŠเป‰, เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡, เป€เบžเบตเปˆเบก เบซเบผเบทเบฅเบถเบšเบšเบฒเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ™เบตเป‰เบญเบญเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบตเปˆเบกเบšเบฑเบ™เบ—เบถเบ, เป€เบžเบตเปˆเบกเบซเบผเบทเบซเบผเบธเบ”เบฅเบปเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ replicas.

Kubernetes CLI

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบธเปˆเบก Kubernetes เบœเปˆเบฒเบ™ CLI เปเบฅเป‰เบง, เบ—เปˆเบฒเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบš apply ะธ edit. เบ—เบตเบกเบ‡เบฒเบ™ apply เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบˆเบฒเบเป„เบŸเบฅเปŒ เปเบฅเบฐเบชเป‰เบฒเบ‡ "upsert" เปƒเบซเป‰เบเบฑเบšเบเบธเปˆเบก Kubernetes, i.e. เบชเป‰เบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เบ–เป‰เบฒเบกเบฑเบ™เบกเบตเบขเบนเปˆ. เบ—เบตเบกเบ‡เบฒเบ™ edit เบญเปˆเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบœเปˆเบฒเบ™ API, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เบฝเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ„เบงเบฒเบก. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เปเบฅเบฐโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹, kubectl เบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ„เบทเบ™เบœเปˆเบฒเบ™ API, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡.

เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบ„เบปเบ™เบฎเบนเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ patch ะธ replace. เบ—เบตเบกเบ‡เบฒเบ™ patch เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบชเบฐเบซเบ™เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เบ—เบตเบกเบ‡เบฒเบ™ replace เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบ™เบเบฑเบš edit, เปเบ•เปˆเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡: เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบฒเบงเป‚เบซเบฅเบ”เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. kubectl get -o yaml, เปเบเป‰เป„เบ‚เบกเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบŠเป‰ replace เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ—เบตเบกเบ‡เบฒเบ™ replace เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ–เป‰เบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™.

Kubernetes API

เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ CoreV1().Pods().Update(), replaceNamespacedService เบซเบผเบท patch_namespaced_deployment, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบธเปˆเบกเบœเปˆเบฒเบ™ เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเบชเปเบฒเบฅเบฑเบš Kubernetes API เปƒเบŠเป‰เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบšเบฒเบ‡. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบˆเบฑเบ”เบเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบœเปˆเบฒเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป HTTP เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ PUT ะธ PATCH... เบขเบนเปˆเปƒเบ™ update ะธ replace เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ PUTเปเบฅเบฐ patch, เบšเปเปˆเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ, เปƒเบŠเป‰ PATCH.

เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบปเบเปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ kubectl เบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบธเปˆเบกเบœเปˆเบฒเบ™ API. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, kubectlเปเบกเปˆเบ™ wrapper เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ Go, เป€เบŠเบดเปˆเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบเปˆเบญเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” API เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปเบฅเป‰เบง, เบงเบดเบ—เบตเบเบฒเบ™ apply เบšเปเปˆเป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปƒเบ™เบงเบฑเบเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ (เป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒ 2020, เบ›เบฐเบกเบฒเบ™ เบ™เบฑเบเปเบ›) เบกเบตเป€เบซเบ”เบœเบปเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” kubectl apply, i.e. เบเบฒเบ™เบชเป‰เบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ”เป‰เบฒเบ™เบฅเบฐเบซเบฑเบ” kubectl. เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™ เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™ apply เป„เบ›เบ‚เป‰เบฒเบ‡ API, เปเบ•เปˆเบกเบฑเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™เป€เบšเบ•เป‰เบฒ. เบ‚เป‰เบญเบเบˆเบฐเบ‚เบฝเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

Patch เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

เปƒเบŠเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ” patch, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเป€เบ—เบดเบ‡ Kubernetes API เปเบฅเบฐ kubectl (เบšเปเปˆเปเบ›เบเปƒเบˆ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ wrapper เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒ, เบ›เบฐเบกเบฒเบ™ เบ™เบฑเบเปเบ›).

เป€เบฎเบฑเบ”เบงเบฝเบเบเบธเบ”เบ—เบฐเบชเบฒเบ”

เบ—เบตเบกเบ‡เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” kubectl apply, edit ะธ patch เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ PATCH เปƒเบ™ HTTP เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบˆเบฒเบฐเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เป‚เบเบ‡โ€‹เบเบธเบ”โ€‹เบ—เบฐโ€‹เบชเบฒเบ” เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡ patch เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป† (เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰). เบงเบดเบ—เบตเบเบฒเบ™ patching-merge เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบžเบฐเบเบฒเบเบฒเบก "เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ–เบทเบเบ•เป‰เบญเบ‡" เป‚เบ”เบเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบเบฑเบšเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบกเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบชเบปเบกเบ—เบปเบšเบ—เบฑเบ‡เบงเบฑเบ”เบ–เบธเปเบฅเบฐ arrays, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ patch เบ”เป‰เบงเบเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปƒเปเปˆเปƒเบ™เบชเบฐเป€เบžเบฒเบฐเบ•เบปเบงเบšเบฑเบ™เบˆเบธเบเบฑเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ™เบฑเป‰เบ™เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบ—เบฑเบšเบžเบงเบเบกเบฑเบ™. เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบญเบญเบเป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบšเบฑเบ‡เบ„เบฑเบšเบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปƒเบซเป‰เป€เบ›เบฑเบ™ null เปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰. เบ—เบตเบกเปƒเบ” kubectl เบกเบฑเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบšเป?

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ kubectl apply, เป€เบกเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเบฐเป€เบซเบกเบต kubectl applyเป€เบ–เบดเบ‡ kubectl เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เปเบฅเบฐเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ›เบซเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบชเบฐเป€เบซเบกเบตเปƒเบŠเป‰ apply เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™, เปƒเบซเป‰เบกเบฑเบ™เบฎเบนเป‰เบงเปˆเบฒเป€เบกเบทเปˆเบญเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐ เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบญเบฒเป€เบฃเบ–เบทเบเบ–เบญเบ”เบญเบญเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ apply เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบš array, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เบฅเบงเบกเบเบธเบ”เบ—เบฐเบชเบฒเบ”เบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เบ—เบตเบกเบ‡เบฒเบ™ edit ะธ patch เบšเปเปˆเบ›เบฑเบšเบ›เบธเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆ kubectl apply เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เบ—เบตเปˆเบ–เบทเบเบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐเป€เบฎเบฑเบ”เบœเปˆเบฒเบ™ Kubernetes API, เปเบ•เปˆเป€เบฎเบฑเบ”เบœเปˆเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ edit ะธ patch, เป€เบšเบดเปˆเบ‡เบšเปเปˆเป€เบซเบฑเบ™เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ› apply, เบงเปˆเบฒเปเบกเปˆเบ™ apply เบšเปเปˆเป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบญเบญเบเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบšเปเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบš apply (เป€เบญเบเบฐเบชเบฒเบ™เบšเบญเบเบงเปˆเบฒ edit ะธ patch เบ›เบฑเบšเบ›เบธเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเปƒเบŠเป‰ apply, เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” - เบšเปเปˆเบกเบต).

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ apply, เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™ edit, เปเบฅเบฐ patch, เป€เบฅเบทเบญเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”. เป€เบกเบทเปˆเบญเป€เบžเบตเปˆเบกเปเบฅเบฐเบ›เปˆเบฝเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” BOM, เบ—เบฑเบ‡เบชเบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™เบ„เบทเบเบฑเบ™. เป€เบกเบทเปˆเบญเบฅเบถเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐ เบซเบผเบทเบญเบปเบ‡เบ›เบฐเบเบญเบšเบญเบฒเป€เบฃ edit เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ„เบทเบเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ„เบฑเป‰เบ‡เบ”เบฝเบง apply, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฐเป€เบžเบฒเบฐเบเปˆเบญเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบกเบฑเบ™เบ–เบทเบเบ”เบฑเบ”เปเบเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบš array เบญเบญเบเบˆเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบกเบนเบ™เบ„เปˆเบฒเบŠเบฑเบšเบชเบดเบ™เป€เบ›เบฑเบ™ null เปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš patchเป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เบเบฒเบ™เบ–เบญเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš array เป‚เบ”เบเปƒเบŠเป‰ strategic-merge patching เปเบกเปˆเบ™เบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบฅเบงเบก. เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเบญเบทเปˆเบ™เป†เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบ.

เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡ kubectl, เบ„เบงเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป content-type ะฒ application/strategic-merge-patch+json. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบญเบปเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบ™เบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เป€เบ›เบฑเบ™ null เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. kubectl patch. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบญเบปเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบš array, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบงเบกเป€เบญเบปเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบซเบผเบทเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.

เบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป€เบžเบทเปˆเบญเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡

Kubernetes เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบญเบทเปˆเบ™เป†: JSON เบฅเบงเบก patch ะธ JSON patch. เบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚ JSON merge เปƒเบŠเป‰เป€เบงเบฅเบฒเบšเบฒเบ‡เบชเปˆเบงเบ™เบชเบฐเป€เบžเบฒเบฐ Kubernetes เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบฅเบงเบกเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบเป‰เป„เบ‚เบเบธเบ”เบ—เบฐเบชเบฒเบ”. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™ array, เบฅเบงเบกเบ—เบฑเบ‡ array container เปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบเบฑเบ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบกเบทเปˆเบญเปƒเบŠเป‰ JSON merge patch, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเบžเบฒเบŠเบฐเบ™เบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบŠเบฑเบšเบชเบดเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบˆเบธเปƒเบ”เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เบญเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบˆเบฒเบ array เปƒเบ™ BOM. เปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบ JSON merge patch เป‚เบ”เบเปƒเบŠเป‰ kubectl patch --type=merge. เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Kubernetes API, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป PATCH เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ content-type ะฒ application/merge-patch+json.

เบงเบดเบ—เบตเบเบฒเบ™ patch JSON, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบ›เบฑเบ™ array, เป€เบŠเบดเปˆเบ‡เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ array เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปเบฅเบฐเบกเบตเบญเปเบฒเบ™เบฒเบ”เบซเบผเบฒเบเป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”, เปเบ•เปˆเปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบฅเบฒเบเบŠเบทเปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ Kubernetes, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™. IN kubectl เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบ JSON patch เป‚เบ”เบเปƒเบŠเป‰ kubectl patch --type=json. เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Kubernetes API, เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป PATCH เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ content-type ะฒ application/json-patch+json.

เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เปƒเบˆ - เปƒเบŠเป‰เปเบ—เบ™

เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เบ•เปเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ–เบทเบเบญเปˆเบฒเบ™เปเบฅเบฐเป€เบกเบทเปˆเบญเบกเบฑเบ™เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเป€เบ›เบฑเบ™ เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰ replace. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบต ConfigMap เบ—เบตเปˆเบกเบตเบ•เบปเบงเบ™เบฑเบšเบ—เบตเปˆเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบเปเบซเบผเปˆเบ‡เบซเบผเบฒเบ, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบชเบญเบ‡เปเบซเบผเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบ•เบปเบงเบ™เบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบชเบนเบ™เป€เบชเบเป„เบ›. เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™, เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบฅเปเบฒเบ”เบฑเบšเป€เบซเบ”เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ patch:

  • A เปเบฅเบฐ B เป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบˆเบฒเบ API
  • เปเบ•เปˆเบฅเบฐเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบ™เบฑเบšเปเบฅเบฐเป€เบžเบตเปˆเบก "A" เบซเบผเบท "B" เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเปƒเบชเปˆเบšเบฑเบ™เบ—เบถเบ "เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบ"
  • เปเบฅเบฐเบกเบฑเบ™เบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป„เบงเบ‚เบถเป‰เบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ
  • B เบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ A เปเบกเปˆเบ™เบชเบนเบ™เป€เบชเบ. เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบผเป‰เบฒเบชเบธเบ” patch เบŠเบฐเบ™เบฐ, เบ•เบปเบงเบ™เบฑเบšเปเบกเปˆเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบซเบ™เบถเปˆเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบญเบ‡, เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบ "เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบ" เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เบ”เป‰เบงเบ "B" เปเบฅเบฐเบšเปเปˆเบกเบต "A". เปƒเบซเป‰เบชเบปเบกเบ—เบฝเบšเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ replace:

  • A เปเบฅเบฐ B เป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบˆเบฒเบ API
  • เปเบ•เปˆเบฅเบฐเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบ™เบฑเบšเปเบฅเบฐเป€เบžเบตเปˆเบก "A" เบซเบผเบท "B" เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเปƒเบชเปˆเบšเบฑเบ™เบ—เบถเบ "เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบ"
  • เปเบฅเบฐเบกเบฑเบ™เบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป„เบงเบ‚เบถเป‰เบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ
  • B เบžเบฐเบเบฒเบเบฒเบกเบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เปเบ•เปˆเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เป‚เบ”เบ API เป€เบžเบฒเบฐเบงเปˆเบฒเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”. replace เบšเปเปˆเบเบปเบ‡เบเบฑเบšเป€เบงเบตเบŠเบฑเปˆเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™ Kubernetes เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เปเบ—เบ™เบ—เบตเปˆเบ‚เบญเบ‡ A.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, B เบˆเบฐเบ•เป‰เบญเบ‡เป€เบญเบปเบฒเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ, เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฑเบ”เปƒเบซเบกเปˆเปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ replace. เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเบ•เป‰เบฒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบชเบญเบ‡เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบ "เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบ" เบ›เบฐเบเบญเบšเบกเบต "AB" เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ” replace เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบ–เบทเบเบ—เบปเบ”เปเบ—เบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš replace, เบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเป€เบ›เบฑเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™, เบซเบผเบทเบšเบฒเบ‡เบชเปˆเบงเบ™เบ„เบทเบเบฑเบšเปƒเบ™ apply, เปเบ•เปˆเบ„เบปเบšเบ–เป‰เบงเบ™เบชเบปเบกเบšเบนเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก resourceVersion เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ metadata เบชเบฐเป€เบžเบฒเบฐ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ resourceVersion เบซเบผเบทเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบซเป‰เบšเปเปˆเปเบกเปˆเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เปเบกเปˆเบ™ replace - เบญเปˆเบฒเบ™โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹, เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบกเบฑเบ™โ€‹เปเบฅเบฐโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ—เบ™โ€‹เบกเบฑเบ™โ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบ—เบฑเบ™โ€‹เปƒเบ”โ€‹. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ kubectl, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

$ kubectl get deployment my-deployment -o json 
    | jq '.spec.template.spec.containers[0].env[1].value = "new value"' 
    | kubectl replace -f -

เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบชเบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ deployment.yaml เบšเปเปˆเบกเบตเบŠเบฑเบšเบชเบดเบ™ .metadata.resourceVersion

$ kubectl create -f deployment.yaml
$ kubectl replace -f deployment.yaml

เบ™เบตเป‰เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, i.e. "เป€เบžเบตเปˆเบก resourceVersion เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ metadata เบชเบฐเป€เบžเบฒเบฐ. "เป€เบงเบปเป‰เบฒเบœเบดเบ”เบšเป? เบšเปเปˆ, เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒ kubectl เปเบˆเป‰เบ‡เบเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ resourceVersion, เบกเบฑเบ™เบˆเบฐเบญเปˆเบฒเบ™เบกเบฑเบ™เบˆเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบฅเบฐเป€เบžเบตเปˆเบกเบกเบฑเบ™เปƒเบชเปˆเบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ replace. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบญเบตเบ‡เปƒเบชเปˆเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน, magic เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เป‰เบฒเบ‡ kubectl, เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบญเบตเบ‡เปƒเบชเปˆเบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš API. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบญเปˆเบฒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ PUT เบฎเป‰เบญเบ‡เบ‚เป.

เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ” patch เป„เบ”เป‰ - เบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เปเบ—เบ™

เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš API เป„เบ”เป‰. เปƒเบ™เบเปเบฅเบฐเบ™เบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ‡เบ„เบฑเบšเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบถเบšเปเบฅเบฐเบชเป‰เบฒเบ‡เบกเบฑเบ™เปƒเบซเบกเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ kubectl replace --force. เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบฑเบ™เบ—เบตเป€เบญเบปเบฒเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ recreates เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฒเบเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰. เบšเปเปˆเบกเบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ "force replace" เปƒเบ™ API, เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เบœเปˆเบฒเบ™ API, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบญเบ‡เบขเปˆเบฒเบ‡. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ” เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบถเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบกเบฑเบ™ gracePeriodSeconds เบซเบฒเบชเบนเบ™ (0) เปเบฅเบฐ propagationPolicy เปƒเบ™ "เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡" เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเป‰เบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ™เบตเป‰เบ„เบทเบ™เปƒเบซเบกเปˆเบ”เป‰เบงเบเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

เบ™เบณเปƒเบŠเป‰เบขเบนเปˆเบ‚เป‰เบฒเบ‡เป€เบŠเบตเบšเป€เบงเบต

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Kubernetes เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบœเบปเบ™ apply เบˆเบฒเบเบ™เบฑเป‰เบ™ kubectl เปƒเบ™ Kubernetes API. เป€เบซเบ”เบœเบปเบ™ apply เบกเบตเบขเบนเปˆเปƒเบ™ Kubernetes 1.18 เบœเปˆเบฒเบ™ kubectl apply --server-side เบซเบผเบทเบœเปˆเบฒเบ™ API เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ PATCH ั content-type application/apply-patch+YAML.

เบซเบกเบฒเบเป€เบซเบ”: JSON เบเบฑเบ‡เป€เบ›เบฑเบ™ YAML เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบฑเบ™ JSON เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ content-type เบˆเบฐ application/apply-patch+yaml.

เบ™เบญเบเบˆเบฒเบเป€เบซเบ”เบœเบปเบ™เบ™เบฑเป‰เบ™ kubectl เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™เบœเปˆเบฒเบ™ API, apply เปƒเบ™เบ”เป‰เบฒเบ™เป€เบŠเบตเบŸเป€เบงเบต, เบ•เบดเบ”เบ•เบฒเบกเบงเปˆเบฒเปƒเบœเป€เบ›เบฑเบ™เบœเบนเป‰เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบญเบฑเบ™เบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ–เป‰เบฒ apply เปƒเบ™เบ”เป‰เบฒเบ™เป€เบŠเบตเบŸเป€เบงเบตเบˆเบฐเปเบœเปˆเบซเบผเบฒเบ, เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเปเบšเบšเบชเบฒเบเบปเบ™เบˆเบฐเบ›เบฒเบเบปเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, kubectl, Pulumi เบซเบผเบท Terraform, GitOps, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบชเบฐเบ„เบดเบšเบ—เบตเปˆเบ‚เบฝเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒ.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบซเบงเบฑเบ‡โ€‹เบงเปˆเบฒโ€‹เบžเบฒเบšโ€‹เบฅเบงเบกโ€‹เบชเบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เปƒเบ™โ€‹เบเบธเปˆเบกโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ—เปˆเบฒเบ™. เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบ—เบปเบ”เปเบ—เบ™; เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, เปเบ•เปˆเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน, เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒ; เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป„เบงเป‰เบงเบฒเบ‡เปƒเบˆ Google เบซเบผเบท StackOerflow เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒ "kubernetes apply vs replace". เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบˆเบปเบ™เบเปˆเบงเบฒเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบˆเบฐเบ—เบปเบ”เปเบ—เบ™เบ„เปเบฒเบ•เบญเบšเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™.

เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡ Kubernetes เบชเบฐเบซเบกเบฑเบ, เบ—เบปเบ”เปเบ—เบ™เปเบฅเบฐ patch

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™