インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

KubernetesでapplyでErrorが出る時は作り直した方がいい

事象

レプリカセットのyamlに不備があったので修正してapplyするも以下エラーに。

$ kubectl apply -f hoge.yaml
Error from server (Conflict): error when applying patch:...
Resource: "apps/v1, Resource=replicasets", GroupVersionKind: "apps/v1, Kind=ReplicaSet"
Name: "hoge", Namespace: "default"
for: "hoge.yaml": Operation cannot be fulfilled on replicasets.apps "hoge": the object has been modified; please apply your changes to the latest version and try again

Statusも含まれたyamlファイルだったためか競合している模様。

対応

replicasetのdeleteを行った後にapplyするとうまく動きました。

yamlファイルにstatusは入れない方がいいですね。(要は動いているオブジェクトの-o=yamlをそのまま保持する)