서버가 죽었을 때 자동으로 복구하는 기능 (Self-Healing)
·
쿠버네티스/cka
Self-healing 이란?서버가 죽었을 때 자동으로 복구하는 기능을 의미한다.즉, Pod 가 죽었을 때, Pod 가 스스로 복구해야 한다.pod안에 container 이 실행되고, container 안에 특정 프로그램이 실행되고 있다.즉, container 로 실행되고 있다는 것은 docker 도 실행되고 있다는 것을 의미한다.이때 docker kill {{docker-id}} 를 작성했을 때, Pod는 삭제되지 않는다.특정 환경에서 일부 Pod 의 컨테이너를 종료시켜보기docker kill {{docker-id}}kubectl get pods Pod가 사라지지 않은것을 확인할 수 있다.RESTARTS 가 1이 늘어난 것을 확인할 수 있다.이전에 container 이 죽었는데, 죽은 것을 Pod 가 ..
디플로이먼트를 활용한 서버 개수 조절 방법
·
쿠버네티스/cka
디플로이먼트를 활용하여 서버의 개수를 조절해보기 서버의 개수 = Pod 의 개수spring-deployment.yaml 파일replicas 를 5로 수정한다.kubectl apply -f spring-deployment.yamlkubectl apply 는 새롭게 무언가를 생성하거나 변경사항을 적용시킬 때에도 사용한다.kubectl get podspod 의 개수가 5개로 늘어난 것을 확인할 수 있다.
ip와 port의 개념
·
쿠버네티스/docker
IP의 개념네트워크 상에서 특정 컴퓨터를 가르키는 주소를 의미한다. ("192.168.xx.xx" : 3000)nslookup {{domain}} : 해당 도메인의 ip주소를 확인할 수 있다.'여기서 domain에 "172.217.161.78" 을 입력하면 google로 이동됨Port의 개념ip에서 가르키는 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소 (192.168.xx.xx : "3000")실제 서버를 운영하는 컴퓨터에서 여러 프로그램이 실행되고 있는데, 이중 어떤 프로그램과 통신을 해야하는지 알려주는 역할을 한다.브라우저 창에서 포트번호를 입력하지 않는 이유도메인 주소를 통해 알 수 있는 것은 ip주소 뿐이다.만약 port를 직접 입력하지 않는 경우, 브라우저는 80번 포트로 통신하도록 지정되..
ERROR: error during connect: Head "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/_ping": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
·
에러일기
발생 경로terminal 에 `docker build -t spring-server .` 전송 시 발생.원인Docker desktop 이 실행되지 않음.해결 방법 Docker desktop 실행 후 재 전송
서비스를 활용하여 백엔드(Spring Boot) 서버와 통신해보기
·
쿠버네티스/cka
이전 실습환경을 바탕으로 서비스(Service) 를 활용하여 백엔드(Spring Boot) 서버와 통신한다.서비스의 종류NodPort : 쿠버네티스 내부에서 서비스에 접속하기 위한 포트를 열고 외부에서 접속이 가능하도록 한다.ClusterIp : 쿠버네티스 내부에서만 통신할 수 있는 IP 주소를 부여한다. 외부에서는 요청할 수 없다. (보안)LoadBalancer : 외부의 로드밸런서 (AWS 로드밸런서 등) 를 활용해 외부에서 접속할 수 있도록 연결한다.spring-service.yaml 생성하기apiVersion: v1kind: Servicemetadata: # 서비스 이름 name: spring-servicespec:# 서비스의 종류는 여러가지가 있는데, 하위 종류는 외부에서 접속 가능하도록 하..
서비스(Service)란?
·
쿠버네티스/cka
서비스란?외부로부터 들어오는 트래픽을 받아, Pod 에 균등하게 분배해주는 Road balancer 역할을 하는 기능.서비스를 통해서 사용자가 Pod 에 요청을 보낼 수 있도록 만든다.실제 서비스에서 pod 내부의 프로그램이 Pod 에 요청을 보낼 때, Local computer 에서 요청을 보낼 수 없다.pod 내부와 pod 외부 네트워크가 분리되어 있음port-forwarding 이나 파드 내로 직접 접근을 통해 요청을 보낼 수 있음서비스의 동작 방식사용자가 요청을 보내면 서비스가 알아서 여러 파드에 요청을 분배하여 보내준다.트래픽을 받아서 파드에 균등하게 분배해주는 로드 밸런스 역할 뿐 아니라 사용자 요청을 받는 기능도 하고 있다.즉, 컨테이너 내부의 서버에 접근하기 위해 서비스를 생성해야 한다
디플로이먼트를 활용하여 백엔드(Spring Boot) 서버 3개 띄워보기
·
쿠버네티스/cka
이전 실습환경을 토대로 디플로이먼트를 활용하여 백엔드 서버를 3개 띄워보기를 진행한다.spring-deployment.yaml 파일 생성하기apiVersion: apps/v1kind: Deploymentmetadata: name: spring-deployment# deployment 의 세부 정보spec: # 생성할 pod 의 개수를 작성한다. replicas : 3 # "app:backend-app" 이라는 lable 을 가진 파드를 # deployment를 활용하여 배포한다는 것을 의미한다. selector : matchLabels: app: backend-app # 배포할 pod의 정보를 작성한다. template: metadata: # 카테고리를 의미한다..
디플로이먼트(Deployment) 란?
·
쿠버네티스/cka
Deployment 란?파드를 묶음으로 쉽게 관리할 수 있는 기능을 의미함.현업에서 일반적으로 서버를 작동시킬 때,Pod를 수동으로 배포하진 않고 Deployment 를 활용하여 Pod를 자동으로 배포한다.Deployment 의 장점pod 의 수를 지정하는 대로 여러개의 파드를 쉽게 생성 가능Pod 100개 생성 시도 시, Deployment 가 알아서 pod 100개를 생성한다.Pod 가 비정상적으로 종료된 경우, 알아서 pod를 생성하여 pod 수를 유지한다.동일한 구성의 여러 Pod를 일괄적으로 일시중지, 삭제, 업데이트 하기 쉽다.Deployment를 통해 100개의 서버를 한번에 일시중지, 삭제, 업데이트할 수 있다. (묶음으로 관리함)Deployment 의 구조Deployment 가 Repli..