본문으로 건너뛰기
버전: 1.0.2

YAML 편집기

YAML은 Kubernetes에서 리소스를 선언적으로 정의하는 표준 형식입니다. COP Console의 YAML 편집기는 웹 기반의 코드 편집기를 제공하며, 구문 하이라이팅, 자동 들여쓰기, 오류 표시 등의 기능을 통해 효율적인 YAML 편집 경험을 제공합니다.

개요​

YAML 편집기는 다음과 같은 상황에서 사용합니다.

  • 새로운 Kubernetes 리소스를 YAML로 직접 생성할 때
  • 기존 리소스의 YAML을 확인하고 수정할 때
  • 폼 편집기에서 지원하지 않는 고급 설정을 변경할 때
  • 외부에서 작성한 YAML 매니페스트를 클러스터에 적용할 때

편집 화면 구성​

편집기 영역​

화면의 주요 영역을 차지하는 코드 편집기입니다. YAML 내용을 입력하고 수정하는 공간으로, 줄 번호가 좌측에 표시됩니다. 편집기 내에서 마우스와 키보드를 사용하여 텍스트를 선택, 복사, 붙여넣기할 수 있습니다.

도구 모음​

편집기 상단에 위치한 도구 모음에서는 다음 기능을 사용할 수 있습니다.

  • Apply 버튼: 현재 YAML을 클러스터에 적용합니다.
  • 폼 전환 버튼: 폼 편집기로 전환합니다 (지원되는 리소스 타입인 경우).
  • Managed Fields 토글: Managed Fields 표시/숨기기를 전환합니다.

새 리소스 생성​

리소스 목록 화면 상단의 + 버튼을 클릭하면 YAML 편집기가 열립니다.

빈 YAML 템플릿에서 시작​

YAML 편집기가 열리면 선택한 리소스 타입에 맞는 기본 YAML 템플릿이 제공됩니다. 템플릿에는 apiVersion, kind, metadata 등 필수 필드가 미리 채워져 있으며, 사용자는 이를 기반으로 필요한 설정을 추가합니다.

예를 들어, 새 Deployment를 생성하는 경우 다음과 같은 기본 구조가 제공됩니다.

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx:latest

외부 YAML 붙여넣기​

다른 도구나 문서에서 작성한 YAML 매니페스트를 편집기에 직접 붙여넣어 사용할 수 있습니다. 기존 템플릿 내용을 모두 선택(Ctrl+A)한 후 외부 YAML을 붙여넣으면 됩니다.


기존 리소스 편집​

기존 리소스의 상세 화면에서 편집 버튼을 클릭하면 YAML 편집기가 열립니다.

현재 YAML 로드​

편집기가 열리면 클러스터에서 가져온 리소스의 현재 YAML이 자동으로 로드됩니다. 여기에는 리소스의 모든 필드가 포함되며, status 필드와 같이 서버에서 관리하는 읽기 전용 필드도 함께 표시됩니다.

수정 및 Apply​

YAML 내용을 원하는 대로 수정한 후 Apply 버튼을 클릭하여 변경 사항을 클러스터에 적용합니다. Apply는 kubectl apply와 동일한 방식으로 동작하며, 변경된 필드만 서버 측에서 업데이트됩니다.

참고: metadata.name, metadata.namespace, apiVersion, kind 등 불변(Immutable) 필드는 수정할 수 없습니다. 이러한 필드를 변경하려고 하면 Apply 시 오류가 발생합니다.


구문 하이라이팅​

YAML 편집기는 구문 하이라이팅을 지원하여 YAML 구조를 시각적으로 구분합니다.

  • 키(Key): 볼드체 또는 강조 색상으로 표시됩니다.
  • 문자열 값: 일반 텍스트 색상으로 표시됩니다.
  • 숫자 값: 별도 색상으로 표시됩니다.
  • 불린 값: true/false가 별도 색상으로 표시됩니다.
  • 주석: 회색 또는 이탤릭체로 표시됩니다.

Managed Fields 표시/숨기기​

Kubernetes 리소스의 YAML에는 metadata.managedFields 필드가 포함되어 있습니다. 이 필드는 서버 측 Apply(Server-Side Apply)에서 각 필드의 관리자 정보를 추적하는 데 사용되며, 내용이 매우 길어서 편집 시 방해가 될 수 있습니다.

YAML 편집기 도구 모음의 Managed Fields 토글을 사용하여 이 필드의 표시 여부를 전환할 수 있습니다.

  • 숨기기(기본값): managedFields 필드가 YAML에서 제거되어 표시됩니다. 편집 시 핵심 설정에 집중할 수 있습니다.
  • 표시하기: managedFields 필드가 포함된 전체 YAML이 표시됩니다. 필드 소유권 충돌을 진단할 때 유용합니다.

참고: Managed Fields 표시/숨기기는 화면 표시만 제어하며, Apply 시에는 실제 리소스 상태에 영향을 주지 않습니다.


유효성 검증​

구문 오류 감지​

YAML 문법에 맞지 않는 내용이 입력되면, 해당 줄에 오류 표시가 나타납니다. 들여쓰기 오류, 잘못된 문자, 중복 키 등의 구문 오류를 사전에 감지합니다.

Apply 시 서버 측 검증​

Apply 버튼을 클릭하면 Kubernetes API 서버에서 추가적인 유효성 검증이 수행됩니다. 필수 필드 누락, 잘못된 값, 스키마 불일치 등 서버 측에서 감지된 오류가 있으면 에러 메시지가 표시됩니다.


Apply 결과​

Apply 버튼을 클릭하면 Kubernetes API 서버에 요청이 전송되며, 결과에 따라 다이얼로그가 표시됩니다.

성공​

리소스가 성공적으로 생성되거나 수정되면 성공 메시지가 표시됩니다. 새 리소스가 생성된 경우 해당 리소스의 상세 화면으로 자동으로 이동합니다.

실패​

API 서버에서 오류가 반환되면 실패 다이얼로그가 표시됩니다. 다이얼로그에는 오류의 원인을 설명하는 메시지가 포함됩니다. 주요 실패 원인은 다음과 같습니다.

  • 유효성 검증 실패: 필수 필드 누락, 잘못된 값 타입, 스키마 불일치 등
  • 권한 부족: 현재 사용자에게 해당 리소스를 생성/수정할 권한이 없는 경우
  • 충돌(Conflict): 다른 사용자가 동시에 같은 리소스를 수정한 경우
  • 리소스 할당량 초과: 네임스페이스의 리소스 할당량을 초과한 경우

오류 메시지를 확인한 후 YAML을 수정하여 다시 Apply할 수 있습니다.