GO 기본문법: 함수, 상수, loop
·
Cloud/GO
함수 정의형태func Add(a int, b int) int { return }{키워드} {함수이름}(파라미터 명, 파라미터 자료형) {반환형} 으로 구성 package mainimport "fmt"func Add(a int, b int) int { return a+b }func main() { c:= Add(3,6) fmt.Println(c)}package mainimport "fmt"func Divide(a, b int) (result int, success bool) { if b == 0 { result = 0 success = false return } result = a / b success = true ret..
GO 기본문법 : 변수, 상수
·
Cloud/GO
변수package main import "fmt"func main(){ var a int = 10 var msg string = "Hello" fmt.Println(msg, a)}변수 선언할때엔 {키워드} {변수이름} {자료형} = {값} 형태로 넣는듯  Type castingpackage mainimport "fmt"func main(){ var a int = 3 var b int c := 5 fmt.Println(a,b,c)}b 처럼 값이 없으면, 기본값 0 으로 설정됨c 처럼 키워드, 자료형을 제외하고 선언하는것도 가능함  Local Variablepackage main import "fmt"var g int = 10 func main(){ var m ..
GO 빌드 및 실행 예제
·
Cloud/GO
코드 작성vi hello.gopackage mainimport "fmt"func main() { fmt.Println("Hello World!")} 빌드 및 실행하는거go mod init {filename} : Go Module 을 만든다go build : Go Build 로 실행파일을 만든다.{filename}: 실행파일을 실행한다  이런식으로도 가능할듯…폴더 생성mkdir ch2 GO 파일 생성vi ch2/hello.gopackage main import "fmt"func main(){ var a int = 10 var msg string = "Hello" fmt.Println(msg, a)} GO mod 파일 생성vi ch2/go.modmodule goproject/ch2go ..
메모리 부족 이슈 : 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 ..
jjongguet
'Cloud' 카테고리의 글 목록