DevOps/Docker & Kubernetes(26)
-
[Kubernetes in Action] Accessing Pod Metadata and Other Resources
Kubernetes in Action 2nd Edition을 정리한 글입니다. Passing metadata through the Downward API 애플리케이션은 종종 자신이 동작하고 있는 환경에 대한 정보를 알아야 할 때가 있습니다. 실제로 대부분의 애플리케이션이 Dev, Staging, Production등의 환경을 구분해서 동작하며, 각각의 환경에 따라 서로 다른 정보들을 필요로 합니다. 이를 위해 지난 포스팅에서 살펴보았던 ConfigMap, Secret을 사용하는 방법도 있지만 쿠버네티스에서 제공하는 다른 기능인 DownwardAPI를 사용할 수 도 있습니다. 이번 포스팅에서는 DownwardAPI를 사용하여 running Pod에 Environment Variable에 대한 정보를 제공하..
2021.12.12 -
[Kubernetes in Action] ConfigMaps and Secrets
Kubernetes in Action 2nd Edition을 정리한 글입니다. Configuring Containerized Applications 애플리케이션을 개발하다 보면, 컨테이너화된 애플리케이션 안에 환경변수등을 주입해주어야 할 때가 있습니다. 데이터베이스에 접근하기 위한 암호이거나, 특정 Third-party Library를 사용하기 위한 private key와 같은 예시가 있는데, 이러한 정보들을 컨테이너화된 애플리케이션에 넣어주는 방법은 일반적으로는 크게 다음 3가지가 있습니다. Passing Command-line arguments to containers Setting Environment variables for a container Mouting Configuration files ..
2021.10.30 -
[Kubernetes in Action] Volumes
Overview 이전 포스팅들에서 파드와, 파드와 상호작용하는 다른 쿠버네티스 리소스들에 대해서 살펴보았습니다. 이번 포스팅에서는 다시 파드로 돌아가서, 파드 안에 있는 컨테이너들이 외부의 Disk Storage나 Shared Storage를 사용하는 방법에 대해서 살펴보려고 합니다. 파드는 하나의 Logical Host 단위로 동작하기 때문에 파드 내에서 돌아가는 프로세스들은 CPU, RAM, Network Interface등을 공유합니다. 그렇지만 파드 내에 있는 개별적인 컨테이너들은 대체적으로 격리된 파일 시스템(isolated filesystem)을 갖는데, 그 이유는 파일 시스템이 컨테이너의 이미지로부터 오기 때문입니다. 컨테이너가 시작될 때, 이미지에 정의된 파일들이 빌드 타임에 추가됩니다. ..
2021.10.09 -
[Kubernetes in Action] Services
Overview 이전 포스팅에서 파드의 상태를 관리하고 항상 지정된 개수의 파드가 정상적으로 작동할 수 있도록 보장하는 Replication Controller, ReplicaSet에 대해서 살펴보았습니다. 이번 포스팅에서는 외부 / 내부의 클라이언트가 이렇게 생성된 여러 개의 파드와 안정적으로 연결할 수 있도록 도와주는 쿠버네티스 리소스인 "Service"에 대해서 살펴보려고 합니다. Introducing Services 마이크로 서비스 아키텍쳐에서 대부분의 파드는 클러스터 내부의 다른 파드로부터, 혹은 클러스터 외부의 클라이언트로부터 HTTP Request를 받아 처리합니다. 파드 자체는 클러스터 내부에서 유일하게 식별될 수 있는 IP를 갖지만, 해당 파드의 IP를 통해 파드에 직접 접근하는 것은 다..
2021.10.02 -
[Kubernetes in Action] Replication and Other Controllers
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 이전 포스팅에서 쿠버네티스의 Basic Building Block인 파드에 대해서 자세하게 살펴보았습니다. 이번 포스팅에서는 파드를 생성하고 관리하는 쿠버네티스 매커니즘인 ReplicationController, ReplicaSet, DaemonSets에 대해서 살펴보려고 합니다. Keeping Pods Healthy 쿠버네티스의 장점 중 하나는 사용자가 제공하는 컨테이너들의 정보(어떤 컨테이너를 몇개씩 배포할 것인지)를 쿠버네티스에 제공하기만 하면 쿠버네티스가 이 정보대로 컨테이너들이 동작하도록 "보장"한다는 것입니다. 즉 사용자 입장에서는 파드를 생성한 후에 매뉴얼하게 이를 모니터링하고, 파드를 재시작하는 ..
2021.09.26 -
[Kubernetes in Action] Pods
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 쿠버네티스의 Basic Building Block인 Pod의 정의와 동작원리에 대해 설명합니다. 또한 쿠버네티스에서 권장하는 Pod사용방식에 대해 안내하며 JSON, YAML 포맷을 통해 파드를 생성하고 종료하는 방법에 대해 설명합니다. 마지막으로 namespace & label등과 같은 개념에 대해서 설명합니다. Introducing Pods 파드(Pod)는 쿠버네티스의 Basic Building Block으로써 컨테이너들을 포함합니다.(일반적으로 1개의 파드에 1개의 컨테이너를 넣는 것을 권장하지만, 경우에 따라서 하나의 파드안에 여러 개의 컨테이너들을 넣을 수 있습니다.) 컨테이너를 하나씩 배포하는 도커와..
2021.09.25