메모리 부족 이슈 : Unexpected bus error encountered in worker. This might be caused by insufficient shared memory 의 올바른 해결법
·
Cloud/Docker
INTRO로컬에서 작동하는 Pytorch 모델을 docker image로 만들어 작동시키려 하면Unexpected bus error encountered in worker. This might be caused by insufficient shared memory 라는 에러메세지를 뜨곤한다. 이 에러는 현재 도커이미지를 실행시키기엔 할당된 메모리가 부족하단것이고, 그에 대한 해결책으로 제시되는 방법 중 하나는docker run 할때 --ipc=host 파라미터를 사용하는것이다.  하지만 과연 이 방법이 올바른 방법일까? Docker 리소스 옵션에 대해우선 Docker 리소스 옵션에 대해서 이해해야한다. 기본적으로 Docker는 시스템에서 할당한 리소스만큼만 사용가능하다. Docker Desktop App..
Deployment HPA: replicas 우선순위
·
Cloud/Kubernetes
HPA? 용어: Horizontal Pod Autoscaling(수평 스케일링) 구현체: HorizontalPodAutoscaler 의미: 부하 증가(트래픽, 리소스사용량 등) 에 대해 Pod를 더 배치하는것을 뜻한다. VPA(Vercital Pod Autoscaling, 수직 스케일링) 은 이미 실행중인 Pod에 더 많은 자원(리소스) 를 할당하는 방식으로 진행되며, HPA와 정반대의 기능이다. 적용대상: 크기 조절이 불가능한 Object(e.g. Daemonset) 를 제외한 Object에 적용가능하다. HorizontalPodAutoscaler 목표: 워크로드 리소스(deployment, statefulset) 을 자동으로 업데이트하며, 워크로드의 크기를 수요에 맞게 자동으로 스케일링 하는것을 목표..
gcloud 계정 변경 적용 안될때: auth login, auth application-default login의 차이점
·
Cloud/GCP
알게 된 계기로컬환경에서 Gcloud CLI를 사용중인 계정이 2개 있었고, 필요할때마다 로그인 정보(gcloud auth login 명령어 사용) 를 바꿔가며 사용하고있었습니다. 그러나, 문제는 gcloud auth login 명령어로 사용자 계정을 변경한 상황에 발견했습니다. 구글클라우드에서 제공하는 서비스를 사용하려고보니 사용자 계정이 바뀌어있지 않은것을 발견했습니다.이를 해결하기위해 내용을 찾다가 gcloud auth login 명령어와 gcloud auth application-default login 명령어의 차이점을 알게 되었습니다.gcloud auth login 목적은 Google Cloud에서 사용하는 사용자의 계정 인증, gcloud cli를 사용하기 위한 작업계정을 설정하는것이다. 인..
GKE 인스턴스에 직접 연결하는 방법
·
Cloud/GCP
이전 글 https://jjongguet.tistory.com/171 와 연관됩니다. 테라폼으로 배포한 GKE 에 ssh 와 gcloud 로 연결하기 위한 방법을 총 정리했습니다. SSH 키 생성 ssh-keygen 사용한 키 생성 ssh-keygen -t rsa -f {키 파일 위치} -C {GCP계정 이메일} # 생성하려는 키의 위치가 ~/.ssh/gcp-example # GCP계정 이메일이 jjong@gmail.com 이라면 # ssh-keygen -t rsa -f ~/.ssh/gcp-example -C jjong@gmail.com 이때 2개의 키 파일이 생성됩니다. 위의 경우에는 gcp-example 과 이 생성됩니다. gcp-example파일: private key 라고 지칭, 로컬 → 서버로 ..
kubectl로 GKE, EKS 접근하기
·
Cloud/Kubernetes
kubectl을 통한 K8s 클러스터로의 접근 kubectl은 실행에 앞서 클러스터의 정보를 등록하게 되어있는데, 등록이되어있어야만 kubectl에서 다양한 클러스터의 kube-apiserver로 접근할수 있는것이다.https://kubernetes.io/ko/docs/concepts/configuration/organize-cluster-access-kubeconfig/ 핵심은 kubectl 은 $HOME/.kube 에서 kube config 정보를 찾고, 이에 해당하는 클러스터에 시도한다는것이다.eksctl, gcloud 의 차이클라우드 별 명령어 AWS의 EKS: eksctlEKS와 관련된 설정을 진행할때 사용하는 명령어 GCP의 GKE: gcloud GCP에는 GKE를 관리하기위한 전용명령어가 존..
테라폼으로 GKE에 노드 프로비저닝 하는 예제
·
Cloud/GCP
테라폼 공식 홈페이지 예제에서 나온대로 GKE에 노드를 프로비저닝 할때 에러가 있어서 정리하는 겸 해서 만들어봤다. 이전 글 https://jjongguet.tistory.com/170 와 연관됩니다. 공식링크: https://developer.hashicorp.com/terraform/tutorials/kubernetes/gke 0. GCP계정 생성 GCP 에 계정 및 project는 미리 생성되어있다고 가정함 예시에서 사용하는 Project ID 는 jjongjjong 이라고 지정함 1. gcloud SDK 설치 & kubectl 설치 brew install --cask google-cloud-sdk gcloud init #만약 기존에 사용중인 gcloud 계정이 있다면, 새로운 계정을 먼저 등록해야..
Minikube 구축하기
·
Cloud/Kubernetes
0. INTRO 이번에 할것 : Docker 설치, Minikube 설치 1. DOCKER 설정 Docker 공식 홈페이지 접속해서 환경에맞게 설치 https://www.docker.com/ 로컬에서 Docker 띄운 후 Setting진행 Setting → Kubernetes → Enable Kubernetes 체크 →Apply&restart 이후, Docker 실행 Docker Desktop, Kubernetes가 모두 running 상태가 될때까지 대기 2. minikube 설정 minikube 공식홈페이지 접속해서 환경에 맞게 설치 https://minikube.sigs.k8s.io/docs/start/ 쉘에서 minikube start 설치 확인을 위한 node확인 minikube kubectl ..
Kubernetes Cluster IP no such host : kube-state-metrics 설치
·
Cloud/Kubernetes
버전 설명 쿠버네티스 버전 1.26.1 구성 CLI 버전 1.21.1 해당 노드는 taint제거한 단일노드임 필요성 kubernetes의 정보를 활용하는 metricbeat-kubernetes.yml파일을 실행해보면 로그 메세지에 service/kubernetes의 Cluster IP 주소에 대해서 no such host 라는 로그가 찍힌적이 있다 그래서 무슨 이유인가 확인해봤다. 도커이미지에서는 확인이 안되었고, Helm으로 띄운 metricbeat에서 manifest를 확인해보니까 해당이미지를 사용하는걸 확인했다. 관련링크 : https://medium.com/finda-tech/kube-state-metrics에-대해서-1303b10fb8f8 주의사항 : 버전확인 kube-state-metrics는..
Operator, CRD 간략한 설명
·
Cloud/Kubernetes
이 글에서 Kubernetes 는 이하 K8s 라고 통칭한다. Operator, CRD를 알려면 좀 많이 알아야하는데 kube-apiserver K8s API 를 노출하는 K8s Control-Plane Component이지만, 실제로는 정말 단순한 API 서버 API 서버는 K8s Control-Plane의 프론트엔드 역할 K8s API서버의 주요 구현이며, 수평으로 확장되도록 설계되었음(여러개의 kube-apiserver 인스턴스를 실행하고, 인스턴스간 트래픽을 균형있게 조절할수 있다) K8s API K8s Control-Plane의 핵심이 K8s API API 서버는 최종사용자, 클러스터의 다른부분, 외부 컴포넌트가 서로 통신할수 있도록 하는 HTTP API 를 제공한다. K8s API 를 사용하면..
kubeadm init 에러 detected "cgroupfs" as the Docker cgroup driver
·
Cloud/Kubernetes
문제상황 kubeadm으로 클러스터를 구축하려고 진행중이였고, CNI 는 Calico를 사용하려고 했다. sudo kubeadm init --pod-network-cidr=192.168.0.0/16 그랬더니 다음과 같은 에러를 받았다 I0317 05:54:40.295054 21706 version.go:254] remote version is much newer: v1.26.2; falling back to: stable-1.21 [init] Using Kubernetes version: v1.21.14 [preflight] Running pre-flight checks [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup dr..
jjongguet
'Cloud' 카테고리의 글 목록