개요 쿠버네티스 자체는 컨테이너를 생성, 시작, 중지하는 법을 알지 못한다. 대신 이런 작업을 컨테이너 런타임이라는 컴포넌트가 담당해 진행한다. 이 컨테이너 런타임에 대해 알아보자. 컨테이너 런타임을 간단하게 설명하면 다음과 같다. Linux: cgroups 및 namespace 같은 커널 기능을 이용하여 컨테이너 프로세스를 생성하는 녀석 Kubernetes: kubelet과 함께 동작하며 쿠버네티스 node에서 컨테이너를 생성 및 관리하는 녀석 그럼 2가지 의문점이 든다. 왜 쿠버네티스는 몰라야하는가? 명색의 컨테이너 기반 오케스트레이션인데 몰라도 되나? kubelet이 컨테이너를 관리한다고 했다. kubelet 내부에 컨테이너 런타임이 있다고 보면 되나? 이 의문점에 대해 답을 하기 위해 OCI, C..
M1 Mac 환경에서 podman 사용한 내용을 정리해보고자 한다. 다음에 까먹으면 다시 보기 위해서… 사실 docker 사용법을 안다면 거의 똑같다고 봐도 될 것 같다. 그냥 설치 및 초기설정 몇가지 방법만 다르다. 그렇기에 다 설치완료가 되면 아예 podman을 docker로 alias 설정해두고 사용하는 경우가 많은듯하다. podman 설치 brew 기반으로 설치했다. $ brew install podman $ brew install podman-compose # for docker-compose $ brew install podman-desktop # for docker d 초기 설정 Mac에서는 podman client/server로 나뉘어 동작하는 것으로 보인다. 이에 machine을 초기화,..
Docker container log는 stdout, stderr output streams로 Log를 찍는다. 기본적으로 이러한 log는 Docker host에 JSON file로 저장되게 된다. Default logging driver로 json-file logging driver를 사용하기 때문. Docker log의 저장 위치에 대해 찾아본다면, 아래의 주소에 저장된다고 나온다. /var/lib/docker/containers//-json.log 하지만 더 자세히 실행 중인 특정 컨테이너의 log 위치를 알고 싶다면, docker inspect 명령어를 사용하면 된다. docker inspect --format "{{.LogPath}}" 만약 container_id가 950925 라면, 위 com..
개발하다보면 구동 중인 Docker 내로 접속해 내부 파일들을 확인해야 할 때가 있다. Kubernetes에서도 마찬가지로 Pod 내부로 들어가야 할 때가 있다. 이때 bash를 실행시켜 접속하면 된다. Docker의 경우, docker exec -it container_id /bin/bash Kubernetes의 경우, kubectl exec -it pod_name /bin/bash '-it'의 의미는 다음과 같다 - i: STDIN 표준 입출력을 사용하겠다. - t: STDIN에서 pseudo-TTY를 사용하겠다.
이번 글은 기본이 부족해 삽질한 경험이 바탕이 되는 글입니다. 🥲 docker-compose에서 multiple commands를 사용하는 법에 대해 알아보겠습니다 😸 docker-compose 에서 multiple commands 가 왜 필요해 ? 아래와 같은 docker-compose 파일을 작성해 개발 중이었습니다. version: "3" services: some_service: container_name: some_service build: . volumes: - ~/some-data:/some-data - ~/some-info:/some-info - ~/some-script:/some-script 위 docker-compose 파일에 대해 설명드리자면, docker registry에 등록된 이..
이 글에서는 Spring boot 프로젝트를 Container image로 만드는 법에 대해 알아보겠습니다. Spring Boot 공식문서에서는 2가지 방법을 소개하고 있습니다. 1. Dockerfiles 2. Cloud Native Buildpacks 이 2가지 방법에 대해 자세히 살펴보도록 하죠! Dockerfiles 일반적으로 container image로 만들 때 활용하는 Dockerfile을 정의해 사용하는 방법 Spring project의 결과물을 container image로 만들 때, 아주 간단히 Dockerfile 을 작성하면 다음과 같이 작성할 수 있습니다. Gradle인 경우, ./gradlew bootJar 을 통해 쉽게 jar로 패키징할 수 있습니다. 패키징 이후, docker b..
Docker와 AWS 계정이 요구되므로, 미리 설치 및 가입하신 후에 아래 과정대로 진행하시면 됩니다. 1. AWS ECR 생성 2. AWS CLI 설치 AWS CLI 버전 2 설치, 업데이트 및 제거 - AWS 명령줄 인터페이스 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com 여기서 OS에 알맞은 방법으로 설치합니다. 3. AWS IAM User 생성 사용자가 있다면 사용하고, 없다면 추가합시다. 이름과 액세스 유형을 설정합니다. 권한을 설정해야하는데, 이미 설정된 사용자의 권한을 가져오거나 수동으로 기존정책에서 가져와 연결하시면 됩니다. - 저는 Adm..
- Total
- Today
- Yesterday
- 클린 아키텍처
- container
- Spring
- Istio
- 쿠버네티스
- boj
- 일상
- Intellij
- HTTP
- MySQL
- WebFlux
- 로그
- k8s
- 알고리즘
- hexagonal architecture
- 하루
- Spring boot
- 비동기
- gradle
- 백준
- tag
- Algorithm
- java
- docker
- Log
- Clean Architecture
- c++
- python
- jasync
- Kubernetes
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |