Category: Kubernetes

0

쿠버네티스 - Service

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane Post not found: k8s/k8s 참고 공식 문서 https://kubernetes.io/docs/concepts/services-networking/service/ Service Service 는 클러스터 내부에서 작동하는 Pod 들을 하나의 서비스로 단일화 해 네트워크에 노출 시키는 Resource Service 는 쿠버네티스내 여러개의 Pod 들이 작동하지만, 하나의 그룹으로 단일화 해 네트워크로 노출하기 때문에 마치 하나의 어플리케이션이 작동하는 것 처럼 추상화할 수 있습니다. 덕분에 서비스를 사용하면 파드를 직접 지정하지 않고 네트워크를 통해 파드에 접근할 수 있습니다. 또한, Service 는 동일한 애플리케이션의 여러 Pod 에 대한 로드 밸런싱 도 제공합니다. 기존에 서로 다른 어플리케이션 Pod 들끼리 통신하는 방식에서 Service 라는 단위를 통해 통신하는 형태로 변경이 됐습니다. 덕분에 동적으로 변하는 Pod 의 IP 주소 문제를 해결할 수 있었으며, 여러개의 Pod 를 바라보기 때문에 Pod 에 대한 로드밸런서 기능을 제공합니다. 또한, DNS 를 사용해 Service 이름을 등록함으로써 Service 이름으로 통신할 수 있게 지원합니다.

0

쿠버네티스 - Deployment

목차 Post not found: k8s/namespace Post not found: k8s/ingress 쿠버네티스 - Deployment Post not found: k8s/pod/replicaset 쿠버네티스 - Pod Deployment 어플리케이션을 클러스터 내의 여러 노드에 자동으로 배포 및 롤백 할 수 있는 리소스 클러스터에 인스턴스를 생성하고 배포하는 작업을 수항한다. Pod 를 개체를 관리한다. Deployment 를 이용해 Pod 를 생성하고 클러스터의 노드에 배포할 수 있다. Deployment 를 통해 Application 의 새로운 버전을 배포하거나 이전 버전으로 롤백할 수 있다. Deployment 를 생성하면 Deployment 에 해당하는 ReplicaSet 도 함께 생성된다. Deployment 리소스를 사용하면 애플리케이션의 상태, 레플리카 수, 롤링 업데이트, 롤백 등을 관리할 수 있습니다. 여러 개의 Pod 인스턴스를 생성하여 애플리케이션을 실행하는 것이 Deployment의 주요 목적입니다. Pod는 컨테이너를 실행하는 단위이며, Deployment는 이러한 Pod 인스턴스들을 생성하고 관리합니다. Deployment는 Pod의 상태를 모니터링하고 필요에 따라 새로운 Pod를 생성하거나 종료하여 애플리케이션을 원하는 상태로 유지합니다. Deployment는 롤링 업데이트를 통해 애플리케이션을 업데이트할 수 있는 기능도 제공합니다. 새로운 버전의 애플리케이션을 배포하면 Deployment는 점진적으로 Pod를 업데이트하고 이전 버전과 새 버전을 동시에 실행하면서 서비스의 가용성을 유지합니다. 롤링 업데이트 중에 문제가 발생하면 롤백하여 이전 버전으로 되돌릴 수도 있습니다. Deployment 리소스는 YAML 또는 JSON 형식으로 정의되며, 쿠버네티스 클러스터에 배포되어 관리됩니다. Deployment를 생성하면 해당 애플리케이션의 레플리카셋(ReplicaSet)과 함께 생성됩니다. ReplicaSet은 Pod 인스턴스의 수를 지정하고 관리하는 역할을 수행하며, Deployment는 ReplicaSet을 업데이트하거나 롤백하는 등의 작업을 수행합니다.

0

쿠버네티스 - StatefulSet

목차 쿠버네티스 - HPA (Horizontal Pod Autoscaler) 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod Post not found: k8s/k8s StatefulSet쿠버네티스(StatefulSet)는 쿠버네티스 클러스터 내에서 실행되는 애플리케이션의 상태를 유지하는 데 사용되는 컨트롤러입니다. 일반적으로 상태가 있는 애플리케이션인 데이터베이스, 메시지 큐 또는 파일 시스템과 같은 애플리케이션에 유용합니다. 쿠버네티스에서 일반적인 배포 유형인 Deployment는 상태를 가지지 않는 애플리케이션에 적합하지만, StatefulSet은 상태를 유지해야하는 애플리케이션을 관리하는 데 사용됩니다. 각 StatefulSet 팟은 고유한 네트워크 식별자와 지속적인 데이터 저장을 위한 별도의 볼륨을 갖습니다. 이러한 고유성은 팟이 쿠버네티스 클러스터에서 생성, 업데이트 및 삭제될 때 유지됩니다. StatefulSet은 일련의 인스턴스를 정의하고 관리하는 데 사용됩니다. 각 인스턴스는 순차적인 인덱스로 식별되며, 정의된 인스턴스 수에 따라 자동으로 생성 및 관리됩니다. 또한 StatefulSet은 인스턴스 간에 순차적으로 시작되고 종료되는 순서 보증을 제공합니다. StatefulSet을 사용하여 애플리케이션을 배포하면 각 인스턴스에 고유한 호스트 이름이 부여되고, 이를 통해 클러스터 내에서 인스턴스를 참조할 수 있습니다. 이러한 특성은 데이터베이스 클러스터의 마스터-슬레이브 설정과 같은 애플리케이션에서 중요합니다. StatefulSet은 쿠버네티스 클러스터의 안정성과 신뢰성을 향상시키는 데 도움이 됩니다. 예를 들어, StatefulSet은 팟이 실패한 경우 자동으로 새로운 인스턴스를 시작하여 애플리케이션의 가용성을 유지합니다. 또한 업그레이드 및 롤백과 같은 애플리케이션 버전 관리를 쉽게 할 수 있습니다. 요약하면, 쿠버네티스 StatefulSet은 상태가 있는 애플리케이션을 배포하고 관리하는 데 사용되며, 각 인스턴스에는 고유한 식별자와 별도의 볼륨이 제공됩니다. 이를 통해 순차적

0

쿠버네티스 - DaemonSet

목차 Post not found: k8s/namespace Post not found: k8s/ingress 쿠버네티스 - Deployment Post not found: k8s/pod/replicaset 쿠버네티스 - Pod DaemonSet쿠버네티스( Kubernetes)에서 DaemonSet은 클러스터 내의 모든 노드에 특정 파드(Pod) 인스턴스를 배포하는 컨트롤러입니다. DaemonSet은 각 노드에서 반드시 실행되어야 하는 백그라운드 작업이나 로그 수집기와 같은 애플리케이션에 이상적입니다. 일반적인 ReplicaSet이나 Deployment와는 달리 DaemonSet은 모든 노드에서 파드를 실행하며, 새로운 노드가 클러스터에 추가되면 자동으로 해당 노드에 파드 인스턴스를 스케줄링합니다. 또한, 노드가 제거되면 DaemonSet은 해당 노드에서 실행 중인 파드를 자동으로 종료하고 대체 노드에서 실행될 새로운 파드 인스턴스를 생성합니다. DaemonSet은 주로 다음과 같은 사용 사례에 적합합니다: 로그 수집기: 모든 노드에서 로그를 수집하기 위해 DaemonSet을 사용할 수 있습니다. 예를 들어, Fluentd, Filebeat 등의 로그 수집기를 DaemonSet으로 배포하여 모든 노드의 로그를 중앙 집중화된 위치로 전송할 수 있습니다. 네트워크 에이전트: 네트워크 에이전트는 모든 노드에서 실행되어 네트워크 정책을 구현하고 트래픽을 관리합니다. DaemonSet을 사용하여 네트워크 에이전트를 클러스터의 모든 노드에 배포할 수 있습니다. 모니터링 및 메트릭 수집기: 클러스터의 모든 노드에서 메트릭 및 모니터링 정보를 수집하기 위해 DaemonSet을 사용할 수 있습니다. Prometheus, Telegraf 등의 도구를 DaemonSet으로 배포하여 모든 노드의 메트릭을 수집하고 모니터링할 수 있습니다. DaemonSet을 사용하면 쿠버네티스 클러스터의 모든 노드에서 실행되어야 하는 작업을 쉽게 배포하고 관리할 수 있습니다.

0

쿠버네티스 - ReplicaSet

목차 Post not found: k8s/namespace Post not found: k8s/ingress 쿠버네티스 - Deployment Post not found: k8s/pod/replicaset 쿠버네티스 - Pod 참고 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors ReplicaSet 쿠버네티스에서 실행되는 Pod 의 Replica(복제본) 를 생성하고 지정된 Pod 수를 유지하는 오브젝트 ReplicaSet 은 파드의 개수를 모니터링하고, 파드의 개수가 지정된 개수보다 적으면 새로운 파드를 생성하고, 파드의 개수가 지정된 개수보다 많으면 기존의 파드를 삭제합니다. ReplicaSet은 특정 파드의 복제본 수를 지정하는 것을 목표로 합니다. 파드를 정의하는 템플릿과 함께 ReplicaSet을 생성하면 ReplicaSet은 해당 템플릿을 기반으로 복제본 파드를 생성합니다. 만약 파드의 복제본 수가 ReplicaSet의 목표값보다 적다면, ReplicaSet은 추가 파드를 생성하여 원하는 복제본 수를 유지하려고 시도합니다. 반대로, 파드의 복제본 수가 ReplicaSet의 목표값보다 많다면, ReplicaSet은 파드를 제거하여 원하는 복제본 수를 줄이려고 시도합니다. ReplicaSet은 파드의 복제본 수를 모니터링하며, 다양한 상황에서 자동으로 조치를 취합니다. 예를 들어, ReplicaSet이 파드의 수를 감지하고 즉시 새로운 복제본을 생성하여 장애가 발생한 파드를 대체할 수 있습니다. ReplicaSet은 롤링 업데이트(rolling update)를 통해 애플리케이션 버전 업그레이드도 관리할 수 있습니다. 이는 예전 버전의 파드를 점진적으로 제거하고 새 버전의 파드를 생성하여 서비스 중단을 최소화합니다.

0

쿠버네티스 - Code 로 Config 수정하기

목차 Post not found: k8s/namespace Post not found: k8s/ingress Post not found: k8s/deployment Post not found: k8s/replicaset Post not found: k8s/node Post not found: k8s/pod 참고 https://gist.github.com/mordr/3c2df494c690672247c720f66f0fb613 환경 변수 추가export KUBE_EDITOR='code --wait'

0

쿠버네티스 - kubectl

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane Post not found: k8s/k8s 참고 https://kubebyexample.com/learning-paths/application-development-kubernetes/lesson-1-running-containerized-applications Kubectl 명령어조회kubectl get pod kubectl get pod -w kubectl get pod -o wide

0

쿠버네티스 - kube-proxy

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane 쿠버네티스 kube-proxy

0

쿠버네티스 - Node

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod Post not found: k8s/k8s Master NodeNode 란 Node 는 쿠버네티스에서 Worker 머신 을 말하며 클러스터에 따라 가상 또는 물리 머신일 수 있다. Container 화 된 어플리케이션을 실행하고 관리하는 역할 Node 는 호스트 운영체제와 함께 실행되며 CPU, Memory, Disk, Network 와 같은 하드웨어 리소스를 제공한다. Node 확인kubectl get nodes Node 내의 Pod 확인

0

쿠버네티스 - Pod

목차 Post not found: k8s/namespace Post not found: k8s/ingress 쿠버네티스 - Deployment Post not found: k8s/pod/replicaset 쿠버네티스 - Pod 참고 https://blog.2dal.com/2018/03/28/kubernetes-01-pod/ https://blog.heptio.com/core-kubernetes-jazz-improv-over-orchestration-a7903ea92ca 출처해당 포스트는 subicura 강사님의 초보를 위한 쿠버네티스 안내서 강의를 바탕으로 작성 됐습니다. Pod Pod 는 쿠버네티스에서 관리하는 기본단위 이며 가장 작은 배포 단위 쿠버네티스는 Pod 을 이용해 Container 를 관리 하며 Pod 내의 Container 는 모두 동일한 Host 에서 실행되며 네트워크와 저장소를 공유합니다. 이로 인해 컨테이너는 같은 Pod 내에서 다른 Container 와 효율적으로 통신하고 데이터를 공유할 수 있습니다.

0

쿠버네티스 - etcd

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane 쿠버네티스 참고 공식문서 https://kubernetes.io/ko/docs/concepts/overview/components/ https://malwareanalysis.tistory.com/512 etcd쿠버네티스(etcd)는 쿠버네티스 클러스터의 상태와 구성 정보를 저장하고 관리하는 데 사용되는 분산 키-값 저장소입니다. etcd는 신뢰성과 일관성을 제공하여 쿠버네티스 클러스터의 안정적인 동작을 보장합니다. etcd는 분산 환경에서 동작하는 일관성 있는 데이터베이스로서, 분산 시스템에서 발생하는 다양한 문제에 대응하기 위해 설계되었습니다. 이를 위해 Raft라는 합의 알고리즘을 사용하여 일관성 있는 복제를 제공합니다. Raft 알고리즘은 분산 시스템에서 노드 간에 일관된 상태를 유지하고 리더 노드의 선택과 로그 복제를 통해 안정성을 보장하는 데 사용됩니다. 쿠버네티스 클러스터 내의 모든 구성 요소는 etcd에 상태 정보를 저장합니다. 이 정보에는 클러스터의 노드, 팟, 서비스, 볼륨, 설정 등의 데이터가 포함됩니다. etcd는 이러한 정보를 실시간으로 유지하고 변경 사항을 관리하여 쿠버네티스 클러스터의 모든 구성 요소가 항상 일관된 상태로 동작할 수 있도록 합니다. 또한, etcd는 분산 환경에서 안정적인 데이터 저장소로서 동작하므로, 장애가 발생하거나 노드가 추가되거나 제거될 때에도 클러스터의 안정성을 유지할 수 있습니다. etcd는 데이터를 여러 노드에 복제하여 가용성과 내결함성을 보장하며, 필요에 따라 데이터를 자동으로 복구하여 시스템의 일관성을 유지합니다.

0

쿠버네티스 - Data Plane

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane 쿠버네티스 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ Data Plane 이란데이터 플레인은 클러스터 내에서 컨테이너화된 애플리케이션들의 통신과 네트워크 기능을 담당합니다. Data Plane은 Kubernetes Worker Node에 위치한 컨테이너 런타임 환경과 관련된 구성 요소들로 이루어져 있습니다. 예를 들어, 각 Worker Node에는 쿠버네티스 컨트롤 플레인에서 제어되는 파드(Pod)가 배치됩니다. 이러한 파드는 각각 하나 이상의 컨테이너를 실행하며, 이 컨테이너는 애플리케이션 또는 서비스를 제공합니다. Data Plane의 핵심 구성 요소 중 하나는 kube-proxy입니다. kube-proxy는 서비스(Services)를 처리하며, 클러스터 내부의 파드와 서비스 간의 네트워크 연결을 관리합니다. 이를 위해 kube-proxy는 파드와 서비스에 대한 가상 IP 주소를 할당하고, 이를 통해 라우팅하며, 로드 밸런싱과 같은 작업을 수행합니다. 또 다른 중요한 구성 요소는 컨테이너 네트워크 인터페이스(CNI) 플러그인입니다. CNI 플러그인은 클러스터의 노드와 파드에 할당된 IP 주소를 관리하고, 네트워크 보안을 제공하며, 네트워크 트래픽을 제어합니다.

0

쿠버네티스 - Control Plane

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane 쿠버네티스 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ Control Plane 이란Control Plane은 Kubernetes 클러스터 내에서 모든 매니지먼트 기능을 제공하는 중앙 집중화된 구성 요소입니다. 이것은 Kubernetes 클러스터를 구성하는 모든 노드에 설치되어 있으며, 클러스터 내의 다른 구성 요소와 상호 작용하여 Kubernetes 애플리케이션을 배포, 확장, 업데이트 및 관리하는 데 사용됩니다. Control Plane은 크게 세 가지 주요 컴포넌트로 구성됩니다. API Server 클러스터 내의 모든 리소스를 관리하고 Kubernetes API를 노출하는 중앙 집중화된 컴포넌트입니다. API 서버는 사용자가 Kubernetes 클러스터와 상호 작용하기 위한 인터페이스를 제공하며, 클러스터 리소스를 조작하는 모든 작업을 처리합니다. Controller Manager API 서버에서 리소스 변경 사항을 감지하고 해당 리소스 상태를 원하는 상태로 유지하기 위해 실행되는 컴포넌트입니다. 예를 들어, 노드가 다운되면 컨트롤러 매니저는 해당 노드에서 실행 중인 파드를 다른 노드로 이동시키기 위해 동작합니다. etcd 클러스터 상태를 저장하는 분산형 Key-Value 저장소입니다. Kubernetes 컨트롤 플레인의 모든 컴포넌트는 etcd를 통해 클러스터의 상태를 읽고 쓰게 됩니다. etcd 는 분산형 저장소이기 때문에 데이터 일관성과 가용성을 보장합니다. 이러한 컴포넌트는 모두 Kubernetes 클러스터 내에서 상호작용하며, 애플리케이션을 배포, 확장, 업데이트 및 관리하기 위한 모든 매니지먼트 작업을 수행합니다. Control Plane은 Kubernetes 클러스터의 중심적인 역할을 수행하며, 클러스터의 안정성과 가용성을 보장하기 위해 중요한 역할을 합니다.

0

쿠버네티스

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane 쿠버네티스 참고 공식문서 https://kubernetes.io/ko/docs/concepts/overview/components/ https://malwareanalysis.tistory.com/512 쿠버네티스가 등장하게 된 배경MSA (Micro Service Architecture) 의 등장과 Container 화된 어플리케이션이 등장하고 많아지면서 여러 호스트로 구성되고 배포되는 서비스들을 중앙에서 통합, 관리해 줄 수 있는 플랫폼이 필요하게 됐다. 기존 컨테이너 가상화 기술인 도커는 단일 호스트에 컨테이너 서비스를 배포하는데 적합하나 여러 호스트로 구성된 컨테이너 서비스를 관리하는데에 있어서는 한계가 있었다. 여러 호스트로 구성된 컨테이너 환경을 중앙에서 통합 관리 하기 위해 컨테이너 오케스트레이션 플랫포인 쿠버네티스가 등장하게 됐다. 쿠버네티스란?