목록Solution Architect (18)
DevOps:leehi9817
Kubernetes란? Kubernetes는 컨테이너 오케스트레이션 플랫폼으로, 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 위한 오픈 소스 도구입니다. Kubernetes는 분산 시스템을 쉽게 관리하고 운영하기 위한 기능을 제공합니다. 컨테이너는 애플리케이션을 격리된 환경에서 실행하는데 유용하지만, 여러 컨테이너로 구성된 애플리케이션의 관리는 복잡할 수 있습니다. 이때 Kubernetes가 도움이 됩니다. Kubernetes는 여러 개의 노드로 구성된 클러스터에서 작동합니다. 각 노드는 여러 개의 컨테이너를 실행할 수 있는 호스트입니다. Kubernetes는 컨테이너를 노드에 스케줄링하고, 컨테이너 간의 통신을 관리하며, 컨테이너의 상태를 모니터링합니다. Kubernetes의 주요 기능 Kuber..

Kubernetes Diagram 1. 마스터 노드(Master Node): 쿠버네티스 클러스터의 중앙 제어 장치로, 클러스터 내의 모든 작업을 조정하고 관리합니다. 마스터 노드는 다음과 같은 구성 요소로 구성됩니다. - API 서버: 쿠버네티스 클러스터와 상호 작용하기 위한 인터페이스를 제공합니다. - 스케줄러(Scheduler): 새로운 파드(Pod)를 노드에 할당하는 역할을 수행합니다. - 컨트롤러 매니저(Controller Manager): 클러스터의 상태를 유지하고 관리하는 역할을 수행합니다. - etcd: 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 키-값 저장소입니다. 2. 워커 노드(Worker Node): 애플리케이션 컨테이너가 실행되는 실제 노드입니다. 각 워커 노드..

Ingress 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리 인그레스는 부하 분산, SSL 종료, 명칭 기반의 가상 호스팅을 제공 인그레스는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출 트래픽 라우팅은 인그레스 리소스에 정의된 규칙에 의해 컨트롤됨 Redirect: 도메인의 인자에 따라 각기 다른 서비스(예: Deployment)로 연결하는 로드밸런싱 기능 제공 예제 /foods로 진입하면 foods-svc를, /sales로 진입하면 sales-svc를, 기본 루트로 진입하면 home-svc를 실행한다. apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name:..

Rolling Update Deployment의 업데이트 방법 중 하나로, Pod를 하나씩 점진적으로 교체하는 방법 따로 설정을 하지 않을 때 기본적으로 적용되는 방식 V1을 V2로 업데이트 할 때, V2를 하나 생성한 뒤 V1을 삭제하는 방식으로 Pod를 하나씩 점진적으로 교체 무중단 배포가 가능하다는 장점 V1과 V2의 Pod가 공존하는 순간이 있음 # kubectl set image deployment.apps/nginx-deployment nginx-deployment-container=leehi9817/web-site:aws # kubectl get all # kubectl rollout history deployment nginx-deployment # kubectl rollout histor..

Controller Cluster의 Pod들을 관찰하여 관리자가 선언한 Pod의 개수를 보장해주는 기능을 수행 Auto Healing: Pod 또는 Node에 문제가 생겼을 경우 자동으로 복구 (ex: ReplicaSet) Software Update: Pod를 업데이트 및 롤백하는 기능 (ex: Deployment) Auto Scaling: Pod의 리소스가 부족할 때 Pod을 추가적으로 생성 Job: 일시적인 작업을 위해 필요한 순간에만 Pod을 만들었다가 삭제할 수 있는 기능 Replica Set Pod의 숫자를 보장해주는 Controller # vi replicaset.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: nginx-replicas..
Service 수신한 트래픽을 여러 Pod로 로드밸런싱(부하 분산)하는 기능 제공 1. ClusterIP 클러스터 내부에서만 사용 가능한 가상 IP를 가진 엔드포인트를 제공하는 로드밸런서 구성 사설 IP로, 보안상 이점이 있어 웹 서버와 DB 서버를 연결할 때 사용됨 2. NodePort 외부 클라이언트가 NodePort를 통해 클러스터 내부의 Pod로 접속할 때 사용 무조건 지정된 NodePort를 통해 접속할 수 있다는 제약이 있음 지정 가능한 NodePort의 범위는 30000-32767 사이이다 3. LoadBalancer NodePort와 ClusterIP의 기능을 모두 가지고 있으면서 동시에 외부 IP를 통해 외부에서 접속할 수 있도록 하는 로드밸런서 구성 독자적인 외부 IP를 지정 가능하므로..
IaaS(Infrastructure as a Service) 컴퓨팅, 스토리지, 네트워킹 리소스를 제공하는 클라우드 컴퓨팅 서비스의 유형 Infrastructure는 물리 서버를 의미하며, 물리 서버의 역할을 대신 제공해주는 서비스이다. 물리적 서버 및 데이터 센터 인프라를 구입하고 관리하는 비용과 복잡성을 피할 수 있음 PaaS(Platform as a Service) 인프라(서버, 저장소, 네트워킹) 뿐만 아니라 플랫폼(미들웨어, 개발 도구, BI 서비스, 데이터베이스 관리 시스템 등)까지 제공하는 서비스 웹 애플리케이션 수명 주기를 지원(빌드, 테스트, 배포, 관리, 업데이트) 사용자는 개발하는 응용 프로그램과 서비스만 관리 No Ops: 관리자들이 하는 역할을 자동화하고 개발자들을 위한 환경 제공..
NFS(Network File System) 네트워크 파일 시스템(Network File System, NFS)은 1984년에 썬 마이크로시스템즈가 개발한 프로토콜입니다. 클라이언트 컴퓨터의 사용자가 네트워크 상의 파일을 직접 연결된 스토리지에 접근하는 방식과 비슷한 방식으로 접근하도록 도와 줍니다. 다른 수많은 프로토콜과 마찬가지로 ONC RPC 시스템을 기반으로 합니다. 네트워크 파일 시스템은 RFC에 정의된 오픈 표준이므로 누구나 구현할 수 있습니다. NFS 서버 - CentOS7 nfs 설치 # yum install -y nfs-utils # mkdir /share && cd $_ # vi /etc/exports /share 10.26.0.0/24(rw,sync) # chmod 707 /share..