분류 전체보기 1185

0/1 nodes are available: 1 Insufficient nvidia.com/gpu

현상 아래 매니페스 파일과 같이 nvidia.com/gpu 리소스를 필요로 하는 pod 생성 시 에러 메세지와 함께 포드가 스케쥴링되지 않았다. apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: containers: - name: nginx image: nginx resources: limits: nvidia.com/gpu: 1 # requesting 1 GPU 에러 메세지 확인 $ kubectl describe pod [.. 생략 ..] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 3s (x23 over 3m) default-schedu..

Kubernetes/삽질 2022.02.25

[Redmine on AWS] Bastion Host 생성

Subnet, IGW, NAT GW 등 기본적인 VPC 구성이 완료되었으므로, 이제부터는 EC2를 구성해나갈 것이다. 이번 글에서는 Public Subnet에 위치할 Bastion Host를 생성할 것이다. Bastion Host 네트워크 내외간의 게이트웨이 역할로, 네트워크 내부를 직접 접속하는 것을 방지하기 위해 네트워크 앞단에 위치하고 있다. Bastion Host는 외부 접속이 필요하므로 Public Subnet에 EC2로 생성할 것이며, 접속을 위한 Public IP 할당이 필요하다. 생성 방법 1. AWS EC2 서비스 접근 > 인스턴스 시작 버튼 클릭 2. 사용할 AMI를 선택한다. 프리 티어를 사용하고 있다면 프리 티어를 지원하는 AMI 중에 선택해야 한다. 참고로 AWS Linux 2 A..

[EC2] 태그 관리 시 Tag keys must match pattern ([0-9a-zA-Z-_+=,.@:]{1,255}), and must not be a reserved name ('.', '..', '_index') 에러

AWS에서 태그는 자원 관리를 위해 사용자가 정의하는 key-value 쌍이다. 태그 관리 시 아래와 같이 태그의 key가 유효하지 않다는 에러와 함께 업데이트가 불가능한 경우에는 EC2의 세부 정보에서 인스턴스 메타데이터의 태그 허용이 활성화되어 있지 않은지 먼저 살펴본다. 인스턴스 메타데이터의 태그 허용은 인스턴스 메타데이터에서 인스턴스의 태그를 접근 여부를 허용하거나 허용하지 않기 위한 기능으로, 기본적으로 비활성화되어 있다. 이 기능을 활성화하는 경우에는 공백, /, ., .., _index가 포함된 값은 사용할 수 없기 때문에 Cost Type이라는 태그 키를 사용할 수 없는 상태였다. 비활성화 방법은 아래와 같다. 인스턴스 메타데이터 태그 허용 비활성화 방법 1. 비활성화한 EC2 인스턴스를 ..

AWS 2022.02.23

node NotReady - kubelet (code=exited, status=255)

쿠버네티스 클러스터 내 노드 일부가 notReady 상태를 유지하고 있다. 이런 경우는 대부분 노드에서 kubelet이 정상적으로 동작하고 있지 않는 상태일 경우에 해당한다. describe 명령으로 확인해보면 이런 모양에 가까울 것이다. kubelet 동작 확인 systemctl 명령으로 kubelet의 상태를 확인해본다. systemctl status kubelet.service exit-code와 함께 정상적으로 동작하지 않고 있는 상태임을 확인할 수 있다. 만약 아래와 같이 inactive 상태인 경우, kubelet을 재시작한 후의 상태를 확인해보도록 한다. kubelet 시작/재시작 # 시작 systemctl start kubelet.service # 재시작 systemctl restart k..

Kubernetes/삽질 2022.02.22

[NVIDIA/gpu-monitoring-tools] dcgm-exporter CrashLoopBackOff - 2

2021.12.14 - [NVIDIA/gpu-monitoring-tools] dcgm-exporter CrashLoopBackOff 위 글에 이어 dcgm-exporter에서 발생한 CrashLoopBackOff 상태를 해결 방법을 적어둔다. 현상 에러 메시지 확인할 수 있는 pod container 로그가 없어, describe 명령으로 상태를 확인했다. kubectl describe pods dcgm-exporter- # ... 생략 ... Containers: dcgm-exporter: Container ID: docker:// Image: nvcr.io/nvidia/k8s/dcgm-exporter:2.2.9-2.4.0-ubuntu18.04 Image ID: docker-pullable://nvcr..

Kubernetes/삽질 2022.02.21

[nvidia-smi] Failed to initialize NVML: Driver/library version mismatch

Nvidia GPU를 사용하는 서버에서 nvidia-smi 명령어 수행 시 아래와 같이 에러 메시지가 출력되면서 동작하지 않는 경우가 있다. dmesg 명령을 사용하면 아래와 같은 NVRM: API mismatch 메세지를 볼 수 있는데, 클라이언트가 가진 버전과 kernel module의 버전에 차이로 인한 메세지라는 것을 확인할 수 있다. 보안 업데이트를 자동으로 수행하는 unattended-upgrade에 의해 버전 업데이트가 발생했기 때문에 버전에 차이가 생긴 게 그 원인이다. 관련 이력은 아래와 같이 확인할 수 있다. 업데이트 이력 확인 1. apt 로그 확인 view /var/log/apt/history.log 2. unattended-upgrades 로그 확인 view /var/log/una..

Linux 2022.02.20

[Ubuntu 20.04 LTS] Node.js 설치 / NodeSource

Node.js Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임 JavaScript로 브라우저 밖에서 서버를 구축하는 등의 코드를 실행할 수 있게 해주는 런타임 환경 이 글에서는 Ubuntu 환경에 node.js 설치하는 방법에 대해 정리한다. 설치 방법에는 Ubuntu 기본 패키지 저장소 사용, nvm 사용 등 여러 가지 방법이 존재하지만 Ubuntu 기본 패키지 저장소를 사용하면 10.19.0이라는 오래된 버전이 설치되기 때문에, NodeSource PPA를 추가하여 작성일 기준 최신 TLS 버전(16.13.2)을 설치할 것이다. NodeSource 엔터프라이즈급 Node 지원 제공에 초점을 맞춘 회사 Node.js의 최신 버전이 포함된 저장소를 관리하고 있다. 방법 패..

Linux 2022.02.19

[Python] Mail CC 추가

2021.06.21 - Python 첨부 파일 메일 전송 Python 첨부 파일 메일 전송 2021.06.20 - Python 텍스트 메일 전송 지난 글에 이어 이 글에서는 첨부파일을 포함한 메일을 전송할 수 있는 코드를 다룬다. 마찬가지로 코드 전체를 복사해서 사용한다면, MAIN 아래의 email_sender부터 passwd.tistory.com Mail 송신 시 참조 수신자를 추가해야 하는 필요성이 생겨서, 위 글 이후로 아주 오랜만에 Mail 관련으로 정리한다. 이전 글의 코드에서 수정한 부분만을 정리해둔다. 방법 1. 참조 수신자 목록을 메세지 헤더에 추가한다. 각 메일 주소는 ,(쉼표)로 구분되어야 한다. 이 글에서는 참조 수신자 목록을 List로 초기화할 것이기 때문에 join 함수를 사용해..

Python 2022.02.18

[Redmine on AWS] NAT Gateway 생성

NAT Gateway NAT(Network Address Translation)은 패킷의 IP, Port 등을 변환하는 기술을 뜻하며, 주로 Private Network가 외부의 Public Network와 통신하기 위해 사용된다. 인스턴스의 펌웨어나 업데이트를 위한 outbound 트래픽을 허용하기 위함으로, NAT 게이트웨이는 Private Subnet에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷 게이트웨이로 연결한다. AWS에서 NAT를 사용하는 방법에는 두 가지가 존재한다. NAT Gateway : AWS VPC 내 NAT Gateway 사용 NAT Instance : EC2 인스턴스를 NAT용으로 생성하여 사용 NAT Gateway가 NAT Instance보다 고가용성을 보장하기 때문에 ..

[BOJ] 1181 - 단어 정렬

문제 https://www.acmicpc.net/problem/1181 알파벳 소문자로 이루어진 임의의 개수의 단어를 입력받아, 아래와 같은 기준으로 정렬하는 코드를 작성하라. 1. 길이가 짧은 것부터 2. 같은 길이의 단어는 사전 순 같은 단어가 여러 번 입력된 경우, 한 번만 출력한다. 풀이 내 풀이 1. 단어의 수만큼 단어를 입력받아, set으로 저장한다. (중복 제거) 2. set을 list로 형 변환한 후, 사전 순으로 정렬한다. 3. 길이를 조건으로 하여 정렬한다. import sys n = int(sys.stdin.readline()) l = set(sys.stdin.readline()[:-1] for _ in range(n)) l = sorted(list(l)) l = sorted(l, k..

Algorithm/백준 2022.02.16