본문 바로가기
반응형

K8S55

쿠버네티스 클러스터의 서비스 계정에 대한 IAM 역할 활성화 https://www.eksworkshop.com/beginner/080_scaling/deploy_ca/ EKSworkshop.com In this workshop, we will explore multiple ways to configure VPC, ALB, and EC2 Kubernetes workers, and Amazon Elastic Kubernetes Service. www.eksworkshop.com 2021. 10. 8.
컨트롤 플레인 쿠버네티스 Control Plane Kubernetes 컨트롤 플레인, k8s 컨트롤 플레인, k8s 제어 영역, k8s 제어부 컨테이너의 라이프사이클을 정의, 배포, 관리하기 위한 API와 인터페이스들을 노출하는 컨테이너 오케스트레이션 레이어 이 계층은 다음과 같은 다양한 컴포넌트로 구성된다. etcd API 서버 스케줄러 컨트롤러 매니저 클라우드 컨트롤러 매니저 Reference https://kubernetes.io/ko/docs/reference/glossary/?all=true#term-control-plane 2021. 9. 30.
리플리카셋으로 포드 관리 클러스터에 여러 개의 포드를 디플로이하여 자기복구기능을 구현하는 리플리카셋을 알아보자. 리플리카셋(ReplicaSet) 리플리카셋은 클러스터 안에서 움직이는 포드의 수를 유지하는 장치이다. 애플리케이션 오류나 노드 장애들으로 포드가 정지 됐을 경우 리플리카 셋이 자동으로 새로운 포드를 시작한다. 라벨 셀렉터의 조건에 따라 포드를 검색하여 가동 중인 포드의 수가 매니페스트 파일의 replicas의 수와 일치하는지 아닌지 체크한다. 일치하지 않으면 추가하거나 정지 시킨다. 가동중인 애플리케이션 수를 변경하고 싶으면 리플리카셋의 replicas의 값을 수정하면 된다. 매니페스트 파일 # (1) 기본항목 apiVersion: apps/v1 kind: ReplicaSet # 리플리카셋을 만들것이다. metadat.. 2021. 8. 2.
포드 모니터링 쿠버네티스에는 컨테이너 애플리케이션이 제대로 작동하는지 항상 감시하여 문제가 있으면 포드를 자동으로 재시작하는 장치가 있다. 컨테이너 애플리케이션의 감시 쿠버네티스에서는 포드가 가동되고 있는지를 포드안의 컨테이너 프로세스가 가동 중인지 아닌지로 판단한다. 하지만 프로세스는 가동중이지만 서비스로서는 제대로 움직이지 않을때가 있다.(ex. 프로세스 데드락걸려 리퀘스트 x) 이를 해결하기위해 Liveness Probe를 이용하여 응답을 확인한다. 매니페스트에서 체크조건을 추가하면 활성화가 된다. 가동방식 HTTP 리퀘스트의 반환값을 체크한다. TCP Socket으로 연결할 수 있는지를 체크한다. 명령의 실행 결과를 체크한다. Liveness Probe 적용해보기 웹 애플리케이션의 경우 특정 URL에 HTTP .. 2021. 7. 28.
노드의 리소스 관리 오랜만에 해서 AKS에 연결하는법을 까먹었다 az aks start --name sampleAKS --resource-group sampleAKS 시작만 하면 되는듯. az는 portal에서 로그인하면 자동으로 되는것 같다. 쿠버네티스를 통해 리소스를 노드에 할당되는 리소스를 제어 해보는게 목표다 노드에서 이용할 수 있는 리소스의 상세정보를 살펴보자. kubectl describe node [node 명] 만약 노드명을 모르면 kubectl get node 를 통해 확인하자 이런 정보가 나오는데 Capacity는 노드가 사용가능한 리소스, Allocatable은 포드가 이용가능한 리소스의양. 밑에 cpu가 1900m이 나오는데 1000m당 1cpu라고 생각하면 된다. Resource Request 어떤 .. 2021. 7. 28.
관리 ID https://docs.microsoft.com/ko-kr/azure/active-directory/managed-identities-azure-resources/overview Azure 리소스에 대한 관리 ID Azure 리소스에 대한 관리 ID 개요 docs.microsoft.com 2021. 7. 28.
포드의 스케줄링 구조 쿠버네티스에서 포드가 어떻게 배치되는지 알아보자 포드의 생성 방식 스케줄링 : 컨테이너 애플리케이션을 구체적으로 어떤 노드에서 움직이게 할지를 알고리즘에 기초하여 배치한다. 마스터 노드안에는 API server가 있는데 이것은 C,R,U,D를 하기위해 RESTful 인터페이스를 가지고 있다. etcd(클러스터의 상태데이터 소유)에 대한 액세스하기위해 APIserver를 사용하고 이때 동시 갱신이 발생할 경우 오버라이딩이 발생하지 않도록 API server가 제어한다. 1. 만들 포드를 매니페스트 파일에 기술하고 kubctl -f [매니페스트파일] 실행하면 API server로 정보송신 2. 클러스터 구성 정보의 갱신 - 수신받은 데이터를 etcd에 저장 3. 클러스터 구성 변경의 통지 - 구성정보에 변경.. 2021. 7. 22.
포드를 사용한 컨테이너 애플리케이션의 관리 1컨테이너 1프로세스를 권장한다. 쿠버네티스는 관련된 컨테이너의 집합을 포드라 부른다. 포드에는 하나이상의 컨테이너가 있다. 포드 안의 컨테이너는 반드시 동일한 노드에 배치된다. 애플리케이션을 스케일 아웃 할때는 포드 단위로 한다. 포드 안의 컨테이너는 네트워크와 스토리지를 공유한다. 포드 안의 컨테이너는 클러스터 안의 동일한 물리,가상 머신상에 배치되어 실행 된다. 리플리카 - 애플리케이션을 늘리는 경우 동일한 구성으로 된 포드를 여러 개 작성하는 것 네트워크 각 포드에는 고유한 IP주소가 할당이 된다. 동일한 포드의 컨테이너는 IP 주소와 네트워크 포트를 포함한 네트워크 공간을 공유한다. 그래서 포드안의 컨테이너끼리는 localhost를 사용하여 통신 할수 있다. 스토리지 포드안의 컨테이너가 공유 볼.. 2021. 7. 22.
매니페스트 파일 리소스의 구체적인 설정 정보는 파일로 관리하는 것 YAML, JSON 형식으로 된 텍스트 파일이다. 기본구조 apiVersion: [1. Api의 버전정보] kind: [2. 리소스의 종류] metadata: name: [3. 리소스의 이름] spec: [4. 리소스의 상세정보] 1. API 의 버전정보 alpah, beta, 안정판 으로 되어 있고 alpha는 예고도 없이 변경될수 있는것(v1alpha1) beta는 테스트를 어느정도 한것이고 상세한 부분이변경된다(v2beta3) 안정판은 실제 환경에서 사용할수 있는것(v1) 2. 리소스의 종류 전에 포스팅한 리소스같은 것을 입력하면된다. 애플리케이션 실행 - pod/replicaset/deployment 네트워크 관리 - service/ingress .. 2021. 7. 22.
쿠버네티스의 리소스 쿠버네티스는 유연한 애플리케이션 실행 환경 관리를 소프트웨어로 수행하기 때문에 다양한 것들을 추상화 하는데 이 추상화 한것을 리소스라고한다. 애플리케이션 실행 pod 쿠버네티스에서는 여러 개의 컨테이너를 모아서 포드로 관리 한다. 예를 들어 서버용 도커 컨테이너와 프록시용 서버용 컨테이너 등과 관련된 것을 모아서 관리 할수 있다. 이 포드가 애플리케이션의 디플로이 단위가 되며 포드 단위로 컨테이너 작성,시작, 정지 삭제 같은 조작을 한다. 동일한 포드의 컨테이너는 반드시 동일 노드상에 동시에 디플로이 된다는 특징이 있다. 포드 내에는 가상 NIC를 공유하는 구성이라 컨테이너끼리 localhost를 경유하여 통신할 수 있다. 도커는 컨테이너단위로만 배포 가능하고 쿠버네티스는 포드 단위로 배포할수 있다는게 .. 2021. 7. 22.
쿠버네티스 특징과 구조 특징 Immutable infrastructure 선언적 설정 자기 복구 기능 1. 필요할때 생성하고 필요없을때 파기 2. 매니페스트파일에 구성을 만들어 인프라 구성 3. 자기복구기능 오류가 생기면 쿠버네티스 자신이 자동으로 api를 사용하여 재시작시키거나 복구한다. 쿠버네티스 오케스트레이션 수행 방법 애플리케이션이 디플로이 되면 쿠버네티스가 클러스터상에서 비어 있는 위치를 찾아내서 자동으로 배치한다. 스케줄링 애플리케이션을 적절한 곳에 디플로이하는 장치를 스케줄링이라고 한다. 서비스 디스커버리 예를 들어 리퀘스트를 받은 프론트 엔드 애플리케이션이 사용자의 트랜잭션을 처리하기 위해 백엔드 서비스를 호출한다고 치자 여기서 디플로이된 애플리케이션이 어디에 있는지를 찾아내는 장치를 서비스 디스커버리 라 한다... 2021. 7. 21.
쿠버네티스 디플로이 순서는 대략 이렇다 매니페스트 파일 작성 - 클러스터에 리소스 작성 - 애플리케이션 동작 확인 매니페스트 파일 작성은 클러스터에 애플리케이션 몇개 디플로이 등 설정하는것이고 클러스터에 리소스 작성은 실제 클러스터에 배치(리소스란? 디플로이한 컨테이너 애플리케이션이나 네트워크 설정등) 파드가 무엇인고? https://kubernetes.io/ko/docs/concepts/workloads/pods/ 파드 운영 수준의 컨테이너 오케스트레이션 kubernetes.io 새로운 개념이 나오는데 대충 보면 노드안에 파드, 파드안에 컨테이너가 있다. 서비스 공개도 매니페스트 파일로 하는데 위와 같이 파일을 apply하면 끝이다. 디플로이한 애플리케이션에 액세스 하기 위한 주소를 확인해보자 external-ip 가 글.. 2021. 7. 21.
반응형