분류 전체보기 92

[Go언어] 알파인리눅스(Alpine Linux)에서 Go 1.20이상 실행하기 (__res_search: symbol not found, libresolv.so.2)

[개발 환경] Kubernetes Alpine Linux (3.16) Go (1.19 → 1.20) go언어로 프로젝트를 진행하던 도중 go 버전을 1.19에서 1.20으로 올린 뒤 빌드를 진행하였다. 그리고 발생한 에러 Error loading shared library libresolv.so.2: No such file or directory (needed by /my_project) Error relocating /my_project: __res_search: symbol not found __res_search 심볼을 찾지 못한다는 에러인데 구글링을 열심히 해보니 경량 OS 이미지인 알파인(Alpine) 리눅스에서 해당 라이브러리가 없다는 사실을 알아냈다. 그럼 어떻게 해결하는지 확인했는데 생각보..

Go언어 2023.10.23
[C언어] strncmp 함수 (지정한 길이만큼 문자열 비교)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 지정한 길이만큼 문자열을 비교할 때 사용한다. 헤더 #include ※ 함수 사용 시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 int strncmp(const char* str1, const char *str2, size_t size); 파라미터 const char* str1 비교할 첫번째 문자열(포인터) 버퍼를 입력한다. (반드시 유효한 포인터(주소)를 입력해야 한다.) NULL 문자로 종료되는 문자열을 권장한다. const char* str2 비교할 두번째 문자열(포인터) 버퍼를 입력한다. (반드시 유효한 포인터(주소)를 입력해야 한다.) NULL 문..

C언어/string.h 2023.07.31
[C언어] strncat 함수 (문자열 연결)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열에 지정한 길이의 문자열을 연결할 때 사용한다. 헤더 #include ※ 함수 사용 시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 char* strncat(char* dest, const char* source, size_t count); 파라미터 char* dest 연결(변경)하려는 target string 버퍼를 입력한다. 반드시 NULL 문자로 종료되어야 한다. 최소 dest + count 만큼의 버퍼크기가 확보되어야 한다. const char* source dest에 연결할 string을 입력한다. NULL 문자로 종료되는것을 권장한다. siz..

C언어/string.h 2023.07.10
[DevOps] Kubernetes에 Gitlab Runner 설치 및 연동하기 (Helm)

[참고하면 좋은 포스팅] Kubespray를 사용한 Kubernetes 간단 설치 [Kubernetes] kubespray 를 사용한 k8s 설치 (Rocky9) [시스템 구성] 1. 방화벽 해제 + swapoff (모든 Node에서 수행) systemctl stop firewalld systemctl disable firewalld swapoff -a 2. SSH Key 생성 및 복사 ssh 생성 ( ※ Master Node 에서만 root 계정으로 진행 ! ) ssh-keygen -t rsa M hackerpark.tistory.com Kubernetes 대시보드 OpenLens 설치 [Kubernetes] 쿠버네티스 대시보드 OpenLens 설치 (k8s dashboard openlens insta..

DevOps 2023.05.16
[Kubernetes] kubespray 를 사용한 k8s 설치

[시스템 구성] 1. 방화벽 해제 + swapoff (모든 Node에서 수행) systemctl stop firewalld systemctl disable firewalld swapoff -a 2. SSH Key 생성 및 복사 ssh 생성 ( ※ Master Node 에서만 root 계정으로 진행 ! ) ssh-keygen -t rsa Master Node 에서 생성된 public key 를 Master Node 와 Worker Node 의 ~/.ssh/authorized_keys 에 복사 # Master Node 의 pub key 확인 cat ~/.ssh/id_rsa.pub # .ssh 폴더 생성 (Master Node 는 이미 있음) mkdir ~/.ssh # 위에서 생성한 Makster ssh pu..

Kubernetes/실습 2023.05.15
[Docker] Dockerfile의 구조와 문법

Dockerfile을 작성하기 전에 image layer에 관련된 글을 읽고 오는 것을 추천한다. (image를 구성하는 image layer) [Docker] image를 구성하는 image layer Docker image & conatiner Image의 정의 Container라는 독립된 환경에서 서비스가 실행 가능하도록 필요한 요소를(서버 환경, 실행 파일, 라이브러리, 구조 등...) 하나의 패키지 형태로 묶는 형태 Container의 hackerpark.tistory.com Dockerfile Dockerfile은 application을 container화 하기 위한 과정을 기록(layer)하는 것으로 docker는 이를 통해 image를 생성한다. 물론 최근(2023-04-23 기준)에는 d..

Docker & Container 2023.04.26
[Docker] image를 구성하는 image layer

Docker image & conatiner Image의 정의 Container라는 독립된 환경에서 서비스가 실행 가능하도록 필요한 요소를(서버 환경, 실행 파일, 라이브러리, 구조 등...) 하나의 패키지 형태로 묶는 형태 Container의 정의 소프트웨어 서비스를 실행하는데 필요한 요소를 포함하는 경량 패키지 Docker의 image는 특정 환경과 파일, 라이브러리 등을 실행할 수 있는 Container를 생성하기 위한 파일이다. (vm에서는 iso 파일에 해당되는 파일이다.) image만 있으면 container를 계속 생성할 수 있으며, image 하나를 가지고 여러 container들을 생성할 수 있다. Image Layer Image는 container를 실행하기 위한 요소들을 효율적으로 관..

Docker & Container 2023.04.23
[Docker] OCI(Open Container Initiative) & CRI(Container Runtime Interface)

초창기 Docker Model 초창기 Docker는 LXC에 의존하여 Container를 관리하였으며 monolithic 한 구조로 Docker Daemon 하나에서 Docker client, Docker API, Container Runtime, image build 등 여러 기능들을 관리하였다. LXC (Linux Container) LXC는 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템들을 실행하기 위한 운영 시스템 가상화 방법이다. cgroup, namespaces 기술을 사용하여 Container들이 독립된 환경에서 실행되도록 하는 기술이며 현재의 Docker Container의 부모(?)라고 볼 수 있다. Docker Container Runtime (libcontainer) LX..

Docker & Container 2023.04.18
[Docker] Virtual Machine(VM) & Docker(Container) 정리

VM (Virltual Machine) VM은 Hypervisor 기반의 가상 시스템으로 Host와 완전히 분리된 환경을 구축하고 실행할 수 있도록 해주는 기술이다. VM은 보통 Type1과 Type2 두 가지로 나뉘는데 둘의 차이점은 아래와 같다. VM (Type1) Hypervisor가 H/W 위에 직접 설치되며 기존의 방식(Type2)과 비교하여 H/W 접근성이 훨씬 효율적으로 설계되었기 때문에 성능과 확장성, 안정성을 확보할 수 있다. (Hypervisor 자체가 불안정하면 모든 게 불안정한 문제가 있다.) 이처럼 H/W 위에 직접 Hypervisor가 설치되는 것을 베어메탈 하이퍼바이저(Bare Metal Hypervisor)라고 부른다. (대표적으로 Xen, Hyper-V가 Type1에 속한다..

Docker & Container 2023.04.17
[C언어] time 함수 (현재 시간을 초단위로 구하기)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 1970-01-01 00:00:00 이후 현재까지의 시간을 초단위로 계산한다. 헤더 #include ※ 함수 사용 시 time.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 time_t time(time_t* _Time); 파라미터 time_t* _Time time 함수의 반환값을 저장할 time_t 변수의 주소값을 입력한다. NULL을 넣을 경우 파라미터는 무시하고 time 함수의 결과가 반환(return)된다. 반환값 성공시 1970-01-01 00:00:00 이후 현재까지의 시간을 초 단위로 반환한다. 파라미터가 NULL이 아닐 경우 입력한 파라미터에도 값을 반환해 ..

C언어/time.h 2023.04.14
반응형