Server(72)
-
k8s nodeSelector와 node label 설정하기
k8s에서 pod를 deployment할 때 특정 노드를 지정해서 내가 원하는 pod를 설치할 수가 있다.(나같은 경우에는 특정 노드를 선택해 해당 노드에는 redis pod만 띄우도록 설정해 놓고 있다.) 일단 특정 노드를 선택하기 위해서는 해당 노드에 label을 지정해 주어야 한다.우선 아래의 명령어를 통해 내가 가진 node들이 현재 어떤 label이 지정되어 있는지를 확인할 수 있다. $> kubectl get nodes --show-labels label 확인이 완료되었으면 특정 노드에 label을 명시하는 것도 가능하다. $> kubectl label node [node 이름] name=redis 나같은 경우에는 특정 node에 name을 redis로 지정해 주었다.이렇게 지정된 label은..
2024.05.28 -
E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file.
2년 전에 마지막으로 빌드했던 docker file을 빌드하려고 했더니 아래와 같은 에러가 발생했다. E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. debian에서 저장소 repo가 업데이트 되었고, 이전 저장소는 삭제가 되어 발생한 에러였다. 아래와 같이 해당 위치에 있는 list 파일에서 저장소 url을 수정해 주자. /etc/apt/sources.list 기존 deb http://deb.debian.org/debian stretch main deb-src http://deb.debian.org/debian stretch main deb h..
2023.09.11 -
dockerfile에 pythonpath를 환경 변수로 잡기
ENV PYTHONPATH "${PYTHONPATH}:[추가할 경로]"
2023.01.07 -
우분투에 python3.10 설치하기
ubuntu docker image를 다운 받아서 해당 이미지에 python3.10을 설치하려고 한다. 아래는 python3.10을 설치하는 docker file FROM ubuntu:18.04 RUN mkdir -p /app WORKDIR /app RUN apt-get update RUN apt-get install -y git build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev liblzma-dev # python 설치 RUN wget https://www.python.org/ftp/python/3.10.9/Py..
2023.01.06 -
Bad Substitution
$> ./test.sh alpine으로 만든 docker 컨테이너 내에서 위와 같이 실행하면 bad substitution이란 에러가 발생하며 실행이 안된다. bad substitution의 경우 shell이 다른 경우에서 호환성 문제로 발생하는 에러 메시지로 위의 경우는 아래와 같이 bash shell로 실행해주면 정상적으로 동작한다. $> bash test.sh
2023.01.05 -
dockerfile로 container 생성 시 container를 계속 띄우기
dockerfile로 image를 만들고 생성된 image를 컨테이너로 만드는 과정에서 컨테이너 내에 직접 들어가서 디버깅을 해야 하는 경우가 종종 발생한다. 하지만 이렇게 컨테이너에 접속하기 위해서는 컨테이너가 종료하지 않고 계속 떠 있어야 하는데 dockerfile 에서 cmd 명령을 아래와 같이 주면 컨테이너가 종료하지 않고 계속 떠 있는 상태를 만들 수 있다. FROM python:3.8-slim CMD ["tail", "-f", "/dev/null"] /dev/null은 리눅스의 null device로써 입력되는 모든 데이터를 EOF로 보내는 역할을 한다. 해당 null device 파일을 계속 tail을 검으로써 해당 container가 종료되지 않고 계속 살아있게 둘 수 있다. 이 외에서 무..
2023.01.04