k8s 134

Services 관련 명령어

Services란 포드에서 실행 중인 애플리케이션을 네트워크 서비스로 노출하는 방법이다. 즉, 서비스를 통해 포드에 접근할 수 있다. 이 글에서는 Services 목록 및 정보를 확인하고, 생성하는 방법에 대해 정리한다. Services 목록 확인 get 명령어로 Services 목록을 확인한다. 서비스의 이름, 유형 등을 확인할 수 있다. kubectl get service 사진에서 확인할 수 있는 kubernetes 서비스는 kubernetes 시작 시 생성된 기본 서비스이다. Services 상세 정보 확인 describe 명령어로 Services의 상세 정보를 확인한다. Port, TargetPort, Label, Endpoints 등의 정보를 확인할 수 있다. kubectl describe se..

Job/CronJob 관련 명령어

Job은 특정 개수의 포드가 성공적으로 완료되는 것을 보장하며, 실행한 포드가 실패, 하드웨어 장애 발생, 노드 재부팅 등과 같은 문제 발생 시 자동으로 포드를 재실행한다. 주로 실행 후 종료되어야 하는 작업을 실행시킬 때 사용한다. 이 글에서는 job을 생성, 삭제, 수정 및 정보를 확인하는 방법에 대해 정리한다. Job 생성 create 명령을 이용해 Job을 생성한다. kubectl create job --image= # 예시 kubectl create job throw-dice-job --image=kodekloud/throw-dice Job 목록 확인 Job의 이름, 완료 여부 등을 확인할 수 있다. kubectl get jobs.batch Job 상세 정보 확인 포드를 완료할 때까지 포드를 재..

Deployments 업데이트 관련

2021.11.15 - deployment 확인 및 생성 명령어 이 글에서는 Deployments의 업데이트 전략을 확인하고, 수정하는 방법에 대해 정리한다. Deployments Update 전략 확인 describe 명령 실행 결과에서 StrategyType 필드를 확인한다. kubectl describe deployments.apps Deployments Rolling Update 시 삭제 가능한 포드 수 확인 describe 명령 실행 결과에서 RollingUpdateStrategy 필드를 확인한다. max unavailable : Rolling Update 시 동시 삭제가 가능한 포드의 최대 개수 max surge : Rolling Update 시 동시 생성이 가능한 포드의 최대 개수 두 값 모..

Selector로 Label 별 필터링

Label은 항목에 붙인 속성과 같고, Selector로는 그 항목을 필터링할 수 있다. 이 글에서는 Label이 설정된 자원을 Selector로 필터링하는 방법을 정리한다. selector로 필터링한 포드 목록 확인 get pods 명령에 --selector 옵션을 주어 필터링한다. kubectl get pods --selector KEY=VALUE kubectl get pods --selector=KEY=VALUE # 예시 kubectl get pods --selector env=dev kubectl get pods --selector=env=dev selector로 필터링한 replicaset 목록 확인 get replicaset 명령에 --selector 옵션을 주어 필터링한다. kubectl g..

노드/포드 리소스 사용량 확인

쿠버네티스 클러스터 내 자원을 모니터링하는 방법에는 여러가지 방법이 존재한다. 이 글에서는 Metric server가 구성된 클러스터 환경을 사용한다는 가정 하에, 간단하게 포드와 노드를 모니터링하는 방법을 정리한다. 노드의 리소스 사용량 확인 노드의 CPU/메모리 사용량을 확인한다. 사용하기 위해서는 클러스터 내에 Metric Server가 구성되어 동작하고 있어야 한다. kubectl top node 포드의 리소스 사용량 확인 top 명령어로 포드의 CPU/메모리 사용량을 확인한다. kubectl top pod

Log 관련 명령어

포드 내 컨테이너의 로그를 확인하는 방법을 정리한다. 포드 컨테이너 로그 확인 기본적으로 logs 명령을 이용해 포드 내 컨테이너의 로그를 확인할 수 있다. kubectl logs # 예시 kubectl logs webapp-1 멀티 컨테이너 포드 로그 확인 포드 내 컨테이너가 여러 개인 경우, 로그를 확인하고자 하는 컨테이너의 이름을 지정하여 특정 컨테이너의 로그만을 확인할 수 있다. kubectl logs # 예시 kubectl logs webapp-2 db

Probe 설정

Probe란 컨테이너에서 kubelet에 의해 주기적으로 수행되는 진단(diagnostic)을 말한다. 이 글에서는 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타내는 Readiness Probe와, 컨테이너가 동작 중인지에 대한 여부를 나타내는 Liveness Probe를 설정하는 방법을 간단하게 정리한다. Readiness Probe 설정 포드 정의 yaml 파일 내 spec > containers 아래에 readinessProbe 필드를 추가하여 설정한다. 예시는 지정한 포트 및 경로에서 컨테이너의 IP주소에 대한 HTTP Get 요청 수행하는 httpGet을 설정한 yaml 파일이다. apiVersion: v1 kind: Pod metadata: creationTimestamp: "2021-..

Deployment에 Node Affinity 설정

Node Affinity란 노드의 레이블을 기반으로 포드/Deployment를 스케줄 할 수 있는 노드를 제한할 수 있는 방법이다. 이 글에서는 Node에 Label을 설정하고, Deployment에 Node Affinity를 설정하는 방법을 정리한다. Node의 Label 확인 kubectl describe nodes # 예시 kubectl describe nodes node01 Node에 Label 설정 kubectl label nodes KEY=VALUE # 예시 kubectl label nodes node01 color=blue Deployment에 Node Affinity 설정 추가 Node affinity 설정은 yaml 파일에 정의한다. 이미 존재하는 Deployment를 수정하는 경우에는 ..

Taints/Tolerations 관련 명령어

노드가 포드를 스케쥴링되지 않도록 하는 Taints와 포드가 Taints가 설정된 노드와 설정되지 않은 노드에 스케쥴링될 수 있도록 하는 Tolerations는 함께 동작하는 개념이다. 이 글에서는 Taints/Tolerations을 확인하고 설정하는 방법을 정리한다. Node의 Taints 확인 describe 명령 실행 결과의 Taints 필드에서 확인할 수 있다. kubectl describe node Node에 Taints 설정 taint 명령으로 설정을 추가한다. kubectl taint node KEY=VALUE:EFFECT # 예시 kubectl taint node node01 spray=mortein:NoSchedule Node에서 Taints 삭제 taint 명령 끝에 - 기호를 붙여 설..

Service Accounts 관련 명령어

Service Accounts는 포드에서 실행되는 프로세스를 위한 것으로, 네임스페이스에 각각 정의할 수 있다. 이 글에서는 Service Accounts 목록 확인, 상세 정보 확인 및 생성, 포드에 설정하는 방법에 대해 정리한다. Service Accounts 목록 확인 get 명령어로 확인할 수 있다. kubectl get serviceaccounts Service Accounts 상세 정보 확인 describe 명령어로 함께 생성된 토큰 등의 이름을 확인할 수 있다. kubectl describe serviceaccounts # 예시 kubectl describe serviceaccounts default 포드에서 Service Accounts credential이 저장된 정보 확인 서비스 계정 ..