Cloud-native/Kubernetes (65) 썸네일형 리스트형 [Kubernetes]Manifest file - 매니페스트 파일(yaml) 쿠버네티스에서는 선언적(declarative) 설정을 할 때 매니페스트 파일(yaml)을 사용한다. 매니페스트 파일의 기본 매니페스트 파일 예시 Nginx 컨테이너 이미지를 바탕으로 한 웹 프론트 서버를 클러스터 안에서 10개 실행시켜 두고 싶은 경우 webserver.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: webserver spec: replicas: 10 selector: matchLabels: app: webfront template: metadata: labels: app: webfront spec: containers: - image: nginx name: webfront-container ports: - containerPort:.. [Kubernetes]What is Kubernetes DNS Kubernetes DNS K8s에서는 클러스터 안에서만 사용하는 DNS를 설정할 수 있다. 그리하여 파드 사이에 통신할 때 IP가 아닌 도메인을 사용할 수 있다. 특정 파드나 디플로이먼트를 도메인으로 접근하도록 설정했다면 문제가 생겨서 파드나 디플로이먼트를 재생성할 때 자동으로 변경된 파드의 IP를 도메인에 등록하고 자연스럽게 새로 실행한 파드로 연결할 수 있다. DNS를 클라이언트나 API 게이트웨이가 호출할 서비스를 찾는 서비스 디스커버리 용도로 사용할 수도 있다. 클러스터 안에서 도메인 사용하기 특정 서비스에 접근하는 도메인 Domain: 서비스이름.네임스페이스이름.svc.cluster.local 으로 구성한다. e.g. namespace: aname servcie: bservice Domain:.. [Kubernetes]쿠버네티스 리소스 - 배치 잡 관리(Job/CronJob) 배치 잡 관리(Job/CronJob) 웹 서버와 같은 상주 서비스가 아니라 집계 등과 같은 배치 처리 또는 기계학습이나 수치해석과 같은 프로그램의 시작부터 종료까지 완료되는 잡을 실행하기 위한 리소스가 Job 또는 CronJob이다. 파드는 정지=이상 종료이지만 Job,CronJob은 정지=잡 종료라는 차이가 있다. Job 상세 설명 및 사용 방법: 2022.05.08 - [Kubernetes] - [Kubernetes]What is a Kubernetes Job(잡) 1회성 작업(단 한번의 작업)에 사용하는 워크로드 하나 또는 여러 개의 포드에서 처리되는 배치 잡을 실행하기 위한 리소스 예를 들어, DB의 마이그레이션과 같이 한번만의 잡으로 처리가 끝나는 것에 이용한다. 어플리케이션 오류나 예외 등으로.. [Kubernetes]쿠버네티스 리소스 - 어플리케이션 설정 정보 관리(ConfigMap/Secrets) 어플리케이션 설정 정보 관리(ConfigMap/Secrets) K8s를 사용하면 컨테이너 어플리케이션이 클러스터안의 어디에서 움직이고 있는지를 의식할 필요가 없다. 그런데 어플리케이션이 공통으로 이용하는 환경변수 등을 컨테이너 안에 넣어 버리면 환경이 바뀔 때마다 이미지를 다시 만들어야 하는 상황이 생긴다. K8s는 이런 어플리케이션 설정 정보를 일원 관리하는 서비스가 있다 → ConfigMap, Secrets 컨피그맵(ConfigMap) 어플리케이션의 설정 정보, 구성파일, 명령 인수, 포트 번호, 어플리케이션 고유의 식별 정보 등을 포드에서 참조할 수 있도록 해주는 장치. Key-Value형으로 정보를 관리할 수 있다. 예를 들어 Nginx의 설정 파일 등 각 컨테이너에서 공통으로 만들고 싶은 것을 .. [Kubernetes]쿠버네티스 리소스 - 네트워크 관리(Service/Ingress) 쿠버네티스 리소스 쿠버네티스는 유연한 어플리케이션 실행 환경 관리를 소프트웨어로 수행하기 때문에 다양한 것들을 추상화하고 있다. 이렇게 추상화한 것을 쿠버네티스에서는 리소스라고 부른다. 네트워크 관리(Service/Ingress) 클러스터 안의 파드에 대해 클러스터 내부 및 외부 네트워크로부터 액세스하기 위한 리소스가 Service 및 Ingress이다. 서비스(Service) K8s 클러스터 안에서 실행된 파드에 대해 접근할 때는 서비스(Service)를 정의한다. 서비스는 K8s의 네트워크를 관리하는 것으로, 몇 가지 종류가 있다. 그 중에서도 로드밸런서는 서비스에 대응하는 IP 주소 + 포트 번호에 액세스하면 여러 포드에 대한 L4 레벨 부하분산을 수행한다. 서비스에 의해 할당되는 IP 주소에는 C.. [Kubernetes]쿠버네티스 리소스 - 어플리케이션 (Pod/ReplicaSet/Delpoyment/DaemonSet/StatefulSet) 쿠버네티스 리소스 쿠버네티스는 유연한 어플리케이션 실행 환경 관리를 소프트웨어로 수행하기 때문에 다양한 것들을 추상화하고 있다. 이렇게 추상화한 것을 쿠버네티스에서는 리소스라고 부른다. 파드(Pod) 쿠버네티스에서는 여러 개의 컨테이너를 모아서 파드로 관리한다. 파드 안에는 어플리케이션 서버용 컨테이너와 프록시 서버용 컨테이너 등과 관련된 것을 모아 관리할 수 있다. 쿠버네티스에서 이 파드가 어플리케이션의 배포 단위가 되며, 포드 단위로 컨테이너의 작성, 시작, 정지, 삭제 등과 같은 조작을 한다. 동일한 파드 안의 컨테이너는 반드시 동일한 노드 상에 동시에 디플로이 된다는 특징이 있다. 파드 안의 여러 컨테이너에서 가상 NIC를 공유하는 구성을 취하기 때문에 컨테이너끼리 localhost를 경유하여 통.. [Kubernetes]쿠버네티스 개념 - Pod의 스케줄링 구조 Pod가 어떻게 배치되는가? 스케줄링: 컨테이너 어플리케이션을 구체적으로 어떤 노드에서 움직이게 할지를 알고리즘에 기초하여 배치하는 것이다. 이 스케줄링 구조를 이해하는 데 있어서 중요한 역할을 하는 것이 쿠버네티스의 마스터에서 움직이는 API Server이다. API Server는 클러스터 안의 리소스를 작성, 참조, 갱신, 삭제하기 위해 RESTful 인터페이스를 갖고 있다. 클러스터의 상태 데이터를 갖고 있는 etcd에 대한 액세스도 이 API Server를 통해 한다. Pod 스케줄링 순서 1. kubectl 명령 실행 - 사용자 kubectl 명령으로 포드를 작성하는 매니페스트(yaml file)를 apply 하면 Kubectl 명령은 마스터에서 움직이는 API Server를 호출한다. 2. P.. [Kubernetes]쿠버네티스 개념 - 스케줄링과 디스커버리 스케줄링과 디스커버리 기존 시스템에서는 어디에서 어떤 어플리케이션이 움직이고 있는지 알고 있어야 했다. 하지만 쿠버네티스에서는 어플리케이션이 배포되는 위치가 쿠버네티스에 의해 정해진다. 어플리케이션이 배포되면 쿠버네티스가 클러스터 상에서 비어 있는 위치를 찾아내서 자동으로 배치한다. 그래서 어플리케이션을 적절한 곳에 배포하고, 배포된 어플리케이션이 어디에 있는지 찾아내는 장치가 있다. 스케줄링 어플리케이션을 적절한 곳에 배포하는 장치 다양한 요구사항을 매니페스트 파일로 정의하여 이를 바탕으로 클러스터 안의 적절한 위치에 어플리케이션을 자동으로 배치해 간다. 쿠버네티스에서 스케줄링은 Kubelet이 파드를 실행할 수 있도록 파드가 노드에 적합한지 확인하는 것을 말한다. 서비스 디스커버리 일반적인 웹 어플리.. 이전 1 ··· 4 5 6 7 8 9 다음