티스토리 뷰

Say! 머니곰/IT

kubernetes cheat sheet

zzonsang2 2019. 7. 21. 21:23
반응형

목적

kubernetes.io 에서 제공하는 kubernetes cheat sheet 을 IBM Cloud Private 설치환경(https://github.com/IBM/deploy-ibm-cloud-private)에서 학습하려고 합니다. 물론 배보다 배꼽이 큰 상황이긴 하지만, 업무용으로 로컬 환경에 설치된 환경이 있어 ICP에서 진행하는 것으로 다른 분들은 활용하고 있는 다른 k8s 환경에서 해보시면 됩니다.

참고 원문

kubernetes.io 의 cheat sheet 원문 링크 : https://kubernetes.io/docs/reference/kubectl/cheatsheet/

 

kubectl Cheat Sheet

 

kubernetes.io

목차

위 원문 링크를 보면 아래와 같은 목차로 구성되며, 주말에 잠깐 살펴보다가 그 동안 사용 안했던 기능 들도 살펴보고 보다 활용 범위가 풍성해진 느낌이었습니다.

  • Kubectl Autocomplete
  • Kubectl Context and Configuration
  • Apply
  • Creating Objects
  • Viewing, Finding Resources
  • Updating Resources
  • Patching Resources
  • Editing Resources
  • Scaling Resources
  • Deleting Resources
  • Interacting with running Pods
  • Interacting with Nodes and Cluster

실습

환경

macOS Mojave(10.14.5)

Autocomplete

ZSH을 사용하기 때문에 아래와 같이 kubectl completion을 zsh로 구성합니다.

$ echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc

아래와 같이 "$ kubectl get " 입력 후 "tab"을 키보드에 입력하면 아래와 같이 입력 가능한 목록이 나오거나 자동 완성되는 기능 입니다.

또한, Pod 목록 등의 uuid로 입력이 불편한 경우에 사용하면 매우 유용합니다. 아래와 같이 "monitoring-prometheus-nodeexporter"의 Pod을 조회하기 위해서 Auto Complete을 사용하여 입력을 편리하게 도와줍니다.

Viewing, Finding Resources

해당 항목을 하기 전에 "Kubectl Context and Configuration", "Apply" 항목 등이 있지만 그에 앞서 내역을 확인하고 찾는 과정을 먼저 확인해 보겠습니다.

Viewing의 기본은 get을 이용하는 것이고 각 항목의 상세 내용을 확인하고 싶은 경우에는 describe로 명세 내용을 확인 합니다. get 과 함께 유용하게 사용 가능한 것은 '--selector', '--field-selector' 등의 옵션을 사용하여 정의한 Label 속성이나 상태값 등을 조회해 볼 수 있습니다.

예를 들어, Pod의 상태가 Running이 아닌 Pod 의 목록을 조회할 경우에는 '--field-selector' 옵션을 사용합니다.

## Operator는 !=을 이용하여 Running이 아닌 상태를 조회 조건으로 입력했습니다.
$ kubectl get pods --field-selector=status.phase!=Running

## --field-selector 등 이용시에 가시적으로 명확하게 하고 싶다면 '' 을 이용하여 영역을 구분해 줍니다.
$ kubectl get pods --field-selector='status.phase!=Running'

Running 상태가 아닌 내역을 조회해 보니 CotainerCreating 상태로 수일 동안 진행되지 않은 것과 Job 등 Completed 된 내역이 확인 됩니다. ContainerCreating, Failed, Error 등은 describe 을 이용하여 보다 상세한 원인을 확인해 볼 필요가 있습니다.

## 가장 기본이 되는 describe로 내역 확인
$ kubectl describe pod <pod명>

## Event 내역 중 timestamp로 조회
$ kubectl get events --sort-by=.metadata.creationTimestamp

Label 기능을 이용하여 조회시에는 'l' 옵션을 사용하면 됩니다.

$ kubectl get pod -l app=<검색어>

반응형
댓글