일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- macm1
- k8s고장나면
- face verification
- worker node
- kubernetes
- kotin
- 넘무무서웡...
- k8s
- nvidia-docker
- 코틀린
- Pods Evicted
- Kotlin
- nvidia-driver-plugin
- nvidia-container-cli
- 얼굴검출
- ₩
- mac m1
- RunContainerError
- kubectl #
- k8s-driver-plugin
- GPU
- kubectl completion bash
- kubernetes자동완성
- Kubernets 이론
- BigSur
- #kubernetes
- 얼굴분류
- k8s-device-plugin
- 삶이란...
- #Kuberspawner
- Today
- Total
목록Kubernetes (10)
더듬이
1. install file 다운로드 wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml k apply -f install.yaml 2. service type/port 변경하기 위 파일을 통해 접근하면 기본적으로 ClusterIP에 80,443 포트로 생성되는데 Local환경에서 테스트할거니까 접근하기 쉽게 하기위해서 LoadBanlacer로 변경해주자 kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}’ kubectl patch svc argocd-server -n argocd --type='json' -p ..
m1 os 업데이트 이후 kubectl 자동완성이 안된다 ㅜㅜ https://my-grope-log.tistory.com/37 mac m1에서 kubectl 자동완성 설정하기 (feat. m1은 bash path가 달라요~ ) 이전 맥버전에서는 bash 를 새로 설치하면 /usr/local/bin/bash 에 깔렸는데 빅서에서는 /opt/homebrew/bin/bash 에깔렷다. 근데 kubernets 공식문서에서는 /usr/local/bin을 prefix로 생각하기 때문에 기존꺼 그.. my-grope-log.tistory.com 위 글 그대로 진행했을때 문제 없지만 위에 처럼 에러가나면bash_completion 자동완성 실행파일을 못찾는 경우이다. 그럼 path를 직접 찾아서 bash 쉘 시작시 실..
이전 맥버전에서는 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이든 뭐든 로그는 한번씩 보는 습관을..
요즘 공부를 잘 안하는것 같아서 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..
일단 기본적으로 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..
상황 설명 Message: The node was low on resource: ephemeral-storage. Container notebook was using 1704Ki, which exceeds its request of 0. 어느날 갑자기 kubernetes api 가 안되서 kubectl get pods -A를 해보니 아래와 같은 container 상태를 확인할 수 있었다. kube-system metrics-server-8bbd5674f-224lj 0/1 Evicted 0 17d kube-system metrics-server-8bbd5674f-22jk8 0/1 Evicted 0 18d kube-system metrics-server-8bbd5674f-25x5c 0/1 Evicted 0 ..
일단 이 문서는 kubernetes 까지는 설치되어있다는 전제하에 실행하는 내용이다. brew install helm brew install kubectx 윗부분은 헬름 차트 사용을 위한 내용이며 밑에는 kubectx, kubens 명령어를 통해 효과적으로 클러스터를 관리하기 위함이다. kubectx를 설치하게 되면 kubens로 현재 가진 네임스페이스를 검색할 수 있고 kubens 명령을 통해 네임스페이스를 활성화 시킬 수 있다. 서비스 유지관리에서는 필수적인 기능이다. kubectx도 동일하게 사용하면 된다.
예전에 끔찍한 일이 한번 있었다. kubespawner에서 컨테이너를 생성하는데 생전 처음보는 에러가 생성되었다. SSL인증서가 만료되었다고 하는 말에 SSL 인증서 쓰는게 뭐있지... 하고 생각만했었다. 에러 로그 확인 HTTPSConnectionPool(host=hostVM, port=6443): Max retries exceeded with url: /api/v1/namespaces (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))) 해당 문제를 검색해보니 kubernetes cluster내부에서 통신시에 ..