전체 글 65

[Kubernetes] ReplicaSet (레플리카셋)

레플리카셋이란? 파드의 수를 늘리고 싶다면? (Scale-out) 레플리카셋 (ReplicaSet) 정해진 수의 파드가 항상 실행될 수 있도록 관리 기존 실행중이던 파드에 문제가 생기면 파드를 다시 스케줄링 ReplicationController의 신규 버전 (현재는 Deprecated) 레플리카셋의 동작원리 ReplicaSet Controller가 Control Plane(마스터 노드)에 존재 spec.selector에 대응되는 파드의 수가 spec.replicas와 동일한지 지속적으로 검사하고, 다를 경우 스케일 아웃 혹은 인 진행 레이블 셀렉터 (Label Selector) 쿠버네티스 오브젝트는 모두 metadata.labels 에 Key - Value 형태의 레이블 값을 가짐 특정 오브젝트 목록을..

DevOps./Kubernetes 2022.02.02

[Kubernetes] 파드 (Pod)

파드 (Pod) 쿠버네티스가 컨테이너를 다루는 기본 단위 1개 이상의 컨테이너로 구성된 컨테이너 집합 동일 파드 내 컨테이너는 여러 리눅스 네임스페이스를 공유 => 네트워크 네임스페이스 공유 (동일 IP 사용) 파드 관련 kubectl 명령어 파드 목록 확인 $ kubectl get pod 특정 파드 상태 확인 $ kubectl describe pod hello 특정 파드에 명령어 전달 $ kubectl exec -i -t hello bash 특정 파드 로그 확인 $ kubectl logs pod/hello 멀티 컨테이너 파드와 사이드카 패턴 동일 파드 내 컨테이너는 모두 같은 노드에서 실행 (네임스페이스를 공유하기 때문) 사이드카 패턴 (Side-car Pattern) 메인 컨테이너를 보조하는 컨테이너..

DevOps./Kubernetes 2022.02.02

[Kubernetes] kubectl 명령형과 선언형 방식

명령형 (Imperative) 수행하고자 하는 액션을 지시 적은 리소스에 대해서 빠르게 처리 가능 여러 명령어를 알아야 함 선언형 (Declarative) - 추천 도달하고자 하는 상태(Desired State)를 선언 코드로 관리 가능 -> GitOps 활용 가능 변경사항에 대한 감사(Audit) 용이 코드리뷰를 통한 협업 멱등성 보장 (apply) 많은 리소스에 대해서도 매니페스트 관리 방법에 따라 빠르게 처리 가능 알아야 할 명령어 수가 적음 kubectl 명령형 명령어 ubuntu:focal 이미지로 ubuntu 파드 생성 (bash 명령어) $ kubectl run -i -t ubuntu --image=ubuntu:focal bash grafana Deployment 오브젝트에 대해 NodePo..

DevOps./Kubernetes 2022.02.01

[Kubernetes] API 리소스

API 리소스와 오브젝트 API 리소스 쿠버네티스가 관리할 수 있는 오브젝트의 종류 Pod, Service, ConfigMap, Secret - Node, ServiceAccount, Role 오브젝트 (Object) API 리소스를 인스턴스화 한 것 05-03. 쿠버네티스를 이용한 컨테이너 오케스트레이션 현재 쿠버네티스 클러스터가 지원하는 API 리소스 목록 출력 $ kubectl api-resources 특정 API 리소스에 대해 간단한 설명 확인 $ kubectl explain pod 매니페스트 파일 Labels & Annotations 모든 쿠버네티스 오브젝트는 Labels과 Annotations 메타데이터를 가질 수 있음 둘 모두 문자열(String)..

DevOps./Kubernetes 2022.02.01

[Kubernetes] 쿠버네티스 클러스터 구성요소

클러스터 구성 Control Plane (Master Node) 클러스터의 관리하는 역할 담당 상태 관리 및 명령어 처리 Node (Worker Node) 어플리케이션 컨테이너 실행 kubelet 컨테이너 런타임(Container Runtime)과 통신하며 컨테이너 라이프사이클 관리 API 서버와 통신하며 노드의 리소스 관리 CRI (Container Runtime Interface) kubelet이 컨테이너 런타임과 통신할 때 사용되는 인터페이스 쿠버네티스는 Docker, containerd, cri-o 컨테이너 런타임 지원 kube-proxy 오버레이 네트워크 구성 네트워크 프록시 및 내부 로드밸런서 역할 수행 제어 영역 (Control Plane) API Server 쿠버네티스 리소스와 클러스터 관..

DevOps./Kubernetes 2022.02.01

[Kubernetes] 쿠버네티스 소개

쿠버네티스 구글 내부에서 사용하던 배포시스템 borg를 기반으로 재작성하여 2014년에 오픈소스로 공개 컨테이너 오케스트레이션 시스템이란? 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 기술 운영체제는 하나의 머신에서 프로세스를 효율적으로 관리하기 위한 프로세스 오케스트레이션 시스템 컨테이너 오케스트레이션 시스템은 여러 머신으로 구성된 클러스터 상에서 컨테이너를 효율적으로 관리하기 위한 시스템 왜 쿠버네티스인가? Planet Scale 구글에서 수 십억 개의 컨테이너를 운영할 수 있게 한 원칙 유지 행성 규모로 확장할 수 있는 스케일 Never Outgrow 다양한 요구사항을 만족할 수 있는 유연함 테스트용 로컬 규모부터 글로벌 서비스 규모까지 유연하게 크기 조정 가능 필요한 기능이 없을 경우 C..

DevOps./Kubernetes 2022.02.01

[Docker] 도커 컴포즈 (Docker Compose)

도커 컴포즈 (Docker Compose) 단일 서버에서 여러 컨테이너를 프로젝트 단위로 묶어서 관리 docker-compose.yml YAML 파일을 통해 명시적 관리 프로젝트 단위로 도커 네트워크와 볼륨 관리 프로젝트 내 서비스 간 의존성 정의 가능 프로젝트 내 서비스 디스커버리 자동화 손 쉬운 컨테이너 수평 확장 프로젝트 (Project) 도커 컴포즈에서 다루는 워크스페이스 단위. 함께 관리하는 서비스 컨테이너의 묶음. 프로젝트 단위로 기본 도커 네트워크가 생성 됨. 서비스 (Service) 도커 컴포즈에서 컨테이너를 관리하기 위한 단위. scale을 통해 서비스 컨테이너의 수 확장 가능. 컨테이너 (Container) 서비스를 통해 컨테이너 관리. 컨테이너 (Container) 서비스를 통해 컨테..

DevOps./Docker 2022.02.01

[AWS] (VPC) AWS 네트워킹의 동작원리 3

NAT(Network Address Translation) instance/gateway Private Subnet이라고 하더라도 외부 인터넷과 통신이 필요할 때가 있다. (ex. 내부 Database Update) -> Public Subnet을 통해 우회적인 방법 사용 NAT gateway & instance Private subnet 안에 있는 private instance가 외부의 인터넷과 통신하기 위한 방법 NAT Instance는 단일 Instance(ex. public subnet내에 존재하는 ec2) NAT Gateway는 aws에서 제공하는 서비스 (우회에 특화된 서비스) Bastion host Private Instance에 접근하기 위한 수단 Public subnet 내에 위치하는 E..

DevOps./AWS 2022.01.31

[AWS] (VPC) AWS 네트워킹의 동작원리 2

Internet gateway(IGW) 인터넷으로 나가는 통로 Private subnet은 IGW로 연결되어 있지 않다. VPC 내부에는 관여하지 않고 외부통신에 관여 Route table 트래픽이 어디로 가야 할지 알려주는 테이블 VPC 생성 시 자동으로 만들어줌 10.0.0.0/16( 10.0.0.0 ~ 10.0.255.255까지 )→Local 나머지는 IGW(인터넷) private subnet은 10.0.0.0/16만 존재하기 때문에 private subnet에서 외부로 가려고해도 route table에서 막힌다. NACL(Network Access Control List)/Security Group 보안검문소 NACL -> Stateless, SG->Stateful Access Block은 NAC..

DevOps./AWS 2022.01.31

[AWS] (VPC) AWS 네트워킹의 동작원리 1

Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다. VPC 특징 계정 생성 시 default로 VPC를 만들어 줌 EC2, RDS, S3 등의 서비스 활용 가능 서브넷구성 보안 설정(IP block, inbound outbound 설정) VPC Peering(VPC 간의 연결) IP대역지정가능 VPC는 하나의 Region에만 속할 수 있음(다른 Region으로 확장 불가능) VPC 구성 VPC 구성요소 Availability Zone Subnet(CIDR) In..

DevOps./AWS 2022.01.31