본문 바로가기
반응형

분류 전체보기760

포드의 스케줄링 구조 쿠버네티스에서 포드가 어떻게 배치되는지 알아보자 포드의 생성 방식 스케줄링 : 컨테이너 애플리케이션을 구체적으로 어떤 노드에서 움직이게 할지를 알고리즘에 기초하여 배치한다. 마스터 노드안에는 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://aws.amazon.com/ko/caching/ 캐싱이란 무엇이고 어떻게 작동합니까 | AWS 다양한 캐싱 사용 사례 알아보기 데이터베이스 캐싱 속도와 처리량 면에서, 데이터베이스가 제공하는 성능은 애플리케이션 전체 성능에 무엇보다 크게 영향을 미칠 수 있습니다. 또한 오늘날 aws.amazon.com 한줄 요약 캐시의 주요 목적은 더 느린 기본 스토리지 계층에 액세스해야 하는 필요를 줄임으로써 데이터 검색 성능을 높이는 것입니다. 2021. 7. 21.
CI/CD continues integration / continues delivery 의 약자이다. https://artist-developer.tistory.com/24 CI/CD란 무엇인가 (Feat. DevOps 엔지니어) 안녕하세요. 개발자의 용어를 쉽고 명확하게 설명해드리는 개발자 김모씨입니다. CI/CD ?! 개발자로 밥먹고 사시는 분들이시라면, 혹은 IT서비스 업계에 종사하시는 분들이라면, 한 번 쯤은 들어 artist-developer.tistory.com 읽어보면 좋다! 2021. 7. 21.
쿠버네티스 디플로이 순서는 대략 이렇다 매니페스트 파일 작성 - 클러스터에 리소스 작성 - 애플리케이션 동작 확인 매니페스트 파일 작성은 클러스터에 애플리케이션 몇개 디플로이 등 설정하는것이고 클러스터에 리소스 작성은 실제 클러스터에 배치(리소스란? 디플로이한 컨테이너 애플리케이션이나 네트워크 설정등) 파드가 무엇인고? https://kubernetes.io/ko/docs/concepts/workloads/pods/ 파드 운영 수준의 컨테이너 오케스트레이션 kubernetes.io 새로운 개념이 나오는데 대충 보면 노드안에 파드, 파드안에 컨테이너가 있다. 서비스 공개도 매니페스트 파일로 하는데 위와 같이 파일을 apply하면 끝이다. 디플로이한 애플리케이션에 액세스 하기 위한 주소를 확인해보자 external-ip 가 글.. 2021. 7. 21.
kubectl 명령어 기본조작 kubectl [명령] [타입] [이름] [플래그] [명령] 자주 사용하는 명령어는 create/apply/get/delete 라고 한다 상세정보 확인은 describe, 로그를 확인할 때는 logs를 사용한다. [타입] 리소스를 넣는것 같음. 타입에는 단축명을 사용할수 있다고 한다. [플래그] 옵션을 넣는것이라 생각하면된다. 그때 그때 모르는게 있으면 kubectl help 로 확인하자 쉘에서 자동실행 zsh 에서의 경우 git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh bash 의 경우 https.. 2021. 7. 21.
IOPS (아이옵스) 란? 아이옵스(Input/Output Operations Per Second, IOPS)는 HDD, SSD, SAN 같은 컴퓨터 저장 장치를 벤치마크하는 데 사용되는 성능 측정 단위다. IOPS는 보통 인텔에서 제공하는 Iometer 같은 벤치마크 프로그램으로 측정된다. IOPS 측정값은 벤치마크 프로그램에 따라 다르다. 구체적으로는 임의 접근과 순차 접근 여부, 벤치마크 프로그램의 쓰레드 개수와 큐의 크기, 데이터 블록 크기, 읽기 명령과 쓰기 명령의 비중 등에 따라 달라지며, 이외에도 많은 변수들이 있다. 일반적으로는 종합 IOPS, 임의 접근 읽기(Random Access Read) IOPS, 임의 접근 쓰기(Random Access Write) IOPS, 순차 접근 읽기(Sequential Access.. 2021. 7. 21.
Azure를 사용한 쿠버네티스 클러스터 작성 AKS를 통한 클러스터 구축 ACR 이미지는 AKS에서 작성한 쿠버네티스 클러스터 상에서 pull 하여 움직인다. 그러기 위해서는 ACR 과 AKS 사이에 인증을 해야 하기 떄문에 azure active Directory 의 서비스 프린서플(principal)[azure리소스를 조작하는 애플리케이션을 위한 id]을 사용한다. ACR_ID=$(az acr show --name $ACR_NAME --query id --output tsv) az acr show 를 통해 ACR 리소스 ID 취득, ACR_ID에 저장 SP_PASSWD=$(az ad sp create-for-rbac --name $SP_NAME --role Reader --scopes $ACR_ID --query password --output.. 2021. 7. 20.
docker 이미지를 ACR에 올리기 우선 acr 레지스트리를 생성하였다. 내가 전에 docker에 django 이미지를 올렸던걸 ACR에 올려보자 https://docs.microsoft.com/ko-kr/azure/container-instances/container-instances-tutorial-prepare-acr 자습서 - 이미지를 배포할 컨테이너 레지스트리 준비 - Azure Container Instances Azure Container Instances 자습서 2/3부 - Azure 컨테이너 레지스트리를 준비하여 이미지 푸시 docs.microsoft.com 위 문서 참고하면 된다. 잘됏는지 확인하기위해 azure portal로 들어가 컨테이너 레지스트리에서 잘 올라왔나 확인해 보았다. 아래 명령어로도 확인할수도 있다. 2021. 7. 20.
반응형