Profile picture

[k8s] Kubernetes edit error : error: Edit cancelled, no valid changes were saved.

JaehyoJJAng2023년 06월 10일

발생 내용

Kubernetes edit error가 문제의 원인이다.
기본 에디터 설정이 되어있지 않아 들여쓰기 등의 문법 적용이 안되었음.


해결 방법

1. 서버 기본 에디터 설정 (일시적인 해결 방법, 서버 재접속 시 다시 설정해야 함)

$ export EDITOR=[원하는 에디터]

2. 쿠버네티스 에디터 설정 (일시적 해결 방법, 서버 재접속 시 다시 설정해야 함)

$ export KUBE_EDITOR=[원하는 에디터]

# 또는 edit 할 때 마다 적용
$ KUBE_EDITOR="vim" kubectl edit ...

3. 서버 환경변수 설정 (~/.bashrc 또는 ~/.zshrc)

$ echo "export EDITOR=vim" >> ~/.bashrc

Kubernetes Documentation


Kubernetes 공식 문서 중 다음의 명령어를 통해 원하는 에디터를 사용할 수 있다고 한다.

$ KUBE_EDITOR="nano" kubectl edit svc/docker-registry

나도 위 처럼 적용하여 다시 적용해보았다.

$ KUBE_EDITOR="vim" kubectl edit deployment -n kube-system metrics-server

쿠버네티스 에디터 관련된 내용을 찾다보니 쿠버네티스는 에디터를 서버의 기본 에디터를 가져와서 사용한다고 한다.
현재 내 서버의 기본 에디터 설정이 궁금해 확인해보았는데 기본 에디터 설정이 되어있지 않았다.

$ env | grep -i 'editor'

따라서 현재 내 서버의 기본 에디터를 설정을 해주면 KUBE_EDITOR="vim"을 굳이 넣어줄 이유가 없어지는 것이다.

# 서버 에디터 설정
$ export EDITOR=[원하는 에디터]

# 쿠버네티스 기본 에디터 설정
$ export KUBE_EDITOR=[원하는 에디터]

나는 서버가 재부팅 되더라도 에디터 설정이 계속 남아있길 바라기 때문에 아래와 같이 수정해주었다.

$ echo "export KUBE_EDITOR=vim" | tee -a ~/.bashrc

Loading script...