기본 명령
컨테이너 실행
- 명령어: kubectl run <NAME> --image <IMAGE>
- 예시: kubectl run mynginx --image nginx
- 설명: 주어진 이름과 이미지를 사용하여 새로운 컨테이너를 실행한다.
컨테이너 조회
- 명령어: kubectl get pod
- 설명: 실행 중인 컨테이너 목록을 조회한다.
- 상태 설명:
- Pending: 아직 실행되지 않은 상태
- ContainerCreating: 컨테이너 생성 중
- Running: 컨테이너 실행 중
- Completed: 실행 완료
- Error: 실행 중 에러 발생
- CrashLoopBackOff: 반복적인 충돌 발생
컨테이너 상세정보 확인
- 명령어: kubectl describe pod <NAME>
- 설명: 특정 컨테이너의 상세 정보를 조회한다.
- 컨테이너 로그 확인
- 명령어: kubectl logs <NAME>
- 설명: 컨테이너의 로그를 확인한다.
- 예시: kubectl logs -f mynginx (실시간 로그 스트림)
- 컨테이너 명령 전달:
- 명령어: kubectl exec <NAME> -- <CMD>
- 설명: 실행 중인 컨테이너에 명령어를 전달하여 실행한다.
- 예시: kubectl exec -it mynginx -- bash
- 컨테이너/호스트 간 파일 복사:
- 명령어: kubectl cp <TARGET> <SOURCE>
- 설명: 컨테이너와 호스트 간 파일을 복사한다.
- 예시: kubectl cp /etc/passwd mynginx:/tmp/passwd
- 컨테이너 정보 수정:
- 명령어: kubectl edit pod <NAME>
- 설명: 실행 중인 컨테이너의 정보를 수정한다.
- 컨테이너 삭제:
- 명령어: kubectl delete pod <NAME>
- 설명: 지정한 컨테이너를 삭제한다.
- YAML 기반 컨테이너 생성:
- 명령어: kubectl apply -f <FILE_NAME>
- 설명: YAML 파일을 사용하여 컨테이너를 생성한다.
- 예시: kubectl apply -f mynginx.yaml
컨테이너 로그
- 명령어: kubectl logs <NAME>
- 설명: 컨테이너의 로그 정보를 확인한다.
- 예시:
- kubectl logs -f mynginx: 로그를 실시간 스트림으로 출력한다.
- kubectl wait --for condition=Ready pod mynginx: Pod가 준비될 때까지 기다린다.
컨테이너 명령 전달
- 명령어: kubectl exec <NAME> -- <CMD>
- 설명: 실행 중인 컨테이너에 명령어를 전달하여 실행한다.
- 예시:
- kubectl exec -it mynginx -- bash: mynginx 컨테이너에 접속하여 bash 쉘을 실행한다.
컨테이너/호스트 간 파일 복사
- 명령어: kubectl cp <TARGET> <SOURCE>
- 설명: 컨테이너와 호스트 간 파일을 복사한다.
- 예시:
- kubectl cp /etc/passwd mynginx:/tmp/passwd: 호스트의 /etc/passwd 파일을 mynginx 컨테이너의 /tmp/passwd로 복사한다
컨테이너 정보 수정
- 명령어: kubectl edit pod <NAME>
- 설명: 실행 중인 컨테이너의 정보를 수정한다
- 예시:
- kubectl edit pod mynginx: vim 텍스트 에디터를 사용하여 mynginx Pod의 정보를 수정한다
컨테이너 삭제
- 명령어: kubectl delete pod <NAME>
- 설명: 지정한 컨테이너를 삭제합니다.
- 예시:
- kubectl delete pod mynginx: mynginx 컨테이너를 삭제한다.
선언형 명령 정의서(YAML) 기반의 컨테이너 생성
- 명령어: kubectl apply -f <FILE_NAME>
- 설명: YAML 파일을 사용하여 컨테이너를 생성한다.
- 예시:
- kubectl apply -f mynginx.yaml: mynginx.yaml 파일을 사용하여 mynginx 컨테이너를 생성한다.
즉석 리소스 생성
- 명령어: cat << EOF | kubectl apply -f -
- 설명: 즉석에서 YAML 파일 없이 리소스를 생성한다.
- 예시:
-
shell코드 복사cat << EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: cat-nginx spec: containers: - name: nginx image: nginx EOF
리소스 특정 정보 추출
- 명령어: kubectl get <RESOURCE> -o jsonpath=<TEMPLATE>
- 설명: jsonpath를 사용하여 리소스의 특정 정보를 추출한다.
- 예시:
- kubectl get node master -o jsonpath="{.status.addresses[0].address}": 마스터 노드의 IP 주소를 추출한다.
참고 자료
'기술 탐구 > k8s' 카테고리의 다른 글
(k8s) Volume이란 무엇일까? (emptyDir, hostPath, PVC/PV) (0) | 2024.08.13 |
---|---|
(k8s) Service의 정의와 3가지 타입(ClusterIP, NodePort, LoadBalaner) (0) | 2024.08.04 |
(CKA) MOCK 1 풀이와 관련 공식 문서 (0) | 2024.07.18 |
(k8s) m1 mac 환경에서 k8s 클러스터를 구축해보자. (0) | 2024.07.08 |
(k8s) Pod에 대한 정의와 각종 속성 (2) | 2024.06.14 |