kubectl set
- 애플리케이션 리소스 수정을 위한 전용 명령어
- 주로 Pod 을 자동 생성하는 리소스에 사용
kubectl set env [옵션]
- Pod Template의 환경변수 수정 시 사용하는 명령어
- 주로 사용되는 옵션
- -f
- 파일명 지정 시
- --selector
- 셀렉터 태그 지정 시
- --all
- --containers
- 특정 컨테이너 지정 시
- --env
- 추가/변경할 환경변수
- --from
- configmap, secret 등을 수정 시
kubectl set image <리소스 명> [옵션]
- configmap, secret 등을 수정 시
- -f
- Pod template의 이미지 수정 시 사용하는 명령어
- 주로 사용되는 명령어
- f
- --selector
- --all
- --containers
- --dry-run
kubectl set subject <리소스 명> [옵션]
- 권한 관리(RBAC) 대상(Subject)을 추가하거나 변경할 때 사용
- 주로 사용되는 옵션
- -user
- 사용자 이름을 추가 시
- --group
- 사용자 그룹을 추가 시
- -z
- 특정 서비스 어카운트를 추가 시
kubectl set resources <리소스 명> [옵션]
- 특정 서비스 어카운트를 추가 시
- -user
- 자원 할당량 조절은 제한(Limits)과 요청(Requests) 두 가지 축으로 나뉩니다.
- 주로 사용되는 명령어
- --limits
- 컨테이너가 사용할 수 있는 최대 자원량 제한 시
- --requests
- 컨테이너가 실행되기 위해 최소로 필요한 자원량 설정 시
- -c
- 특정 컨테이너의 리소스만 변경 시
- --limits
kubectl apply
- 파일에 적어둔 리소스 설정을 클러스터에 적용하는 명령어
- 리소스가 없다면 생성, 있다면 수정
- 파일을 지정해 사용 시: kubectl apply -f <yaml 파일명>
- 디렉토리를 지정해 사용 시: kubectl apply -k <kustomization.yaml파일이 있는 경로>
- 주로 사용되는 옵션
- --dry-run=client
- 실제로 반영하지 않고 오류가 없는지만 미리 확인
- --server-side
- 클라이언트가 아닌 서버에만 변경 사항을 적용
- -R (--recursive)
- 폴더 안의 하위 폴더에 있는 모든 YAML까지 일괄 적용
- -o (--output)
- 결과를 yaml이나 json 형태로 출력해서 상세 설정을 확인합니다.
- --prune
- 파일에서 삭제된 리소스를 실제 클러스터에서도 자동으로 삭제
- --wait
- 리소스가 완전히 생성되거나 Ready 상태가 될 때까지 터미널을 종료하지 않고 기다림
- --dry-run=client
kubectl patch
- k8s 리소스의 일부 필드만 수정하는 명령어
- 파일을 지정해 사용 시: kubectl patch -f <yaml 파일명>
- 타입명과 리소스 이름 지정 시: kubectl patch <리소스 종류> <리소스 명>
- 패치의 종류
- strategic merge patch
- 리스트(List) 구조에서 기존 데이터를 지우지 않고 새 데이터를 추가할 때 사용
- merge patch
- 일반 JSON 병합이며, 동일한 필드가 있으면 덮어쓰기
- JSON patch
- 특정 필드 삭제나 정교한 작업이 필요할 때 사용
- strategic merge patch
kubectl replace -f <yaml 파일명> [옵션]
- 리소스를 전체 교체하는 명령어, 전체라는 의미는 일부 값만 넣는게 아닌 전체 YAML파일로 넣어야한다는 의미
- 주로 사용되는 옵션
- --force: (매우 중요) 리소스를 즉시 삭제하고 새로 생성합니다. 일반적인 방식(PATCH)으로 수정이 안 되는 필드를 강제로 고칠 때 씁니다. Tistory
- --cascade
- 리소스를 삭제하고 다시 만들 시, 하위 리소스 처리법을 결정
- background, foreground, orphan
- 리소스를 삭제하고 다시 만들 시, 하위 리소스 처리법을 결정
- --dry-run=client
- 실제로 적용하지 않고 문법이나 교체 가능 여부를 확인
- -R (--recursive)
- 디렉토리 내의 모든 하위 폴더에 있는 파일을 교체
- -o (--output)
- 교체된 결과 리소스를 yaml이나 json 형식으로 출력
- --grace-period
- 리소스를 종료 시, 기다려주는 초 지정
kubectl diff -f <yaml파일 명> [옵션]
- 현재 클러스터에 적용되어 있는 리소스의 실제 상태와 JSON/YAML 파일의 상태를 비교하는 명령어
- 비교를 위한 것이기 때문에 실제 적용은 하지 않는다.(CI/CD용 사전 검증 확인용)
- 변경상태는 코드로 구분
- 0(변경 없)
- 1(변경 유)
- 주로 사용되는 옵션
- --concurrency
- 여러 리소스 병렬로 diff 시, 병렬할 개수
- --field-manager
- SSA(Server-Side Apply)에서 소유권 기록 시, 사용하는 매니저 이름
- --force-conflicts
- true 지정 시, 서버사이드 적용 시 충돌이나도 강제로 diff
- 실제 적용은 아님
- --recursive
- --show-managed-field
- k8s managedFields를 diff에 포함할지
- --concurrency
'Cloud Native > K8s' 카테고리의 다른 글
| k8s 실전: 트러블슈팅 실전 (0) | 2026.02.24 |
|---|---|
| k8s 실전: 앱 배포 및 스케일링 실전 (0) | 2026.02.24 |
| k8s 실전: 리소스 관련 명령어 (0) | 2026.02.23 |
| k8s 이론: 스케줄링 (0) | 2026.02.23 |
| k8s 이론: 보안 (0) | 2026.02.23 |