분류 전체보기 1185

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 시 동시 생성이 가능한 포드의 최대 개수 두 값 모..

[ln] Python 심볼릭 링크 설정

CentOS 7에서는 기본적으로 python2를 사용하도록 설정되어 있다. ……물론 아닐 수도 있다. 이 글에서는 python3을 주로 사용한다는 가정하에 python 명령어를 사용하면 python2가 아니라 python3을 실행할 수 있도록 설정하는 방법을 정리하고자 한다. Symbolic Link를 설정하고 관리하는 방법은 update-alternatives도 존재하지만, 이 글에서는 ln 명령을 이용해 설정하려고 한다. 시스템 설정 변경이 필요하므로 root 권한이 필요하다. python 환경이 변경될 수 있기 때문에 실행에는 주의가 필요하다. 1. Python 실행 위치 확인 which python 2. /usr/bin/python이 가리키는 파이썬 버전 확인 필요 시 기존 설정을 원복할 수 있도..

Linux 2021.12.06

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-..

[Ubuntu 20.04] rc.local 활성화

2021.09.07 - rc.local - 부팅 시 실행 스크립트에서는 rc.local의 간단한 소개 및 각 OS에서의 활성화 방법이 나와있는 링크를 적어두었다. 이 글에서는 rc.local 활성화 방법을 직접 정리해두려고 한다. 기준 OS는 Ubuntu 20.04 LTS이다. 방법 시스템 설정이 필요하므로 sudo 권한을 요구한다. 1. rc-local 서비스 확인 현재 rc-local이 활성화되어있지는 않는지 먼저 확인한다. systemctl status rc-local.service [~]: systemctl status rc-local.service ��� rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/sys..

Linux 2021.12.01

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이 저장된 정보 확인 서비스 계정 ..