쿠버네티스 --dry-run 옵션

greenTea·2023년 8월 19일
1

쿠버네티스 --dry-run 옵션

🫠쿠버네티스에서는 명령을 실제로 실행하지 않고 결과 값을 알려주는 옵션이 있습니다. 바로 --dry-run 옵션인데 이 옵션을 사용하면 예상되는 결과를 미리 확인할 수 있기 때문에, 실수로 리소스를 변경하거나 삭제하는 것을 방지하는 데 유용합니다.

--dry-run 사용 방법

😑kubectl run hello --image=nginx --dry-run -o yaml를 이용하면 아래와 같은 결과가 나옵니다. -o yaml을 사용하여 yaml 형태로 결과를 출력하도록 하였습니다.

--dry-run 사용 결과 창

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: hello
  name: hello
spec:
  containers:
  - image: nginx
    name: hello
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

경고 문구 발생

😎위 명령어를 사용할 경우 동시에 이런 경고 문구도 발생합니다.
--dry-run is deprecated and can be replaced with --dry-run=client.

--dry-run 옵션을 그냥 사용하는 것은 deprecated기에 사용하지 말라고 경고 하는 것인데요 그러면 어떻게 사용해야 하는가 하면 아래 중에서 자신에게 맞는 것을 선택하여 사용하시면 됩니다.

옵션 사용 방법

1. --dry-run = none

실제로 명령을 실행하고 변경을 API 서버에 적용합니다. 이것은 dry-run을 사용하지 않는 행동과 동일합니다.

2. --dry-run = client

  • Kubernetes API 서버에 어떠한 요청도 전송되지 않습니다.
  • 실제 서버의 유효성 검사나 기타 로직은 수행되지 않기 때문에, 명령이 실제로 실행될 때와 다른 결과가 나올 수 있습니다.

3. --dry-run = server

  • 이 옵션은 명령을 실제로 실행하는 것처럼 Kubernetes API 서버에 요청을 전송합니다.
  • 서버는 요청을 처리하고 예상되는 결과를 반환하지만, 실제로 변경사항은 저장되거나 적용되지 않습니다.
  • 이 방식을 사용하면, 서버의 유효성 검사, 기본 값 설정, 기타 요청 처리 로직을 포함한 실제 명령 처리의 전체 라이프사이클을 시뮬레이션할 수 있습니다.

client vs server

🤓client와 server의 경우 이해가 되지 않을 수 있지만 간단하게 말해서 값이 존재하지 않는 네임스페이스에서 파드를 생성한다고 가정할 때 client 옵션은 문제가 없는 것 처럼 나오지만 server로 실행하면 에러를 감지하게 됩니다.

🤗상황에 따라 필요한신 옵션을 선택하여 사용하시면 좋을 것 같습니다.

profile
greenTea입니다.

0개의 댓글