본문 바로가기

반응형

분류 전체보기

(654)
[ 리눅스 / Linux ] 리눅스 ABI란? 리눅스 ABI (Application Binary Interface)는 소프트웨어의 바이너리 형식, 함수 호출 규약, 데이터 형식, 운영 체제 서비스에 대한 인터페이스를 정의하여,응용 프로그램과 운영 체제 또는 다른 소프트웨어 간의 상호 운용성을 보장하는 규칙과 규약의 집합입니다.이는 소스 코드 레벨이 아닌 바이너리 레벨에서의 호환성을 제공합니다.1. ABI의 주요 구성 요소함수 호출 규약 (Calling Conventions):함수 인자를 어떻게 전달하고, 함수 호출과 반환 시 어떤 레지스터를 사용하는지 정의합니다.스택 사용 방식과 호출 후 레지스터 상태도 포함됩니다.바이너리 포맷:실행 파일과 객체 파일의 형식을 정의합니다.리눅스에서는 ELF (Executable and Linkable Format)가..
[ 쿠버네티스 / Kurbernetes ] 이미지가 컨테이너에서 실행되는 과정 순서대로 보기 쿠버네티스(Kubernetes)에서 이미지를 사용하여 컨테이너를 실행하는 과정은 여러 단계를 거쳐 이루어집니다.이 과정은 사용자가 kubectl 명령어를 실행하는 순간부터 시작하여, 실제로 컨테이너가 실행될 때까지의 일련의 작업을 포함합니다.아래는 그 순서를 설명한 내용입니다.1. 사용자가 명령어를 실행사용자가 kubectl 명령어를 사용하여 포드를 생성하거나, 배포(Deployment)를 생성합니다.kubectl apply -f deployment.yaml2. API 서버로 요청 전송kubectl 명령어는 Kubernetes API 서버(kube-apiserver)로 요청을 보냅니다. API 서버는 클러스터의 중앙 제어 포인트로, 모든 작업을 조정합니다.3. API 서버에서 요청 처리API 서버는 요청..
[ 쿠버네티스 / Kurbernetes ] 아키텍쳐 보기 쿠버네티스의 아키텍처는 컨테이너화된 애플리케이션을 배포, 관리, 확장하기 위해 설계된 모듈식 구조를 가지고 있습니다.주요 구성 요소는 마스터 노드와 워커 노드로 나누어집니다. 아래에 쿠버네티스 아키텍처의 그림과 함께 각 구성 요소를 설명하겠습니다.1. 마스터 노드 (Control Plane)마스터 노드는 클러스터를 관리하고 제어하는 역할을 합니다. 주요 구성 요소는 다음과 같습니다:a. API 서버 (kube-apiserver)역할: 모든 API 요청을 처리하며, 클러스터의 중앙 제어 포인트입니다.기능: 클라이언트 요청을 인증하고, 유효성을 검사하며, etcd와 상호작용합니다.b. 컨트롤러 매니저 (kube-controller-manager)역할: 클러스터 상태를 모니터링하고, 원하는 상태로 유지합니다...
[ 쿠버네티스 / Kurbernetes ] 쿠버네티스 사용해서 다음 문제를 해결하자. 쿠버네티스를 사용하면 다음과 같은 다양한 문제를 효과적으로 해결할 수 있습니다:1. 애플리케이션 배포와 관리 자동화자동화된 배포: 쿠버네티스는 컨테이너화된 애플리케이션의 배포를 자동화하여, 수동 배포에 따르는 오류와 복잡성을 줄여줍니다.자동 복구: 애플리케이션이나 노드에 문제가 발생하면 자동으로 복구하여 가용성을 높입니다.롤링 업데이트와 롤백: 애플리케이션을 다운타임 없이 업데이트하고, 문제가 발생하면 손쉽게 이전 버전으로 롤백할 수 있습니다.2. 확장성자동 확장: 애플리케이션 부하에 따라 자동으로 포드(Pod)를 확장하거나 축소할 수 있습니다. 이를 통해 리소스를 효율적으로 사용하고, 필요할 때 적절한 규모로 확장할 수 있습니다.클러스터 확장: 여러 노드를 추가하여 클러스터의 리소스를 쉽게 확장할 수 ..
[ 쿠버네티스 / Kurbernetes ] 쿠버네티스의 역사 쿠버네티스(Kubernetes)의 역사는 컨테이너화된 애플리케이션의 배포와 관리를 자동화하기 위한 도구로 시작되었으며,오픈 소스 커뮤니티의 강력한 지원을 받으며 발전해왔습니다. 쿠버네티스의 역사는 다음과 같은 주요 단계로 구성됩니다:1. 초기 단계Google 내부 프로젝트 (2003-2013):Borg: Google은 자사의 대규모 인프라스트럭처를 관리하기 위해 Borg라는 내부 컨테이너 오케스트레이션 시스템을 개발했습니다. Borg는 Google 내부에서 수천 개의 클러스터를 관리하는 데 사용되었으며, 쿠버네티스의 직접적인 전신입니다.Omega: Borg의 단점을 보완하기 위해 Google은 Omega라는 새로운 오케스트레이션 시스템을 개발했습니다. Omega는 더 유연한 스케줄링과 자원 관리를 제공했..
[ 쿠버네티스 / Kubernetes ] 쿠버네티스에 대해서 간략하게 알아보기 쿠버네티스(Kubernetes, 줄여서 K8s)는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 플랫폼입니다.Google에서 개발하여 2014년에 오픈 소스로 공개되었고, 현재는 Cloud Native Computing Foundation(CNCF)에서 관리하고 있습니다.1. 주요 기능자동화된 배포 및 복구:컨테이너 애플리케이션을 자동으로 배포하고, 장애가 발생하면 자동으로 복구합니다.특정 개수의 컨테이너가 항상 실행되도록 보장합니다.확장 및 축소:애플리케이션의 부하에 따라 컨테이너 인스턴스를 자동으로 확장하거나 축소합니다.수평적 포드 오토스케일링(Horizontal Pod Autoscaling)을 지원합니다.서비스 디스커버리 및 로드 밸런싱:클러스터 내에서 컨테이너 간의 ..
[ Bash ] history 명령어를 확장해서 사용하기 유닉스 셸에서 워드 지정자(Word Designators)는 주로 명령어 히스토리를 편리하게 재사용하고 수정하기 위한 도구로 사용됩니다.워드 지정자는 히스토리 확장(History Expansion) 기능의 일환으로, Bash와 같은 셸에서 강력하게 활용될 수 있습니다.이를 통해 이전에 입력한 명령어를 쉽게 참조하고 부분적으로 재사용할 수 있습니다.1. 히스토리 확장 기본 개념히스토리 확장은 주로 ! 문자를 사용하여 이전 명령어를 참조합니다. 워드 지정자는 이 확장을 좀 더 세부적으로 제어하는 데 사용됩니다. 먼저, 기본적인 히스토리 확장 방법들을 살펴보겠습니다.1. 기본 히스토리 확장!!: 바로 이전 명령어를 재실행합니다.!n: 히스토리 번호가 n인 명령어를 재실행합니다.!-n: 현재 명령어에서 n번째 ..
[ Bash ] source로 shell에 명령어 추가하기 유닉스 계열 시스템에서 source 명령어는 스크립트를 현재 셸 환경에서 실행하기 위해 사용됩니다.source 명령어는 주로 셸 스크립트 내에서 설정한 변수나 함수를 현재 셸 세션에 적용할 때 유용합니다.source 명령어는 Bash와 같은 많은 셸에서 제공되며, 일부 셸에서는 . (마침표) 명령어로 동일한 기능을 수행합니다.1. source 명령어의 주요 기능스크립트 실행:스크립트를 현재 셸 환경에서 실행하여, 스크립트에서 정의된 변수, 함수, alias 등을 현재 셸 세션에 적용합니다.환경 설정 파일 로드:셸 환경 설정 파일(.bashrc, .profile 등)을 현재 셸 세션에 로드하여 설정을 즉시 적용할 수 있습니다.2. 기본 사용법source filename또는. filename3. 예제1. 변..

반응형