Infra(14)
-
[Kubernetes in Action] Securing Cluster nodes and the network
Using the host node's namespace in a pod 파드 안에서 동작하는 컨테이너들은 별도의 Linux Namespace 아래에서 동작합니다. 이는 다른 컨테이너의 프로세스나 노드의 default 프로세스로부터 해당 컨테이너의 프로세스를 격리시킵니다. 각각의 파드는 자신의 고유한 네트워크 Namepsace를 가져야 하기 때문에 자신만의 고유한 IP와 포트 Space를 갖습니다. 또한 자신만의 고유한 Process Tree를 가지며 자신만의 IPC Namespace를 사용합니다. (다른 파드와 통신할 때는 IPC를 사용해서만 통신이 가능합니다.) 이렇게 쿠버네티스는 특정 파드에 네트워크, Process, IPC 공간을 별도로 할당하고 다른 파드들과 철저하게 격리시키는 구조를 가지고 있..
2022.02.02 -
[Kubernetes in Action] Understanding Kubernetes Internals
Kubernetes in Action 2nd Edition을 정리한 글입니다. Understanding the architecture 쿠버네티스 클러스터는 다음과 같이 구성되어 있음을 알고 있습니다. Kubernetes Control Plane: 전체 클러스터를 관리하고 저장합니다. API Server etcd Distributed Persistent Storage Scheduler Controller Manager The Worker Nodes: 실제로 애플리케이션 컨테이너를 동작시키는 역할을 합니다. Kubelet Kubernetes Service Proxy Container Runtime (Docker, rks,... etc) Add on Components: 그 외에 리소스들을 관리하거나 사용하기..
2022.01.16 -
[Kubernetes in Action] StatefulSets: deploying replicated stateful applications
Replicating Stateful Pods 이전 포스팅에서 살펴본 ReplicaSet(Replication Controller도 있지만 비슷한 개념이므로 ReplicaSet만 언급하도록 하겠습니다.)은 하나의 파드 템플릿(pod template)으로부터 여러 개의 파드 복제본들을 생성합니다. 각각의 파드들은 name, IP주소를 제외하고는 모두 동일하며 만약 파드 템플릿이 PVC(Persistent Volume Claim)을 통한 스토리지를 가지고 있다면, 해당 파드 템플릿으로부터 생성된 모든 파드들은 동일한 PVC를 사용하게 되므로 동일한 스토리지를 사용하게 됩니다.(파드는 PVC를 레퍼런스 하고 있고 이 레퍼런스는 파드 템플릿에 명시되어 있기 때문에 동일한 참조를 갖게 되는 것입니다) 따라서 Re..
2021.12.26 -
[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] First Steps with Docker And Kubernetes
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 도커와 쿠버네티스를 사용하여 간단한 애플리케이션을 Deploy 해보는 Chapter입니다. 간단한 애플리케이션을 컨테이너화 하고 쿠버네티스를 통해 배포해보면서 쿠버네티스의 동작 원리를 이해합니다. MacOS환경에서 진행되었으며 Docker, Kubernetes 등의 설치와 관련된 내용들에 대해서는 다루지 않습니다. Busybox Example 우선 도커 플랫폼이 어떻게 동작하는지 알아보기 위해 이미 만들어져있는 Busybox이미지를 사용해서 실행시켜 보도록 하겠습니다. # docker run : # tag를 명시하지 않으면 latest tag의 이미지를 찾습니다. docker run busybox:latest ..
2021.09.23