본문 바로가기

Container9

[k8s] 쿠버네티스 애플리케이션 접근 구성하기: NodePort, Ingress, Istio 쿠버네티스 클러스터를 구축할 때, 애플리케이션을 외부 사용자가 접근 가능하도록 구성하는 방법에는 여러가지가 있습니다. 이번 시간에는 NodePort, Ingress, Istio 각각의 방법을 하나씩 차례로 살펴보겠습니다. NodePort 및 LoadBalancer (쿠버네티스 Service) Ingress Istio NodePort NodePort 타입의 Service를 생성하면 쿠버네티스는 클러스터의 모든 노드에 포트를 하나 할당합니다.(기본값: 30000-32767) 그리고 해당 포트로 들어오는 요청을 특정 애플리케이션으로 전달합니다. apiVersion: v1 kind: Service metadata: name: my-service spec: type: NodePort selector: app: M.. 2022. 5. 21.
[k8s] 쿠버네티스 RBAC을 사용한 API 서버 접근 제어 실습 학습용 환경이 아닌 실제 엔터프라이즈 환경에서는 1명의 클러스터 관리자가 아닌 다양한 이해관계자가 쿠버네티스 클러스터에 접근합니다. 클러스터에 접근하는 각각의 사용자들에게는 최소 권한의 원칙에 따라 필요한 만큼의 권한만 부여해야 합니다. 여기서는 kubectl을 사용하여 쿠버네티스 컨트롤 플레인의 API 서버에 요청을 보낼 때 접근 제어가 이루어지는 방식에 대해 간단히 알아보고, 직접 클러스터에 사용자별로 접근 권한을 부여해 보겠습니다. 쿠버네티스의 사용자 본격적인 접근 제어 방식을 논하기에 앞서, 쿠버네티스는 사용자를 어떻게 구분하는지부터 살펴보겠습니다. 모든 쿠버네티스 클러스터에는 쿠버네티스에 의해 관리되는 Service Account와 User Account 두가지 종류의 사용자가 있습니다. 주로 .. 2022. 5. 18.
3. Deployment 운영 환경에 애플리케이션을 배포할 때, 일반적으로 하나만 배포하지 않고 여러 개의 애플리케이션 인스턴스를 배포합니다. 쿠버네티스에서 각 애플리케이션은 컨테이너(혹은 이를 감싸는 Pod) 형태로 배포됩니다. 새로운 버전의 애플리케이션이 출시되어 업데이트를 수행할 때에는 실행 중인 컨테이너를 중단시키고 새로운 이미지를 사용하여 컨테이너를 다시 생성해야 합니다. 이 때, 모든 컨테이너를 한번에 중단시킨다면 사용자가 일시적으로 애플리케이션에 접근할 수 없어지는 문제가 발생하므로, 이를 해결하기 위해 일부 컨테이너만 순차적으로 재시작시키는 Rolling Update 전략을 사용하면 무중단 배포를 수행할 수 있습니다. 또한 업데이트 도중 문제가 발견된다면, 일시적으로 중단하고 해결을 시도하거나 다시 이전 버전의 컨.. 2022. 3. 9.
2. Pod, Replication Controller and Replica Set Pod 쿠버네티스를 사용하는 궁극적인 목표는 애플리케이션을 컨테이너 형태로 실행시키고 이를 효율적으로 관리하는 것입니다. 하지만 쿠버네티스는 컨테이너를 그대로 실행시키지는 않으며 Pod라는 별도의 쿠버네티스 오브젝트로 패키징되어 실행됩니다. Pod는 애플리케이션의 단일 인스턴스를 나타내며, 이는 쿠버네티스에서 관리할 수 있는 가장 작은 배포 단위입니다. 따라서 사용자 수가 늘어나 애플리케이션의 확장이 필요한 경우에는 Pod 내 컨테이너를 확장시키는 것이 아니라, 새로운 Pod를 생성하여 애플리케이션을 확장하게 됩니다. Pod 내에는 단일 컨테이너를 포함하는 것이 일반적이지만, 애플리케이션 요구사항에 따라 여러개의 컨테이너를 포함할 수도 있습니다. 하나의 Pod 내에 속한 컨테이너끼리는 직접 접근이 가능하.. 2021. 11. 28.
1. Kubernetes Overview 쿠버네티스는 컨테이너화된 애플리케이션을 관리하는 도구입니다. 쿠버네티스는 노드의 집합인 클러스터 위에서 동작하며, 각 노드는 역할에 따라 워커 노드와 마스터 노드로 구분됩니다. 워커 노드는 실제로 컨테이너가 실행되는 노드를 말하며, 마스터 노드는 컨테이너를 적절한 워커 노드에 배치하고 클러스터와 노드의 상태를 모니터링하며 클러스터에 관한 정보를 저장합니다. 마스터 노드는 이러한 작업을 컨트롤 플레인이라 부르는 컴포넌트 집합을 활용하여 수행합니다. 본문에서는 마스터 노드에서 실행되는 네가지 종류의 컨트롤 플레인 컴포넌트와 워커 노드에서 실행되는 두가지 쿠버네티스 컴포넌트에 대해 알아보겠습니다. 마스터 노드 - 컨트롤 플레인 컴포넌트 1. ETCD 쿠버네티스는 클러스터 및 노드, 컨테이너에 관한 정보를 저장.. 2021. 11. 27.
[Health Check] 2. Readiness and Startup Probe 지난 글에서 Liveness Probe에 대해 살펴보았습니다. Command, HTTP, TCP 등의 방법으로 컨테이너의 상태를 확인하고, 비정상인 경우 컨테이너를 재시작하여 이를 해결하고자 하였습니다. 이번 글에서는 쿠버네티스에서 제공하는 또 다른 Probe인 Readiness probe 및 Startup probe 에 대하여 알아보겠습니다. Liveness Probe Liveness probe는 애플리케이션이 교착 상태에 머무르는 것을 감지하고, 컨테이너를 재시작하여 이를 해결합니다. 이렇게 하여 애플리케이션의 가용성을 확보할 수 있습니다. Readiness Probe Readiness probe는 바쁜 컨테이너를 잠시 서비스에서 제외시켜 트래픽을 받지 않도록 하는 기능입니다. Pod 내의 모든 컨테.. 2021. 11. 16.