Kubernetes ืืื ืขืืืขืืข ืึธืคึผืฆืืขืก ืคึฟืึทืจ ืึทืคึผืืืืืื ื ืจืขืกืืจืกื: ืฆืืืืืื, ืจืขืืึทืืืจื, ืืึทืืข ืืื ืคืึทืจืืืึทืื. ืขืก ืืื ืฆืขืืืฉืื ื ืืืขืื ืืืึธืก ืืขืืขืจ ืืืื ืขืจ ืืื ืืื ืืืขื ืฆื ื ืืฆื ืืื. ืืื ืก ืคืืืืจ ืขืก ืืืืก.
ืฆื 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
, ืืืื ืืืจ ืึทืจืืขื ืืื ืงืืึทืกืืขืจื ืืืจื 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 ืฉืืืฆื ืฆืืืื ืื ืืขืจืข ืืขืจืืืึทื ืืืงื ืึทืคึผืจืึธืืืฉืื: 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