ื’ืขื”ืขืจื™ืง ืคืึทืจื’ืœื™ื™ึทืš ืคื•ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก ืฆื•ืœื™ื™ื’ืŸ, ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืื•ืŸ ืคึผืึทื˜ืฉ

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

ื’ืขื”ืขืจื™ืง ืคืึทืจื’ืœื™ื™ึทืš ืคื•ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก ืฆื•ืœื™ื™ื’ืŸ, ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืื•ืŸ ืคึผืึทื˜ืฉ

ืฆื™ ื–ื•ื›ืŸ ืื•ื™ืฃ Google ื“ื™ ืคืจืึทื–ืข "kubernetes ืฆื•ืœื™ื™ื’ืŸ ื•ื•ืก ืคืึทืจื‘ื™ื™ึทื˜ืŸ" ืื™ื– ืœื™ื’ืŸ ืขื ื˜ืคืขืจ ืื•ื™ืฃ StackOverflow, ื•ื•ืืก ืื™ื– ื ื™ืฉื˜ ืจื™ื›ื˜ื™ื’. ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ื˜ "ืงื•ื‘ืขืจื ืขื˜ืขืก ืฆื•ืœื™ื™ื’ืŸ ื•ื•ืก ืœืึทื˜ืข" ื“ืขืจ ืขืจืฉื˜ืขืจ ืœื™ื ืง ืื™ื– ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ kubectl patch, ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืคืึทืจื’ืœื™ื™ึทืš apply ะธ patch. ื“ืขืจ ืึทืจื˜ื™ืงืœ ื•ื•ืขื˜ ืงื•ืงืŸ ืื™ืŸ ื“ื™ ืคืึทืจืฉื™ื“ืขื ืข ืึธืคึผืฆื™ืขืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื“ื™ ื’ืขื”ืขืจื™ืง ื ื•ืฆืŸ ืคื•ืŸ ื™ืขื“ืขืจ ืื™ื™ื ืขืจ.

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

Kubernetes CLI

ืื•ื™ื‘ ืื™ืจ ืฉื•ื™ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ Kubernetes ืงืœืึทืกื˜ืขืจื– ื“ื•ืจืš ื“ื™ CLI, ืื™ืจ ื–ืขื ื˜ ืฉื•ื™ืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ apply ะธ edit. ืžืึทื ืฉืึทืคึฟื˜ apply ืœื™ื™ืขื ื˜ ื“ื™ ืจื™ืกืึธืจืก ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ืื•ืŸ ืžืื›ื˜ ืึท "ื•ืคึผืกืขืจื˜" ืฆื• ื“ื™ ืงื•ื‘ืขืจื ืขื˜ืขืก ืงื ื•ื™ืœ, ื“.ื”. ืงืจื™ื™ื™ืฅ ื“ื™ ืžื™ื˜ืœ ืื•ื™ื‘ ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืขืงืกื™ืกื˜ื™ืจืŸ ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืขืก ืื•ื™ื‘ ืขืก ื™ื’ื–ื™ืกืฅ. ืžืึทื ืฉืึทืคึฟื˜ 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 ื ื™ืฆืŸ ืขื˜ืœืขื›ืข ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš. ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื›ืึทื ื“ืึทืœื– ื“ื™ ืžืขื˜ื”ืึธื“ืก ื“ื•ืจืš ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก ื ื™ืฆืŸ ื“ื™ ืžืขื˜ื”ืึธื“ืก PUT ะธ PATCH... ื•ื•ืขืจื™ืŸ update ะธ replace ื ื•ืฆืŸ PUTืื•ืŸ patch, ืงื™ื™ืŸ ืขื ื™ืŸ ื•ื•ื™ ื ื™ืฉื˜ื™ืง ืขืก ืงืขืŸ ื–ื™ื™ืŸ, ื ื™ืฆื˜ PATCH.

ืขืก ื–ืึธืœ ื–ื™ื™ึทืŸ ืื ื’ืขื•ื•ื™ื–ืŸ ืึทื– kubectl ืื•ื™ืš ืึทืจื‘ืขื˜ ืžื™ื˜ ืงืœืึทืกื˜ืขืจื– ื“ื•ืจืš ืึทืคึผื™. ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, kubectlืื™ื– ืึท ืจืึทืคึผืขืจ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคึฟืึทืจ ื“ื™ Go ืฉืคึผืจืึทืš, ื•ื•ืึธืก ืœืึทืจื’ืขืœื™ ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืกืึทื‘ืงืึทืžืึทื ื“ื– ืื™ืŸ ืึท ืžืขืจ ืกืึธืœื™ื“ ืื•ืŸ ืœื™ื™ื ืขื•ื•ื“ื™ืง ืคืึธืจืขื ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ื ืึธืจืžืึทืœ API ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ื™ ืื™ืจ ืงืขืŸ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื‘ืืžืขืจืงื˜, ื“ืขืจ ืื•ืคึฟืŸ apply ืื™ื– ื ื™ืฉื˜ ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืคึผืึทืจืึทื’ืจืึทืฃ. ื“ืขืจื•ื•ื™ื™ึทืœ (ืžื™ื™ึท 2020, ืึทืคึผืคึผืจืึธืงืก. ืื™ื‘ืขืจื–ืขืฆืขืจ) ืึทืœืข ืœืึธื’ื™ืง kubectl apply, ื“.ื”. ืงืจื™ื™ื™ื˜ื™ื ื’ ื ื™ื˜-ืขื’ื–ื™ืกื˜ืึทื ื˜ ืจืขืกื•ืจืกืŸ ืื•ืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืึธื ืขืก, ืึทืจื‘ืขื˜ ืœืขื’ืึทืžืจืข ืื•ื™ืฃ ื“ื™ ืงืึธื“ ื–ื™ื™ึทื˜ kubectl. ืžืขืŸ ืžืื›ื˜ ืื ืฉื˜ืจืขื ื’ื•ื ื’ืขืŸ ืื•ื™ืฃ ืœืึธื’ื™ืง ืึทืจื™ื‘ืขืจืคื™ืจืŸ apply ืฆื• ื“ื™ API ื–ื™ื™ึทื˜, ืึธื‘ืขืจ ืขืก ืื™ื– ื ืึธืš ืื™ืŸ ื‘ื™ืชื. ืื™ืš ื•ื•ืขืœ ืฉืจื™ื™ื‘ืŸ ื•ื•ื™ื™ื˜ืขืจ ื•ื•ื™ื™ื˜ืขืจ.

ืคึผืึทื˜ืฉ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜

ื‘ืขืกื˜ืขืจ ื’ืขื ื™ืฆื˜ patch, ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืžื™ื˜ืœ. ื“ืึธืก ืื™ื– ื•ื•ื™ ื‘ื™ื™ื“ืข ืงืœื™ืขื ื˜ ืœื™ื™ื‘ืจืขืจื™ื– ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ Kubernetes API ืื•ืŸ kubectl (ื ื™ื˜ ื—ื™ื“ื•ืฉ, ื–ื™ื ื˜ ืขืก ืื™ื– ืึท ืจืึทืคึผืขืจ ืคึฟืึทืจ ื“ื™ ืงืœื™ืขื ื˜ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ืึทืคึผืคึผืจืึธืงืก. ืื™ื‘ืขืจื–ืขืฆืขืจ).

ืึทืจื‘ืขื˜ ืกื˜ืจืึทื˜ื™ื“ื–ืฉื™ืงืœื™

ืึทืœืข ื˜ื™ืžื– kubectl apply, edit ะธ patch ื ื•ืฆืŸ ื“ืขื ืื•ืคึฟืŸ PATCH ืื™ืŸ ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืึทืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืžื™ื˜ืœ. ืื•ื™ื‘ ืื™ืจ ื“ืขืœื•ื• ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืึทืžืึทื ื“ื– ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ, ืึทืœืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ ื ื•ืฆืŸ ื“ืขื ืฆื•ื’ืึทื ื’ ืกื˜ืจืึทื˜ื™ื“ื–ืฉื™ืง ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคึผืึทื˜ืฉื™ื ื’ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืจืขืกื•ืจืกืŸ, ื›ืึธื˜ืฉ ื“ื™ ื‘ืึทืคึฟืขืœ patch ืงืขืŸ ื ื•ืฆืŸ ืื ื“ืขืจืข ืึทืคึผืจืึธื•ื˜ืฉื™ื– (ืžืขืจ ืื•ื™ืฃ ื“ืขื ืื•ื ื˜ืŸ). ื“ื™ ืกื˜ืจืึทื˜ื™ื“ื–ืฉื™ืง ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคึผืึทื˜ื˜ืฉื™ื ื’ ืฆื•ื’ืึทื ื’ ืคืจื•ื•ื•ื˜ ืฆื• "ื‘ืึทืงื•ืžืขืŸ ืขืก ืจืขื›ื˜" ื“ื•ืจืš ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ื™ ืกืึทืคึผืœื™ื™ื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืžื™ื˜ ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื–. ืžืขืจ ืกืคึผืึทืกื™ืคื™ืงืœื™, ืขืก ืคืจื•ื•ื•ื˜ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื‘ื™ื™ื“ืข ืึทื‘ื“ื–ืฉืขืงืฅ ืื•ืŸ ืขืจื™ื™ื–, ื•ื•ืึธืก ืžื™ื˜ืœ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ื˜ืขื ื“ ืฆื• ื–ื™ื™ืŸ ืึทื“ืึทื˜ื™ื•ื•. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ patch ืžื™ื˜ ืึท ื ื™ื™ึทืข ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื™ืŸ ื“ื™ ืคึผืึธื“ ืงืึทื ื˜ื™ื™ื ืขืจ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ, ื– ืึทื– ืกื•ื•ื™ื•ื•ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืฆื• ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืฆื• ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืกื•ื•ื™ื•ื•ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืืœื ื•ื•ื™ ืึธื•ื•ื•ืขืจืจื™ื™ื˜ื™ื ื’ ื–ื™ื™. ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื“ืขื ืฆื•ื’ืึทื ื’, ืื™ืจ ืžื•ื–ืŸ ืฆื•ื•ื™ื ื’ืขืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจ ื•ื•ืขืจื˜ ืฆื• ื ืึทืœ ืื™ืŸ ื“ื™ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ื•ื•ืึธืก ืคื•ืŸ ื“ื™ ื˜ื™ืžื– kubectl ืื™ื– ืขืก ื‘ืขืกื˜ืขืจ ืฆื• ื ื•ืฆืŸ ืคึฟืึทืจ ืึทืคึผื“ื™ื™ื˜ื™ื ื’?

ืื•ื™ื‘ ืื™ืจ ืฉืึทืคึฟืŸ ืื•ืŸ ืคื™ืจืŸ ื“ื™ื™ืŸ ืจืขืกื•ืจืกืŸ ื ื™ืฆืŸ kubectl apply, ื•ื•ืขืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ืฉื˜ืขื ื“ื™ืง ื ื•ืฆืŸ kubectl applyืื–ื•ื™ ืื– kubectl ืงืขืŸ ืคื™ืจืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ืŸ ืจืขื›ื˜ ืฉืคึผื•ืจ ื’ืขื‘ืขื˜ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉ ืฉื˜ืขื ื“ื™ืง ื ื•ืฆืŸ apply ืื™ื– ืึทื– ืขืก ื”ืืœื˜ ืฉืคึผื•ืจ ืคื•ืŸ ืึท ืคืจื™ืขืจ ื’ืขื•ื•ืขื ื“ื˜ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทืŸ, ืึทืœืึทื•ื™ื ื’ ืขืก ืฆื• ื•ื•ื™ืกืŸ ื•ื•ืขืŸ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ ื–ืขื ืขืŸ ื‘ืคื™ืจื•ืฉ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ. ื“ืขื ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื ื•ืฆืŸ apply ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ, ื‘ืฉืขืช ืึท ื ืึธืจืžืึทืœ ืกื˜ืจืึทื˜ื™ื“ื–ืฉื™ืง ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ. ื˜ื™ืžื– edit ะธ patch ื˜ืึธืŸ ื ื™ื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื”ืขืจื•ืช ืึทื– kubectl apply ื ื™ืฆื˜ ืฆื• ืฉืคึผื•ืจ ื–ื™ื™ึทืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืึทื–ื•ื™ ืงื™ื™ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื˜ืจืึทืงื˜ ืื•ืŸ ื’ืขืžืื›ื˜ ื“ื•ืจืš ื“ื™ Kubernetes API, ืึธื‘ืขืจ ื’ืขืžืื›ื˜ ื“ื•ืจืš ืงืึทืžืึทื ื“ื– edit ะธ patch, ื•ืžื–ืขื™ืง ืฆื• ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืงืึทืžืึทื ื“ื– applyื•ื•ืึธืก ืื™ื– apply ื˜ื•ื˜ ื ื™ืฉื˜ ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื–ื™ื™ ืืคื™ืœื• ืื•ื™ื‘ ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ื“ื™ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคึฟืึทืจ apply (ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื–ืื’ื˜ ืึทื– edit ะธ patch ืžืึทื›ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืฆื• ื“ื™ ื”ืขืจื•ืช ื’ืขื ื™ืฆื˜ apply, ืึธื‘ืขืจ ืื™ืŸ ืคื™ืจ - ื ื™ื˜).

ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ ื“ืขื ื‘ืึทืคึฟืขืœ apply, ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ื™ editืื•ืŸ patch, ื˜ืฉื•ื–ื™ื ื’ ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ืึธืก ืื™ื– ื‘ืขืกื˜ืขืจ ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ื™ ืขื ื“ืขืจื•ื ื’ ื•ื•ืึธืก ืื™ื– ื’ืขืžืื›ื˜. ื•ื•ืขืŸ ืึทื“ื™ื ื’ ืื•ืŸ ื˜ืฉืึทื ื’ื™ื ื’ BOM ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ื‘ื™ื™ื“ืข ืึทืคึผืจืึธื•ื˜ืฉื™ื– ื–ืขื ืขืŸ ื‘ืขืขืจืขืš ื“ื™ ื–ืขืœื‘ืข. ื•ื•ืขืŸ ื“ื™ืœื™ื˜ื™ื ื’ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืึธื“ืขืจ ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ edit ื‘ื™ื›ื™ื™ื•ื•ื– ื•ื•ื™ ืึท ืื™ื™ืŸ-ืฆื™ื™ึทื˜ ืงืึทื˜ืขืจ apply, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื‘ืขื›ืขืกืงืขื ื•ื•ืึธืก ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ื™ ืื™ื™ื“ืขืจ ืื•ืŸ ื ืึธืš ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืขื“ื™ื˜ื™ื“, ืึทื–ื•ื™ ืื™ืจ ืงืขื ืขืŸ ื‘ืคื™ืจื•ืฉ ืึทืจืึธืคึผื ืขืžืขืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ืึท ืžื™ื˜ืœ. ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืคื™ืจื•ืฉ ืฉื˜ืขืœืŸ ื“ื™ ืคืึทืจืžืึธื’ ื•ื•ืขืจื˜ ืฆื• ื ืึทืœ ืื™ืŸ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคึฟืึทืจ patchืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืขืก ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ. ืจื™ืžื•ื•ื•ื™ื ื’ ืึท ืžืขื ื’ืข ืขืœืขืžืขื ื˜ ืžื™ื˜ ืกื˜ืจืึทื˜ื™ื“ื–ืฉื™ืง ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคึผืึทื˜ื˜ืฉื™ื ื’ ืื™ื– ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ื•ื•ื™ื™ึทืœ ืขืก ืจื™ืงื•ื•ื™ื™ืขืจื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื–. ื–ืขืŸ ืื ื“ืขืจืข ืึทืคึผื’ืจื™ื™ื“ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืื•ื ื˜ืŸ ืคึฟืึทืจ ืžืขืจ ื•ื•ื™ื™ืึทื‘ืึทืœ ืึทืœื˜ืขืจื ืึทื˜ื™ื•ื•ืขืก.

ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืžืขื˜ื”ืึธื“ืก ืื™ืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื•ื•ืึธืก ื‘ื™ื›ื™ื™ื•ื•ื– ืขื ืœืขืš ืฆื• ื“ื™ ืงืึทืžืึทื ื“ื– ืื•ื™ื‘ืŸ kubectl, ื–ืึธืœ ื–ื™ื™ืŸ ืฉื˜ืขืœืŸ ืื™ืŸ ืจื™ืงื•ื•ืขืก content-type ะฒ application/strategic-merge-patch+json. ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ืŸ ืึท ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืคื™ืจื•ืฉ ืฉื˜ืขืœืŸ ื–ื™ื™ืขืจ ื•ื•ืึทืœื•ืขืก ืฆื• ื ืึทืœ ืื•ื™ืฃ ืึท ืขื ืœืขืš ื•ื•ืขื’ kubectl patch. ืื•ื™ื‘ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ, ืื™ืจ ื–ืึธืœ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื– ืื™ืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืึธื“ืขืจ ื ื•ืฆืŸ ืึท ืึทื ื“ืขืจืฉ ืฆื•ื’ืึทื ื’ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ.

ืื ื“ืขืจืข ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ

Kubernetes ืฉื˜ื™ืฆื˜ ืฆื•ื•ื™ื™ ืื ื“ืขืจืข ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืึทืคึผืจืึธื•ื˜ืฉื™ื–: JSON ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืœืึทื˜ืข ะธ JSON ืคึผืึทื˜ืฉ. ื“ื™ JSON ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคึผืึทื˜ืฉ ืฆื•ื’ืึทื ื’ ื ืขืžื˜ ืึท ืคึผืึทืจื˜ื™ื™ื™ืฉ Kubernetes ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื•ื•ื™ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ืื•ืŸ ืฉื˜ื™ืฆื˜ ืžืขืจื“ื–ืฉื™ื ื’ ืึทื‘ื“ื–ืฉืขืงืฅ ืขื ืœืขืš ืฆื• ื“ื™ ืกื˜ืจืึทื˜ื™ื“ื–ืฉื™ืง ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคึผืึทื˜ื˜ืฉื™ื ื’ ืฆื•ื’ืึทื ื’. ื“ืขืจ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ ื“ื™ ืฆื•ื•ื™ื™ ืื™ื– ืึทื– ืขืก ืฉื˜ื™ืฆื˜ ื‘ืœื•ื™ื– ืžืขื ื’ืข ืคืึทืจื‘ื™ื™ึทื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจ ืžืขื ื’ืข ืื™ืŸ ื“ื™ ืคึผืึธื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ื“ืขื ืžื™ื˜ืœ ืึทื– ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ ืึท JSON ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืœืึทื˜ืข, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืคื•ืœืฉื˜ืขื ื“ื™ืง ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืึทืœืข ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ืŸ ืคืึทืœ ืงื™ื™ืŸ ืคืึทืจืžืึธื’ ืคื•ืŸ ืงื™ื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจ ืขื ื“ืขืจื•ื ื’ืขืŸ. ื“ืขืจ ืฆื•ื’ืึทื ื’ ืื™ื– ื ื•ืฆื™ืง ืคึฟืึทืจ ืจื™ืžื•ื•ื•ื™ื ื’ ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ืึท ืžืขื ื’ืข ืื™ืŸ ืึท BOM. ืื•ื™ืฃ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ JSON ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืœืึทื˜ืข ื ื™ืฆืŸ kubectl patch --type=merge. ื•ื•ืขืŸ ืื™ืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ื™ Kubernetes API, ืื™ืจ ื–ืึธืœ ื ื•ืฆืŸ ื“ื™ ื‘ืขื˜ืŸ ืื•ืคึฟืŸ PATCH ืื•ืŸ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ content-type ะฒ application/merge-patch+json.

ื“ื™ JSON ืœืึทื˜ืข ืฆื•ื’ืึทื ื’, ืืœื ื•ื•ื™ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืึท ืคึผืึทืจื˜ื™ื™ื™ืฉ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ืึท ืžื™ื˜ืœ, ื ื™ืฆื˜ ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืžืึทื›ืŸ ืฆื• ื“ื™ ืžื™ื˜ืœ ื•ื•ื™ ืึท ืžืขื ื’ืข, ืื™ืŸ ื•ื•ืึธืก ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜ ืคื•ืŸ ื“ื™ ืžืขื ื’ืข ืจืขืคึผืจืึทื–ืขื ืฅ ืึท ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ ืฆื• ื“ื™ ืžื™ื˜ืœ. ื“ืขืจ ืฆื•ื’ืึทื ื’ ืื™ื– ืึท ืžืขืจ ืคืœืขืงืกืึทื‘ืึทืœ ืื•ืŸ ืฉื˜ืึทืจืง ื•ื•ืขื’ ืฆื• ืื•ื™ืกื“ืจื™ืงืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืžืื›ื˜, ืึธื‘ืขืจ ืื™ืŸ ื“ื™ ืคึผืจื™ื™ึทื– ืคื•ืŸ ืœื™ืกื˜ื™ื ื’ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ, ื ื™ื˜-ืงื•ื‘ืขืจื ืขื˜ืขืก ืคึฟืึธืจืžืึทื˜, ืืœื ื•ื•ื™ ืฆื• ืฉื™ืงืŸ ืึท ืคึผืึทืจื˜ื™ื™ื™ืฉ ืžื™ื˜ืœ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ืื™ืŸ kubectl ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ JSON ืคึผืึทื˜ืฉ ื ื™ืฆืŸ kubectl patch --type=json. ื•ื•ืขืŸ ื ื™ืฆืŸ ื“ื™ Kubernetes API, ื“ืขื ืฆื•ื’ืึทื ื’ ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ื™ ื‘ืขื˜ืŸ ืื•ืคึฟืŸ PATCH ืื•ืŸ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ content-type ะฒ application/json-patch+json.

ืžื™ืจ ื“ืึทืจืคึฟืŸ ื‘ื˜ื—ื•ืŸ - ื ื•ืฆืŸ ืคืึทืจื‘ื™ื™ึทื˜ืŸ

ืื™ืŸ ืขื˜ืœืขื›ืข ืงืึทืกืขืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ืงื™ื™ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ืึท ืžื™ื˜ืœ ืฆื•ื•ื™ืฉืŸ ื“ื™ ืฆื™ื™ื˜ ื•ื•ืขืŸ ื“ื™ ืžื™ื˜ืœ ืื™ื– ืœื™ื™ืขื ืขืŸ ืื•ืŸ ื•ื•ืขืŸ ืขืก ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜. ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืื™ืจ ื–ืึธืœ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืึทืœืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื˜ืึธืžื™ืฉืข. ืื™ืŸ ื“ืขื ืคืึทืœ, ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืจืขืกื•ืจืกืŸ ืื™ืจ ื–ืึธืœ ื ื•ืฆืŸ replace. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ืึท ืงืึธื ืคื™ื’ืžืึทืคึผ ืžื™ื˜ ืึท ื˜ืึธืžื‘ืึทื ืง ื•ื•ืึธืก ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื•ืจืš ืงื™ื™ืคืœ ืงื•ื•ืืœืŸ, ืื™ืจ ื–ืึธืœ ื–ื™ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ืฆื•ื•ื™ื™ ืงื•ื•ืืœืŸ ื˜ืึธืŸ ื ื™ื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื˜ืึธืžื‘ืึทื ืง ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืึทื–ื•ื™ ืึทื– ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืื™ื– ืคืึทืจืคืึทืœืŸ. ืฆื• ื‘ืึทื•ื•ื™ื™ึทื–ืŸ, ื™ืžืึทื“ื–ืฉืึทืŸ ืึท ืกื™ืงื•ื•ืึทื ืก ืคื•ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ ื ื™ืฆืŸ ื“ืขื ืฆื•ื’ืึทื ื’ patch:

  • ื ืื•ืŸ ื‘ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ ืคึฟื•ืŸ ื“ื™ API
  • ื™ืขื“ืขืจ ืื™ื™ื ืขืจ ืœืึธื•ืงืึทืœื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ื“ื•ืจืš ื™ื ืงืจืึทืžืึทื ื˜ื™ื ื’ ื“ื™ ื˜ืึธืžื‘ืึทื ืง ืžื™ื˜ ืื™ื™ืŸ ืื•ืŸ ืื•ื™ืš ืึทื“ื™ื ื’ "ื" ืึธื“ืขืจ "ื‘" ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™ ืฆื• ื“ื™ "ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜-ื“ื•ืจืš" ื˜ืึธืŸ
  • ืื•ืŸ ืขืก ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืžื™ื˜ืœ ืึท ื‘ื™ืกืœ ืคืึทืกื˜ืขืจ
  • ื‘ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืžื™ื˜ืœ

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

  • ื ืื•ืŸ ื‘ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ ืคึฟื•ืŸ ื“ื™ API
  • ื™ืขื“ืขืจ ืื™ื™ื ืขืจ ืœืึธื•ืงืึทืœื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ื“ื•ืจืš ื™ื ืงืจืึทืžืึทื ื˜ื™ื ื’ ื“ื™ ื˜ืึธืžื‘ืึทื ืง ืžื™ื˜ ืื™ื™ืŸ ืื•ืŸ ืื•ื™ืš ืึทื“ื™ื ื’ "ื" ืึธื“ืขืจ "ื‘" ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™ ืฆื• ื“ื™ "ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜-ื“ื•ืจืš" ื˜ืึธืŸ
  • ืื•ืŸ ืขืก ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ื™ ืžื™ื˜ืœ ืึท ื‘ื™ืกืœ ืคืึทืกื˜ืขืจ
  • ื‘ ืคืจื•ื•ื•ื˜ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืžื™ื˜ืœ, ืึธื‘ืขืจ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืื™ื– ืคืืจื•ื•ืืจืคืŸ ื“ื•ืจืš ื“ื™ API ื•ื•ื™ื™ึทืœ ื“ื™ ืžื™ื˜ืœ ื•ื•ืขืจืกื™ืข ืื™ื– ืื™ืŸ ื“ื™ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทืŸ replace ืงืขืŸ ื ื™ืฉื˜ ืฉื˜ื™ืžืขืŸ ืžื™ื˜ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืžื™ื˜ืœ ืื™ืŸ Kubernetes ื•ื•ื™ื™ึทืœ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืžื™ื˜ืœ ืื™ื– ื’ืขื•ื•ืืงืกืŸ ื“ื•ืจืš ื ืคืึทืจื‘ื™ื™ึทื˜ ืึธืคึผืขืจืึทืฆื™ืข.

ืื™ืŸ ื“ื™ ืื•ื™ื‘ืŸ ืคืึทืœ, ื‘ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืฉื™ื™ึทืขืš-ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืžื™ื˜ืœ, ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ื ื™ื™ึทืข ืฉื˜ืึทื˜ ืื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ื•ื•ื™ื“ืขืจ replace. ื“ืึธืก ื•ื•ืขื˜ ืžืึทื›ืŸ ื“ื™ ื˜ืึธืžื‘ืึทื ืง ื™ื ืงืจืึทืžืึทื ื˜ื™ื“ ืžื™ื˜ ืฆื•ื•ื™ื™ ืื•ืŸ ื“ื™ "ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜-ื“ื•ืจืš" ื˜ืึธืŸ ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ "ืึทื‘" ืื™ืŸ ื“ื™ ืกื•ืฃ.

ื“ื™ ืื•ื™ื‘ืŸ ื‘ื™ื™ึทืฉืคึผื™ืœ ื™ืžืคึผืœื™ื™ื– ืึทื– ื•ื•ืขืŸ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ replace ื“ื™ ื’ืื ืฆืข ืžื™ื˜ืœ ืื™ื– ื’ืึธืจ ืจื™ืคึผืœื™ื™ืกื˜. ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ replace, ืžื•ื–ืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื˜ื™ื™ืœื•ื•ื™ื™ึทื–, ืึธื“ืขืจ ืื™ืŸ ืคึผืึทืจืฅ ื•ื•ื™ ืื™ืŸ apply, ืึธื‘ืขืจ ื’ืึทื ืฅ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ื“ืขืจืฆื• resourceVersion ืื™ืŸ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืžืขื˜ืึทื“ืึทื˜ืึท. ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื ื™ื˜ ืขื ื™ื™ื‘ืึทืœื“ 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

ื“ืืก ื•ื•ืืœื˜ ืœื›ืื•ืจื” ืกืชื™ืจื” ื•ื•ืืก ืžืขืŸ ื”ืื˜ ืื•ื™ื‘ืŸ ื’ืขื–ืื’ื˜, ื“.ื”. "ืฆื•ื’ืขื‘ืŸ resourceVersion ืื™ืŸ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืžืขื˜ืึทื“ืึทื˜ืึท." ืื™ื– ืขืก ืคืึทืœืฉ ืฆื• ื–ืึธื’ืŸ ืึทื–? ื ื™ื™ืŸ, ืขืก ืื™ื– ื ื™ืฉื˜, ื•ื•ื™ื™ึทืœ ืื•ื™ื‘ kubectl ื ืึธื˜ื™ืฅ ื•ื•ืึธืก ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ resourceVersion, ืขืก ื•ื•ืขื˜ ืœื™ื™ืขื ืขืŸ ืขืก ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ ืื•ืŸ ืœื™ื™ื’ืŸ ืขืก ืฆื• ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืื™ืจ ืกืคึผืขืกื™ืคื™ืขื“, ืื•ืŸ ื‘ืœื•ื™ื– ื“ืขืžืึธืœื˜ ื•ื™ืกืคื™ืจืŸ ืขืก replace. ื•ื•ื™ื™ึทืœ ื“ืึธืก ืื™ื– ืคึผืึทื˜ืขื ื˜ืฉืึทืœื™ ื’ืขืคืขืจืœืขืš ืื•ื™ื‘ ืื™ืจ ืคืึทืจืœืึธื–ื  ืื•ื™ืฃ ืึทื˜ืึธืžื™ืกื™ื˜ื™, ื“ื™ ืžืึทื’ื™ืฉ ืึทืจื‘ืขื˜ ืœืขื’ืึทืžืจืข ืื•ื™ืฃ ื“ื™ ื–ื™ื™ึทื˜ kubectl, ืื™ืจ ื–ืึธืœ ื ื™ืฉื˜ ืคืึทืจืœืึธื–ื  ืื•ื™ืฃ ืขืก ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ ืงืœื™ืขื ื˜ ืœื™ื™ื‘ืจืขืจื™ื– ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ื™ API. ืื™ืŸ ื“ืขื ืคืึทืœ ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ื“ื™ ืงืจืึทื ื˜ ืžื™ื˜ืœ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’, ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืขืก ืื•ืŸ ื“ืขืžืึธืœื˜ ื•ื™ืกืคื™ืจืŸ PUT ื‘ืขื˜ืŸ.

ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ืžืึทื›ืŸ ืึท ืœืึทื˜ืข - ืžื™ืจ ื˜ืึธืŸ ืึท ืคืึทืจื‘ื™ื™ึทื˜

ืžืืœ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžืึทื›ืŸ ืขื˜ืœืขื›ืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื›ืึทื ื“ืึทืœื“ ื“ื•ืจืš ื“ื™ ืึทืคึผื™. ืื™ืŸ ื“ื™ ืงืึทืกืขืก, ืื™ืจ ืงืขื ืขืŸ ืฆื•ื•ื™ื ื’ืขืŸ ืคืึทืจื‘ื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ ื“ื•ืจืš ื“ื™ืœื™ื˜ื™ื ื’ ืื•ืŸ ืฉื™ื™ึทืขืš-ืฉืืคืŸ ืขืก. ื“ืขื ืื™ื– ื’ืขื˜ืืŸ ื ื™ืฆืŸ kubectl replace --force. ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ื’ืœื™ื™ืš ืจื™ืžื•ื•ื•ื– ื“ื™ ืจืขืกื•ืจืกืŸ ืื•ืŸ ื“ืขืžืึธืœื˜ ืจื™ืงืจื™ื™ื™ืฅ ื–ื™ื™ ืคึฟื•ืŸ ื“ื™ ืกืึทืคึผืœื™ื™ื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ืขืก ืื™ื– ืงื™ื™ืŸ "ืงืจืึทืคื˜ ืคืึทืจื‘ื™ื™ึทื˜ืŸ" ื”ืึทื ื“ืœืขืจ ืื™ืŸ ื“ื™ API, ืื•ืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก ื“ื•ืจืš ื“ื™ API, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืฆื•ื•ื™ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื™ืกืžืขืงืŸ ื“ื™ ืžื™ื˜ืœ ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืคึฟืึทืจ ืขืก gracePeriodSeconds ืฆื• ื ื•ืœ (0) ืื•ืŸ propagationPolicy ืื™ืŸ "ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜" ืื•ืŸ ื“ืขืžืึธืœื˜ ืฉื™ื™ึทืขืš-ืฉืึทืคึฟืŸ ื“ืขื ืžื™ื˜ืœ ืžื™ื˜ ื“ื™ ื’ืขื‘ืขื˜ืŸ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื–.

ื•ื•ืืจืขื ื•ื ื’: ื“ืขืจ ืฆื•ื’ืึทื ื’ ืื™ื– ืคึผืึทื˜ืขื ื˜ืฉืึทืœื™ ื’ืขืคืขืจืœืขืš ืื•ืŸ ืงืขืŸ ืคื™ืจืŸ ืฆื• ืึทืŸ ืึทื ื“ื™ืคื™ื™ื ื“ ืฉื˜ืึทื˜.

ืฆื•ืœื™ื™ื’ืŸ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜

ื•ื•ื™ ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ, ืงื•ื‘ืขืจื ืขื˜ืขืก ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื–ืขื ืขืŸ ืืจื‘ืขื˜ืŸ ืื•ื™ืฃ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ื“ื™ ืœืึธื’ื™ืง 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 ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ื˜ ืคึฟืึทืจ "ืงื•ื‘ืขืจื ืขื˜ืขืก ืฆื•ืœื™ื™ื’ืŸ ื•ื•ืก ืคืึทืจื‘ื™ื™ึทื˜ืŸ". ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ื‘ื™ื– ื“ืขื ืึทืจื˜ื™ืงืœ ืจื™ืคึผืœื™ื™ืกื™ื– ื“ื™ ืงืจืึทื ื˜ ืขื ื˜ืคืขืจ.

ื’ืขื”ืขืจื™ืง ืคืึทืจื’ืœื™ื™ึทืš ืคื•ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก ืฆื•ืœื™ื™ื’ืŸ, ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืื•ืŸ ืคึผืึทื˜ืฉ

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

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