빅토리 코딩
Published 2023. 4. 28. 16:37
kubernetes 명령어 Server/kubernetes
728x90
반응형

Object 생성

kubectl run은 배포 또는 포드를 빠르고 쉽게 생성하는 데 사용되고 kubectl create는 YAML 또는 JSON 파일에서 새 리소스를 생성하는 데 사용되며 kubectl apply는 리소스의 선언하여 리소스의 현재 상태가 원하는 상태와 일치하게 생성 또는 업데이트한다.

kubectl run

 kubectl run {obejct명}

설명

새 Deployment 또는 새 pod를 생성하는 데 사용된다. 리소스를 만들고 관리하는 빠르고 쉬운 방법을 제공한다.

옵션

--image or -i: 사용할 컨테이너 이미지

kubectl run my-deployment --image=nginx


--replicas or -r: 생성할 복제본 수

kubectl run my-deployment --image=nginx --replicas=3


--port or -p: 컨테이너가 노출하는 포트 번호

kubectl run my-deployment --image=nginx --port=80


--env or -e: 컨테이너 내부에 설정할 환경 변수

kubectl run my-deployment --image=my-app --env=MY_VAR=hello


--labels or -l: 배포에 첨부할 레이블

kubectl run my-deployment --image=my-app --labels=app=my-deployment


--limits or --requests: 컨테이너에 대한 리소스 제한 및 요청

kubectl run my-deployment --image=my-app --limits=cpu=1,memory=512Mi --requests=cpu=0.5,memory=256Mi

kubectl create

 kubectl create {obejct명}

설명

YAML 또는 JSON 파일에서 새 Kubernetes 리소스를 생성하는 데 사용된다. 리소스의 원하는 상태를 지정할 수 있으며 kubectl run보다 리소스를 생성하는 더 유연한 방법이다.  

옵션

--dry-run: 리소스를 생성할 경우 변경 사항을 미리 볼 수 있다. 출력에는 생성된 YAML 또는 JSON이 표시되지만 실제로 리소스를 생성하지는 않는다. 

kubectl create deployment my-deployment --image=nginx --dry-run=client


--edit: 기본 편집기에서 YAML 파일을 열어서 리소스를 생성하기 전에 수정할 수 있다. 

kubectl create configmap my-config --edit


--save-config: 생성된 개체의 구성을 로컬 시스템의 파일에 저장하므로 나중에 다시 사용할 수 있다.

kubectl create deployment my-deployment --image=nginx --save-config


--from-file: 하나 이상의 파일이 포함된 파일 또는 디렉터리에서 Kubernetes 리소스를 생성할 수 있다. 

kubectl create configmap my-config --from-file=config.yaml


--namespace: 리소스가 생성되어야 하는 네임스페이스를 지정한다.

kubectl create deployment my-deployment --image=nginx --namespace=my-namespace


--labels: 생성 중인 리소스에 레이블을 추가할 수 있다. 

kubectl create deployment my-deployment --image=nginx --labels=app=my-deployment

kubectl apply

kubectl apply -f {yaml 파일명}

설명

YAML 또는 JSON 파일에서 Kubernetes 리소스를 생성하거나 업데이트하는 데 사용된다. 이를 통해 리소스를 선언적으로 관리하고 리소스의 현재 상태가 YAML 또는 JSON 파일에 지정된 원하는 상태와 일치하는지 확인할 수 있다.

옵션

-f or --filename: 적용하려는 리소스를 정의하는 구성 파일의 경로를 지정한다. 이 옵션을 사용하여 단일 파일 또는 여러 파일이 포함된 디렉터리를 적용할 수 있다. 

kubectl apply -f my-deployment.yaml


-k or --kustomize: Kustomize 구성 파일을 사용하여 사용자 정의된 Kubernetes 리소스 세트를 적용한다. 

kubectl apply -k my-kustomization


--prune: 적용 중인 구성 파일에 정의되지 않은 리소스를 삭제할 수 있다. 

kubectl apply -f my-deployment.yaml --prune


--validate: 구성 파일을 적용하기 전에 유효성을 검사한다. 오류나 경고가 있는 경우 적용 프로세스가 중단된다. 

kubectl apply -f my-deployment.yaml --validate


--force: 안전하지 않은 것으로 간주되는 경우에도 리소스를 강제로 적용한다. 

kubectl apply -f my-deployment.yaml --force


--record: 리소스 주석에 리소스를 적용하는 데 사용되는 명령을 기록한다. 

kubectl apply -f my-deployment.yaml --record

Object 조회

명령어

kubectl get <Object 타입>

설명

get 명령은 하나 이상의 Kubernetes 리소스에 대한 정보를 검색하는 데 사용된다. 

옵션

--all-namespaces or -A: 모든 네임스페이스의 리소스를 표시한다. 

kubectl get pods --all-namespaces


--namespace or -n: 특정 네임스페이스의 리소스를 표시한다. 

kubectl get pods --namespace=my-namespace


--output or -o: 출력 형식을 지정한다. 사용 가능한 형식에는 json, yaml, wide, name 및 custom-columns가 있다. 

kubectl get pods -o json


--selector or -l: 레이블 선택기를 기반으로 리소스를 필터링할 수 있다. 

kubectl get pods --selector=app=my-app


--watch or -w: 리소스를 실시간으로 표시하고 변경이 발생할 때마다 출력을 업데이트한다. 

kubectl get pods --watch


--show-labels: 각 리소스와 관련된 레이블을 표시한다.

kubectl get pods --show-labels


--sort-by: 특정 필드를 기준으로 리소스를 정렬다. 

kubectl get pods --sort-by=.metadata.creationTimestamp

상태

- Pending : k8s 마스터에 의해 명령은 받았지만 실행은 안되어있는 상태

- ContainerCreating : 다른 노드에 스케줄링으로 컨테이너를 생성 중인 상태

- Running : 정상정으로 실행 중인 상태

- Completed : 일회성 pod에서 실행되는 프로세스가 완료된 상태

- Error : 문제가 생겨 에러가 발생한 상태

-CrashLoopBackoff : 에러가 계속 발생하여 crash가 반복되는 상태

Object 삭제

명령어

kubectl delete {object 타입} {obeject 명}

설명

Kubernetes 리소스를 삭제한다.

옵션

--all or -A: 지정된 유형의 모든 리소스를 삭제

kubectl delete pods --all


--namespace or -n: 특정 네임스페이스의 리소스를 삭제

kubectl delete pods --namespace=my-namespace


--selector or -l: 레이블 선택기에 따라 리소스를 삭제

kubectl delete pods --selector=app=my-app


--grace-period: Kubernetes가 리소스를 강제로 종료하기 전에 대기하는 시간(초)을 설정

kubectl delete pod my-pod --grace-period=30


--force: 확인을 기다리지 않고 리소스를 강제로 삭제

kubectl delete pod my-pod --force


--cascade or -c: 종속 리소스를 삭제할지 여부를 지정

kubectl delete deployment my-deployment --cascade=false

Object 정보

명령어

kubectl describe {object 타입} {object 명}

설명

Kubernetes 리소스에 대한 자세한 정보를 제공

옵션

pod: 특정 Pod 및 IP 주소, 컨테이너 상태 및 이벤트와 같은 관련 세부 정보를 설명

kubectl describe pod my-pod

deployment: 복제본, 전략 및 이벤트와 같은 특정 deployment 및 관련 세부 정보를 설명.

kubectl describe deployment my-deployment


Service: 특정 서비스 및 IP 주소, 포트 및 엔드포인트와 같은 관련 세부 정보를 설명

kubectl describe service my-service


Node: 특정 노드 및 상태, 용량 및 조건과 같은 관련 세부 정보를 설명

kubectl describe node my-node


event: 특정 이벤트 및 유형, 이유 및 메시지와 같은 관련 세부 정보를 설명

kubectl describe event my-event


--namespace or -n: 특정 네임스페이스의 리소스를 설명

kubectl describe pod my-pod --namespace=my-namespace

 

Object 로그

명령어

kubectl logs {Object 명}

설명

컨테이너의 로그를 검색한다.

옵션

pod: 로그가 검색되는 컨테이너가 포함된 포드 이름을 지정

kubectl logs my-pod


container: 로그가 검색되는 컨테이너의 이름을 지정한다. 포드에 여러 컨테이너가 포함된 경우 이 옵션이 필요하다. 

kubectl logs my-pod -c my-container


follow or -f: tail -f 명령과 유사하게 로그를 지속적으로 스트리밍 한다. 

kubectl logs my-pod -f


previous or -p: 현재 컨테이너가 다시 시작된 경우 이전 컨테이너 인스턴스의 로그를 검색

kubectl logs my-pod -p


since: 특정 시간 이후의 로그를 검색한다. 값은 기간(1h) or 타임스탬프(2022-05-08T 12:00:00Z) 일 수 있다. 

kubectl logs my-pod --since=10m


timestamps or -t: 각 로그 라인에 타임스탬프를 추가한다. 

kubectl logs my-pod -t

기타

명령어

kubectl exec {Object 명} {명령어}

설명

실행 중인 컨테이너 내에서 명령을 실행한다.

옵션

pod: 명령이 실행될 컨테이너를 포함하는 포드 이름을 지정

kubectl exec my-pod


container: 명령이 실행될 컨테이너의 이름을 지정한다. 포드에 여러 컨테이너가 포함된 경우 이 옵션이 필요하다. 

kubectl exec my-pod -c my-container

stdin or -i: 실행 중인 명령에 대한 입력

kubectl exec my-pod -i -- /bin/bash


tty or -t: 컨테이너와 함께 터미널 세션을 연다.

kubectl exec my-pod -t -- /bin/bash

명령어

kubectl api-resources

설명

모든 리소스 조회

728x90
반응형
profile

빅토리 코딩

@빅토리 코딩

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그