Recent Study/Kubernetes 학습과정
-
1. PV Volume Plugin PV는 기본 속성 중 capacity라는 용량을 설정하는 부분과 accessMode를 지정하는 부분이 있고, Volume Plugin이라고 해서 이 PV의 실질을 결정하는 옵션이 있습니다. 1) hostPath : 이 PV를 hostPath로 만들면 워커 노드에 지정된 /path를 이 PV에 대한 볼륨으로 사용하겠다는 것 입니다. 2) NFS : 웹 스토리지에 NFS 서버가 고정되어 있다면 PV의 Volume Plugin을 NFS로 지정하게 되면 이 PV는 외부에 있는 NFS와 연결할 수 있는 NFS 클라이언트의 역할을 하게 됩니다. OS에 NFS 클라이언트가 설치되어 있어야 합니다. 3) Cloud Service Volume : Azuer, GCP, AWS 등 클라우..
21. Storage - NFS(FileStorage), Longhorn(BlockStorage) & Logging - PLG Stack1. PV Volume Plugin PV는 기본 속성 중 capacity라는 용량을 설정하는 부분과 accessMode를 지정하는 부분이 있고, Volume Plugin이라고 해서 이 PV의 실질을 결정하는 옵션이 있습니다. 1) hostPath : 이 PV를 hostPath로 만들면 워커 노드에 지정된 /path를 이 PV에 대한 볼륨으로 사용하겠다는 것 입니다. 2) NFS : 웹 스토리지에 NFS 서버가 고정되어 있다면 PV의 Volume Plugin을 NFS로 지정하게 되면 이 PV는 외부에 있는 NFS와 연결할 수 있는 NFS 클라이언트의 역할을 하게 됩니다. OS에 NFS 클라이언트가 설치되어 있어야 합니다. 3) Cloud Service Volume : Azuer, GCP, AWS 등 클라우..
2024.01.30 -
1. 먼저 Master, Worker 노드들이 있고, Pod Network에 대한 영역이 있습니다. 처음 클러스터 설치 시 pod-network-cidr로 이 네트워크 대역에 대한 영역을 설정했던 부분입니다. Pod Network에 대해 알아볼 영역은 Pod내에 컨테이너로 가는 네트워킹을 하는 부분입니다. Pod가 생성되면 Pod Network 범위 내에서 고유 IP를 가지고 있는 인터페이스가 생기는데 이것을 통해서 어떻게 여러 컨테이너들 간에 통신이 되는지 알아보겠습니다. 그리고 또 다른 Pod가 생성되었을 때 이 두 Pod간의 통신은 k8s에서 Node마다 설치가 되는 Network Plugin에 의해 통신이 됩니다. k8s에서 기본적으로 제공하는 큐브넷이라는 네트워크 플러그인이 있는데 이건 네트워크..
20. Networking - Pod / Service Network(Calico), Pause Container1. 먼저 Master, Worker 노드들이 있고, Pod Network에 대한 영역이 있습니다. 처음 클러스터 설치 시 pod-network-cidr로 이 네트워크 대역에 대한 영역을 설정했던 부분입니다. Pod Network에 대해 알아볼 영역은 Pod내에 컨테이너로 가는 네트워킹을 하는 부분입니다. Pod가 생성되면 Pod Network 범위 내에서 고유 IP를 가지고 있는 인터페이스가 생기는데 이것을 통해서 어떻게 여러 컨테이너들 간에 통신이 되는지 알아보겠습니다. 그리고 또 다른 Pod가 생성되었을 때 이 두 Pod간의 통신은 k8s에서 Node마다 설치가 되는 Network Plugin에 의해 통신이 됩니다. k8s에서 기본적으로 제공하는 큐브넷이라는 네트워크 플러그인이 있는데 이건 네트워크..
2024.01.26 -
k8s는 한 대의 Master, Workers 노드들로 구성이 되는데, Master에는 Control plane Component라고 k8s 주요 기능들을 담당하는 컴포넌트들이 있고, Worker Node Component라고 해서 컨테이너를 관리하기 위한 기능들이 있습니다. [ Pod 생성 예제 ] 먼저 Master 노드에는 위와 같이 Etcd, kube-scheduler, kube-apiserver가 있는데 일반적인 설치를 했을 때 이 컴포넌트들은 Pod의 형태로 띄워져서 구동 중인 상태입니다. k8s가 기동시에 /etc/kubernetes/manifests 있는 위 3개의 .yaml 파일을 읽어서 이 Pod들을 static으로 띄웁니다. Worker 노드에는 kubelet, Container Run..
19. Component : kube - apiserver, etcd, kube - schedule, kube - proxy, kube-controller-managerk8s는 한 대의 Master, Workers 노드들로 구성이 되는데, Master에는 Control plane Component라고 k8s 주요 기능들을 담당하는 컴포넌트들이 있고, Worker Node Component라고 해서 컨테이너를 관리하기 위한 기능들이 있습니다. [ Pod 생성 예제 ] 먼저 Master 노드에는 위와 같이 Etcd, kube-scheduler, kube-apiserver가 있는데 일반적인 설치를 했을 때 이 컴포넌트들은 Pod의 형태로 띄워져서 구동 중인 상태입니다. k8s가 기동시에 /etc/kubernetes/manifests 있는 위 3개의 .yaml 파일을 읽어서 이 Pod들을 static으로 띄웁니다. Worker 노드에는 kubelet, Container Run..
2024.01.26 -
k8s의 Autoscaler에는 3가지가 있습니다. Pod의 개수를 늘리는 HPA, Pod의 리소스를 증가시키는 VPA, 클러스터에 노드를 추가하는 CA가 있는데 각각의 개념과 동작 방식을 확인해보겠습니다. 1. HPA, VPA, CA 1. HPA (Horizontal Pod Autoscaler) : 컨트롤러가 있고, Replicas 수치에 따라 Pod가 만들어져서 운영이 되고 있는 상태입니다. 서비스도 연결이 돼서 모든 트래픽이 해당 Pod로 흐르는 상황입니다. 트래픽이 많아져서 Pod 내에 있는 리소스를 모두 사용하게 됐고, 조금 더 트래픽이 증가되면 Pod는 죽을 수 있습니다. 만약 사전에 HPA 만들어서 Controller에 연결을 해놓았다면 HPA가 Pod의 리소스 상태를 감지하고 있다가 위험한..
18. Autoscalerk8s의 Autoscaler에는 3가지가 있습니다. Pod의 개수를 늘리는 HPA, Pod의 리소스를 증가시키는 VPA, 클러스터에 노드를 추가하는 CA가 있는데 각각의 개념과 동작 방식을 확인해보겠습니다. 1. HPA, VPA, CA 1. HPA (Horizontal Pod Autoscaler) : 컨트롤러가 있고, Replicas 수치에 따라 Pod가 만들어져서 운영이 되고 있는 상태입니다. 서비스도 연결이 돼서 모든 트래픽이 해당 Pod로 흐르는 상황입니다. 트래픽이 많아져서 Pod 내에 있는 리소스를 모두 사용하게 됐고, 조금 더 트래픽이 증가되면 Pod는 죽을 수 있습니다. 만약 사전에 HPA 만들어서 Controller에 연결을 해놓았다면 HPA가 Pod의 리소스 상태를 감지하고 있다가 위험한..
2024.01.22 -
1. Ingress 사용 목적 Ingress 사용 목적으로 대표적인 Service LoadBalancing, Canary Upgrade가 있습니다. Service LoadBalancing은 만약 쇼핑몰을 운영 중이라고 가정했을 때 쇼핑페이지와 고객센터, 주문 서비스를 Pod별로 각각 만듭니다. 이렇게 애플리케이션을 나누면 독립적이기 때문에 하나 장애가 생기더라도 다른 서비스는 영향이 없습니다. 또한 외부에서 연결할 수 있도록 각각 서비스를 달아주고, 사용자들로 하여금 쇼핑페이지에 접근하기 위해서는 www.mall.com 도메인 이름으로 고객센터에 접근하려면 /customer, 주문 서비스로 접근하려면 /order 붙여서 접근하도록 하고 싶을 때 일반적으로는 각각의 Path에 따라 각 서비스 IP를 이어줄..
17. Ingress1. Ingress 사용 목적 Ingress 사용 목적으로 대표적인 Service LoadBalancing, Canary Upgrade가 있습니다. Service LoadBalancing은 만약 쇼핑몰을 운영 중이라고 가정했을 때 쇼핑페이지와 고객센터, 주문 서비스를 Pod별로 각각 만듭니다. 이렇게 애플리케이션을 나누면 독립적이기 때문에 하나 장애가 생기더라도 다른 서비스는 영향이 없습니다. 또한 외부에서 연결할 수 있도록 각각 서비스를 달아주고, 사용자들로 하여금 쇼핑페이지에 접근하기 위해서는 www.mall.com 도메인 이름으로 고객센터에 접근하려면 /customer, 주문 서비스로 접근하려면 /order 붙여서 접근하도록 하고 싶을 때 일반적으로는 각각의 Path에 따라 각 서비스 IP를 이어줄..
2024.01.22 -
어플리케이션 종류에는 Stateless Application, Stateful Application 있습니다. Stateless 대표적으로 웹 서버입니다. Stateful 대표적으로 데이터베이스입니다. Stateless는 앱이 여러개 배포되더라도 다 똑같은 서비스의 역할을 합니다. Stateful은 각각의 앱마다 자신의 역할이 있습니다. 몽고 DB 경우를 보면 하나는 Primary 역할, 또 하나는 Secondary, 그리고 Arbiter 역할이 있습니다. Primary는 Main DB이고, 이가 죽으면 Arbiter가 이것을 감지해서 Secondary가 대신 역할을 할 수 있도록 변경해줍니다. 1. 단순 복제인 Stateless 앱과 달리 Stateful 앱은 각 앱마다 본인의 고유 역할을 가지고 있습..
16. StatefulSet어플리케이션 종류에는 Stateless Application, Stateful Application 있습니다. Stateless 대표적으로 웹 서버입니다. Stateful 대표적으로 데이터베이스입니다. Stateless는 앱이 여러개 배포되더라도 다 똑같은 서비스의 역할을 합니다. Stateful은 각각의 앱마다 자신의 역할이 있습니다. 몽고 DB 경우를 보면 하나는 Primary 역할, 또 하나는 Secondary, 그리고 Arbiter 역할이 있습니다. Primary는 Main DB이고, 이가 죽으면 Arbiter가 이것을 감지해서 Secondary가 대신 역할을 할 수 있도록 변경해줍니다. 1. 단순 복제인 Stateless 앱과 달리 Stateful 앱은 각 앱마다 본인의 고유 역할을 가지고 있습..
2024.01.22