본문 바로가기

CICD26

[Kubernetes] Namespace, ResourceQuota, LimitRange(기본 오브젝트) Namespace란 쿠버네티스는 동일한 물리 클러스터를 기반으로하는 여러 가상 클러스터를 지원. 이러한 가상 클러스터를 Kubernetes Namespace 라고 함 Namespace는 이름의 범위를 제공 - 어떠한 Pod나 Deployment 등의 이름은 NameSpace내에서는 유일해야함 즉, 같은 클러스터 내에서 운용되는 애플리케이션이지만 독립된 클러스터에서 운용되는 것처럼 지원함 * PV, Node, NodePort와 같이 모든 Namespace에서 사용가능한 오브젝트 존재 * Namespace를 삭제하면 내부의 오브젝트도 모두 삭제됨 Namespace 작성 예제 Namespace 활용 Pod 작성 예제 ResourceQuota란 Namespace마다 Pod 등의 오브젝트가 사용할 수 있는 자원의.. 2022. 1. 5.
[Kubernetes] ConfigMap, Secret(기본 오브젝트) ConfigMap이란 일반적으로 컨테이너를 사용할 때, 개발과 서비스 사이의 차이로 발생하는 문제점을 방지하기 위해 Dev용, Production용 컨테이너는 같아야함 하지만, 각각의 컨테이너가 서로 다른 설정이 필요한 경우가 있음 - ex) 개발용의 Test용 DB 이처럼 서비스마다 다른 설정이 필요할 때 사용하는 것이 ConfigMap이며 환경 설정을 컨테이너와 분리해서 제공하는 방식으로 개발/서비스와 같은 다양한 방식으로 사용가능 Key, Value로 구성된 탬플릿을 할당하는 것으로 사용 Value값은 기본적으로 String Boolean값을 사용하기 위해서는 'true'와 같이 ''로 묶어줘야함 Secret이란 Password, OAuth Token, SSH KEY와 같은 민감한 정보를 저장하는 .. 2022. 1. 5.
[Kubernetes] Volume(기본 오브젝트) Volume이란 독립적인 쿠버네티스 리소스가 아니므로 자체적으로 생성, 삭제될 수 없음. 볼륨은 파드의 모든 컨테이너에서 사용 가능하며 이 경우 접근하려는 각 컨테이너에서 마운트해야 함. 각 컨테이너 파일 시스템의 어느 경로에나 볼륨을 마운트 가능. Volume의 종류 1. emptyDir 최초 생성될 때 볼륨 내용이 비어있기 때문에 emptyDir로 명칭 파드 단위로 마운트되는 볼륨 같은 Pod내의 컨테이너들끼리 데이터를 공유가능 Pod내의 마운트된 볼륨을 통해 자신의 로컬처럼 데이터를 공유가능 파드 생성시 만들어지고 삭제시 없어지므로 일시적인 데이터 보관 emptyDir yaml 작성 예시 2. hostPath Pod가 올라가 있는 Node를 Path로 사용하기 때문에 명칭 - 노드 단위로 마운트되는.. 2022. 1. 4.
[Kubernetes] Service(기본 오브젝트) Service란 Pod의 경우 IP가 랜덤하게 지정되고 재기동마다 변경, 따라서 고정된 엔드포인트 호출이 어려움 Pod간의 로드밸런싱을 지원해야하는데 Service가 이러한 역할을 수행 Service는 지정된 IP로 생성이 가능, 여러 Pod를 묶어서 로드 밸런싱 가능, 고유한 DNS 이름을 가질 수 있음 Service의 종류 Service는 Pod에 접근을 도와주는 방식에 따라 몇가지로 나뉨 Service 생성시 type에 지정가능(기본값 = Cluster IP) Cluster IP Pod의 IP와 마찬가지로 쿠버네티스 Cluster내에서만 접근이 가능(외부에서는 접근 불가, Cluster 내부에서만 사용하는 IP) 여러개의 Pod 연결 가능 트래픽을 분산하여 Pod에 전달 Node Port 물리적인 .. 2022. 1. 3.
[Kubernetes] Pod(기본 오브젝트) Pod란컨테이너를 하나 이상 모아놓은 것, 쿠버네티스 애플리케이션의 최소 단위같은 포드에 속한 컨테이너끼리는 동일한 컴퓨팅 리소스를 공유 k8s의 크기 단위Cluster > Node > Pod > Container  Pod의 3가지 특징Container pod안에는 하나의 독립적인 서비스를 제공할 수 있는 컨테이너들이 존재컨테이너들은 서비스가 연결될 수 있도록 Port를 가지고 있음한 Pod안에서 컨테이너들끼리의 Port는 중복될 수 없음pod가 생성될 떄 고유의 IP 주소가 할당됨쿠버네티스 외부에서는 접근 불가Labelpod 뿐만 아니라 모든 Object에 달 수 있음(pod에서 가장 많이 사용)사용목적에 따라 label 등록, 목적에 따라 오브젝트 분류/연결Key, Value로 구성Node Sched.. 2022. 1. 3.
쿠버네티스 소개 쿠버네티스가 등장하기 전까지의 가상화 기술 VM(Virtual Machine) 서비스 운영을 위해서는 서버 자원을 효율적으로 사용하는 것이 중요 ex) 게임의 접속 대기열 트래픽을 예상하기도 어려우며, 미리 여유러운 자원을 준비하는 것도 비용적으로 쉽지 않은 문제 이를 해결하기 위해 VMware, Virtual Box와 같은 VM이 출현하여 서버 운영의 자동화가 가능해짐 Docker(Container) VM 가상화는 OS가 필요하다는 문제가 발생, 하나의 서비스를 위해 더 무거운 OS를 띄워야하기 때문 이러한 문제를 Docker(컨테이너 가상화 기술)로 해결가능 컨테이너 가상화 기술은 서비스간 자원 격리로 OS를 띄울 필요가 없음, OS 기동 시간이 없기 때문에 자동화가 빠르고 자원 효울이 높음 쿠버네티.. 2021. 12. 28.
AWS, Docker를 이용한 간단한 웹사이트(2)-AWS 작업 https://jangcenter.tistory.com/30에서 이어짐 AWS, Docker를 이용한 간단한 웹사이트(1)-docker 작업 자기소개 페이지 제약사항 Docker Container로 DB와 프론트 페이지를 실행 (DBMS 및 Web Server의 종류는 무관) EC2 인스턴스(프리티어 범주내)를 하나 생성해서 해당 인스턴스에서 1번의 도커 컨테이너를 jangcenter.tistory.com 인스턴스 생성 프리티어 생성(Amazon Linux -> t2.micro) 기본 VPC 생성 생성한 기본 VPC 할당 보안그룹에 SSH, HTTP 추가 이후 기본 설정 인스턴스 접속 docker 설치 [ec2-user@~~~~~]$ sudo yum -u upgrade [ec2-user@~~~~~]$ s.. 2021. 9. 9.
AWS, Docker를 이용한 간단한 웹사이트(1)-docker 작업 자기소개 페이지 제약사항 Docker Container로 DB와 프론트 페이지를 실행 (DBMS 및 Web Server의 종류는 무관) EC2 인스턴스(프리티어 범주내)를 하나 생성해서 해당 인스턴스에서 1번의 도커 컨테이너를 실행 프론트 페이지에서 필요로 하는 데이터는 Lambda, API Gateway를 이용해서 제공할 수 있도록 구현 Docker 설치 https://www.docker.com/get-started Get Started with Docker | Docker Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business exec.. 2021. 9. 8.