일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- nvidia-container-cli
- k8s고장나면
- BigSur
- 얼굴검출
- kubernetes자동완성
- kubernetes
- kubectl #
- kubectl completion bash
- Pods Evicted
- #Kuberspawner
- face verification
- 코틀린
- kotin
- RunContainerError
- 얼굴분류
- 삶이란...
- nvidia-driver-plugin
- macm1
- k8s-device-plugin
- k8s
- k8s-driver-plugin
- nvidia-docker
- 넘무무서웡...
- worker node
- #kubernetes
- ₩
- Kotlin
- Kubernets 이론
- mac m1
- GPU
- Today
- Total
목록분류 전체보기 (27)
더듬이
일단 dockerhub 에 로그인 한뒤 Settings >security 메뉴를 눌러서 token을 발급받자. 발급 방법은 간단하다. New Access Token 버튼을 클릭 후 token에 대한 설명만 적으면 token을 발급 받을 수 있다. 이제 token 옆의 복사 아이콘을 통해 token을 복사한뒤 해당 도큰을 사용하기를 원하는 저장소로 가보자. github 저장소에서 settings> secrets > actions 를 들어가 new repository secret클릭 후 dockerhub id와 아까 발급받은 token을 저장해준다. 난 위처럼 등록해줬다. 이제 해당 저장소의 docker action에서 dockerhub login 기능을 사용할 수있다!!
ssh key 발급 받기 ssh-keygen -t rsa -b 4096 -C "hsd3030@gmail.com" mac 은 기본적으로 ssh-keygen이 깔려있을 것이다. 위를 통해서 ssh 키를 발급해주면 password를 입력하라고 나오는데 그냥 엔터만 두번쳐서 passwd없이 사용가능하다. 난 로컬에서 사용할거라 그냥 password없이 생성했다. 물론 github에서는 password있는것을 권장한다. ssh key 등록하기 이처럼 ssh key가 생성될텐데 기본적으로 ssh파일 명을 따로 지정하지 않았기에 ~/.ssh/id_rsa 로 생성되었을 것이다. 생성된 공개키를 cat을 통해 출력하고 드래그 복사 해주자(꼭 끝까지 잘 복사하세요) cat ~/.ssh/id_rsa.pub 이제 이 공개키를..
이전 맥버전에서는 bash 를 새로 설치하면 /usr/local/bin/bash 에 깔렸는데 빅서에서는 /opt/homebrew/bin/bash 에깔렷다. 근데 kubernets 공식문서에서는 /usr/local/bin을 prefix로 생각하기 때문에 기존꺼 그대로 따라하면 적용안되는 경우가 좀 있다 ㅎ... 역시 무작정 명령어 따라치지말고 설치 path확인 설치로그를 꼼꼼히 보자~ 1. Homebrew 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 위 명령어로 brew 설치를 하고 나면 아래와 같은 로그가 표기된다. (언제나 install이든 뭐든 로그는 한번씩 보는 습관을..
1.Kubelet kubelet은 각 노드에 설치된 에이전트로써 kubernetes안에 구성된 node위에서 실행되는 container들이 pod내의 실행되는걸 관리하는 역할을 한다. 하지만 노드안에 있는 container라고 하더라도 kubernetes를 통해서 생성되지 않은 container들은 관리하지 않는다 . kubelet에서 주의할 점은 우리가 kubernetes 를 구축할때 사용하는 bootstarp 솔루션 (kubeadm등) 에서 따로 설치를 해주지 않기에 항상 버전에 주의해야합니다. kubelet 은 kubeadm에서 설치하는 api server의 버전과 호환되어야하는데 예를 들면 아래와 같은 지원하는 버전 규칙이 있으며 kubelet은 kube-apiserver보다 최신일 수 없으며, ..
가끔 vm 이나 장비 리부트 이후에 kubelet 이 start안되는 경우가 있다. (K8s 1.8X 기준) 이런경우에 로그를 보면 running with swap on is not supported 라는 문구를 자주 확인 할 수 있다. Kubelet 을 켜려는데 Swap메모리가 활성화 되어있어서 킬수 없다는 뜻이다. 그럼 swapoff -a. 이후에 실행 하면 잘 실행됨을 확인 할 수 있다. 여기서 swap 메모리가 무엇인지 먼저 짚고 넘어가려한다. 메모리는 이름을 번역하면 기억장치이며 실제로도 정보를 기억하는 역할을 한다 . 우리가 보통 메모리라고생각하는 것은 주기억장치 중 하나인 RAM이다 모든 정보를 전기신호로 담아두기때문에 빠른 연산이 가능하다는 장점이 있는 휘발성 메모리이다 . 그럼 swap ..
요즘 공부를 잘 안하는것 같아서 Udemy의 강의를 듣고 블로그에 적어보려 한다. 이번에는 끝까지 열심히해야지 화이팅! 1. ETCD server 1. ETCD 란 무엇인가 자 이제 먼저 ETCD를 먼저 고민해보고자한다. 결론적으로 ETCD server 는 key-value 구조의 database server이다 . 기본적으로 database는 table형태를 가지고 있지만 key-value 형태를 사용해 빠르고 읽고 쓰는 장점을 가지고 있다. 2. ETCD in Kubernetes 이 etcd server는 kubeadm 을 사용하여 cluster를 세팅할 시에 pods 의 형태로 배포된다. 실제로 etcd-server의 pod의 로그를 보면 정기적으로 file을 지우고 mvcc: store.index..
1. Docker mysql image 가져오기 아래 명령어 입력시 간단히 msyql docker 이미지를 가져올 수 있다. 기본적으로 docker pull image_name:tag 의 형태로 사용하면 된다. docker pull mysql docker pull mysql:5.7 하지만 m1의 경우 아래와 같은 메시지가 뜰 것이다. m1 노트북을 사용하는 경우에는 아래와 같은 명령어를 통해서 image를 받아오기로하자. docker run --rm --platform linux/amd64 -it mysql:5.7 맨 밑에 erorr 는 무시하도록하자 사실 위 명령어는 mysql:5.7 이미지를 받아오는 것 뿐아니라 실행시키는 작업까지 포함인데 난 이미지 로드하는데만 사용하겠다.. 이게시글은 m1 아닌사..
일단 기본적으로 docker와 nvidia-driver가 설치되었다는 전제하에 설정을 진행하겠다. 1. worker-node에 nvidia-docker2를 설치 공식 사이트에 따라 아래 명령어들을 실행해보자 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-..
실제로 gpu 노드를 gpu가 필요없는 pods 를 생성할때 사용 못하는 것은 너무나 비효율 적인것 같다. 실제로 https://github.com/NVIDIA/k8s-device-plugin 문서에 보면 아래와 같이 나와있습니다. apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: containers: - name: cuda-container image: nvcr.io/nvidia/cuda:9.0-devel resources: limits: nvidia.com/gpu: 2 # requesting 2 GPUs - name: digits-container image: nvcr.io/nvidia/digits:20.12-tensorflow-py3 resources..
상황 설명 master node는 얌전한데 gpu카드가 있는 worker node가 고장난 상황이였다. reaboot 한 이후에 gpu pods에 대한 생성,삭제 기능이 pending 걸리는 현상이 발생되었다. 자세히 확인해보니 nvidia-device-plugin pods에 RunContainerError 가 발생하였고 아래와 같은 로그를 확인할 수 있었다. Error: failed to start container "nvidia-device-plugin-ctr": Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449..