분류 전체보기 94

[Kubernetes] 쿠버네티스 클러스터가 무엇일까? (k8s 정리 - 2편)

글 쓰기에 앞서 아직 Kubernetes가 뭐 하는 녀석인지 모른다면 앞에 1편을 먼저 보고 오는 것을 추천한다. https://hackerpark.tistory.com/entry/Kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 [Kubernetes] 쿠버네티스란 무엇인가? (k8s 공부 - 1편)글 쓰기에 앞서 최근 쿠버네티스와 직접적인 업무를 진행하면서 정리를 해야 한다고 매번 느꼈지만 미루고 미루다가 마음먹고 공부하는 내용들을 정리해서 기록하려고 한다. 처음 쿠버네티스hackerpark.tistory.com 클러스터(Cluster)가 뭘까? Kubernetes는 여..

Kubernetes/이론 2023.12.31
[Kubernetes] 쿠버네티스란 무엇인가? (k8s 정리 - 1편)

글 쓰기에 앞서 최근 쿠버네티스와 직접적인 업무를 진행하면서 정리를 해야 한다고 매번 느꼈지만 미루고 미루다가 마음먹고 공부하는 내용들을 정리해서 기록하려고 한다. 처음 쿠버네티스를 접했을때 느꼈던 거대한 진입장벽이 5년, 10년 후의 나 또는 다른 사람들에게 조금이나마 낮아질 수 있기를 소망해 본다. 쿠버네티스를 이해하기 전 Container에 대한 기본 지식이 없다면 아래 글을 먼저 보고 오는 것을 추천한다. https://hackerpark.tistory.com/entry/Docker-Virtual-MachineVM-DockerContainer-%EC%A0%95%EB%A6%AC [Docker] Virtual Machine(VM) & Docker(Container) 정리 VM (Virltual Mac..

Kubernetes/이론 2023.12.17
[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
반응형