전체 글
[Go] Go Module
Go Module 이란 패키지의 모음으로써, 한 개의 모듈은 다수의 패키지를 포함할 수 있다. 모듈을 통해 Golang은 패키지들의 종속성을 관리할 수 있으며, 모듈은 패키지 관리 시스템으로써 활용된다. 모듈을 패키지를 트리 형식으로 관리하며, 루트(root) 폴터에 go.mod 파일을 생성하여 모듈을 정의하고, 종속성 정보를 관리하게 된다. go.mod는 네 가지 키워드를 사용한다. (module, require, replace, exclude) module 모듈 경로를 저장한다 소스코드에서 패키지를 가져올 때, 절대 경로를 사용할 필요 없이 module에 선언되어있는 경로를 사용하면 된다. require 빌드시 필요한 종속성 정보를 저장 모듈을 사용하여 빌드하면 자동으로 필요한 패키지를 다운로드 및 ..
[kubernetes] mac m1 kubernetes 구축
1. vm 생성 (UTM 사용) m1의 경우 vmware, virturebox등을 m1에서 사용하기 힘들기 때문에 UTM이라는 가상 머신을 사용하였다. ubuntu-server만 깔았을 경우 왜인진 모르겠지만 clipboard copy가 되지 않아 ubuntu-desktop도 같이 깔아주니 clipboard copy가 되었다! master 3대와 worker1대로 구성하였다. (이유는 없고 master를 여러대 띄워보고 싶어서) 2. hostname 설정 각 노드마다 hostname을 다르게 설정해주어야 한다. # vi /etc/hosts 192.168.100.10 master1 192.168.100.11 master2 192.168.100.12 master3 192.168.100.13 worker1 #..
[Kubernetes] dial tcp 127.0.0.1:10248: connect: connection refused.
[문제] kubeadm init 실행시 다음과 같은 오류가 발생했다 [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused. Unfortunately, an error has occurred: timed out waiting for the condition This error is likely caused by: - The kubelet is not running - The kubelet is unhealthy due ..
kanico 란
kanico를 사용하여 Dockerfile을 빌드하고 푸시할 수 있다. Dockerfile을 빌드할 때 보통 Dockere데몬에 의해 빌드되지만, 이를 실행하려면 시스템에 대한 루트 엑세스가 필요하다. 권한있는 루트 엑세스 없이도 Dockerfile에서 컨테이너를 빌드하기 위한 오픈소스 도구가 kanico 이다. 참고 : https://cloud.google.com/blog/products/containers-kubernetes/introducing-kaniko-build-container-images-in-kubernetes-and-google-container-builder-even-without-root-access Introducing kaniko: Build container images in ..
[IaaS 필수 분석] 가상화 인프라 분석
학습목표 가상화 기술이 무엇인지 설명할 수 있다. 하이퍼바이저가 무엇인지 설명할 수 있다. 하이퍼바이저와 컨테이너 간 차이점에 대해 설명할 수 있다. 학습내용 가상화 기술 분석 하이퍼바이저 기술 분석 하이퍼바이저와 컨테이너 간 차이점 가상화 분야 데이터 가상화 다수의 이기종 데이터를 단일한 소스로 접근 가능 네트워크 기능 가상화 NFV 서버 가상화 하이퍼바이저 운영체제 가상화 컨테이너 하이퍼바이저 VS 컨테이너 하이퍼바이저 하나의 물리적 서버를 여러 개 동일한 서버처럼 가상으로 만드는 것 타입1 : 하나의 컴퓨터에 여러개의 운영체제가 있을 수 있음. 일반적으로 가장 많이 사용됨. 타입2 : 개발자들이 주로 개발할 때 많이 사용됨. 윈도우용 버추얼 박스를 설치하고 그 위에 리눅스를 설치하는 방법. 컨테이너
[IaaS 필수 분석] 하드웨어 인프라 분석
학습목표 인프라 개발자가 알아야 할 기본지식들이 무엇인지 설명할 수 있다. 데이터센터를 구성하는 주요 하드웨어 구성요소에 대해 설명할 수 있다. 서버 구조와 BMC 기능에 대해 설명할 수 있다. 학습내용 인프라 기본 지식들 하드웨어 인프라 구성 요소 서버 구조 및 BMC 기능 하드웨어 인프라 분석 소프트웨어 네트워크 프로토콜 네트워크 가상화 : SDN, NFV 블록 스토리지, 오브젝트 스토리지 서버 운영체제 설치 및 설정 서비스 데몬 설치 및 설정 : Web, DB 서버 가상화 : 하이퍼바이저 vs 컨테이너 서버 모니터링 : Nagios DevOps Infrastructure as a code 하드웨어 네트워크 장비 : 스위치, 라우터 스토리지 장비 : Cold vs Hot 서버 장비 서버 모니터링 및 ..
[IaaS 필수 분석] 클라우드 컴퓨팅 아키텍처 분석
학습 목표 클라우드 컴퓨팅의 특징에 대해 설명할 수 있다. 클라우드 컴퓨팅의 서비스 모델에 대해 설명할 수 있다. 클라우드 컴퓨팅과 호스팅 서비스의 차이점에 대해 설명할 수 있다. 학습 내용 클라우드 컴퓨팅 정의와 특징 클라우드 컴퓨팅 서비스 모델 클라우드 컴퓨팅 배치 모델 클라우드 컴퓨팅 이란? 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술 클라우드 컴퓨팅 특징 on-demand (요청이 있을 때마다) self-service : 사업자와 직접 상호 작용하지 않고, 사용자의 개별 관리화면을 통해 서비스를 이용할 수 있음 broad network access (폭넓은 네트워크 접근성) : 다양한 디바이스를 통해 서비스에 접속할 수 있음. 리소스의 공..
[홍정모의 따라하며 배우는 C언어] 포인터형 매개변수
함수의 매개변수는 값을 복사해서 사용하는 것이다 그렇기 때문에 함수 내부에서 값을 바꿔도 변하지 않으며, 주소값을 찍어봐도 당연히 호출한 부분의 주소값과는 다르다. 이것을 call by value 라고도 한다. 매개변수에 주소값 즉 포인터 변수를 넣게되면 주소값이 가리키는 값이 바뀌게 된다. 이것은 값을 복사해서 사용하는 것이 아니라 직접 주소값을 바꾸는 것이므로 메모리 비용이 덜 들어간다. 이것을 call by pointer 라고 한다.