본문 바로가기

분류 전체보기

(205)
[kubernetes] kubectl label selector에 여러개 라벨 조건 주기 (and 또는 or 조건) kubectl에서 label selector를 사용하면 원하는 리소스 정보를 쉽게 불러올 수 있다. 보통 아래와 같은 방식으로 사용한다. # label app이 vicent인 파드 가져오기 kubectl get pod -l app=vicent # label app이 vicent인 deploy 가져오기 kubectl get deploy -l app=vicent 그렇다면 하나의 라벨 조건을 더 줘서 데이터를 가져오고 싶을때는 어떻게 해야할까? 예를들어 app이 vicent인데 component가 db인 pod 를 가져오고 싶다면? kubectl에서는 쉼표 ,를 통해 조건을 추가하면 and 조건으로 인식한다. # label app이 vicent이고 component는 db인 파드 가져오기 kubectl get..
[python] 폴더 있는지 체크하고 없으면 만들기 (mkdir -p) 파이썬에서 특정 경로에 파일을 만드려고 하면 일단 해당 디렉터리 경로가 있는지 부터 체크를 한 후에 파일 조작을 해야 한다. 리눅스 명령어로는 mkdir -p 를 쓰면 디렉터리 패쓰 확인 및 생성이 동시에 가능하다. 그렇다면 파이썬에서는 어떻게 할 수 있을까? 파이썬의 Path 모듈을 통해서 이를 처리할 수 있다. 참고로 파이썬 3.2 버전 이상에서만 지원한다. from pathlib import Path >>> Path('test/sub').mkdir(parents=True, exist_ok=True) 위 명령어를 통해서 현재 파이썬 실행 경로에서 test/sub파는 패쓰가 있는지를 검사하고 없으면 생성할 수 있다. 각각의 옵션의 의미는 아래와 같다 parents: True인 경우 상위 path가 없는..
[python] list에서 중복되는 원소 지우기 python에서 리스트를 사용하다보면 안에 중복된 데이터를 지우고 싶을때가 있다. 루프를 돌면서 하나하나 비교해가면서 지우는 방법말고 다른 방법이 있나 찾아보니 아래와 같은 방법을 통해 중복되는 원소를 쉽게 지울 수 있다. 1. set 함수를 이용해서 중복제거 >>> data = [1, 2, 2, 3, 3, 5] >>> data [1, 2, 2, 3, 3, 5] >>> set(data) {1, 2, 3, 5} >>> list(set(data)) [1, 2, 3, 5] python의 set(집합) 함수를 사용하면 리스트 내의 원소들을 unique한 값만 뽑아서 반환한다. 다만 반환 데이터가 set 함수의 형태이기 때문에 이를 list 형태로 변환해줘야 한다. 2. dict.fromKeys함수를 이용해서 중..
[python] pycache, pyc 캐시 데이터 삭제 명령어 in linux 파이썬 개발을 하다보면 cache 데이터가 지저분하게 쌓이는 경우가 많다. git에서는 gitignore 파일에 등록하면 되지만 그렇다고 캐시데이터를 지워주는 것은 아니다. 리눅스에서는 보통 아래 명령어로 캐시를 삭제할 수 있다. 프로젝트 루트에서 아래 명령어 수행 find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf 그러면 __pycache, pyc, pyo 관련 파일들을 일괄 삭제할 수 있다.
[kubernetes] 배포 방법 정리 (고정/롤링/블루-그린/카나리 릴리즈 배포) 고정 배포 이전 버전의 모든 컨테이너를 죽이고 새로운 버전 실행하는 방식이다. 이전 버전을 모두 죽인후에 새로운 버전을 띄우는 방식이라 서비스 중단점이 있다. 롤링 배포(Rolling Update) 기존 버전들을 죽임과 동시에 새로운 버전을 생성하는 방식이다. 새로 생성되는 파드와 죽는 파드의 수를 조절해 가면서 업데이트를 진행하기 때문에. 서비스 중단이 없다. 새로운 컨테이너 생성 비율은 디플로이먼트를 통해서 제어할 수 있다. 이 방식의 단점은 업데이트 프로세스 동안 두 가지 버전의 컨테이너가 동시에 실행되기 때문에 버전 호환성의 문제가 발생할 수 있다. 불루 그린 릴리즈(Blue-green release) 여기서 말하는 블루란 이전 버전을 뜻하고 그린은 새로운 버전을 뜻한다. 일단 이전 버전과 새로운..