백엔드(Spring boot) 서버에 환경변수 등록하여 사용하기
·
쿠버네티스/cka
이전 포스팅에서 1.2 까지 진행하기AppController.java 생성하기package com.example.demo;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class AppController { @Value("${MY_ACCOUNT:default}") // `:` 앞 공백 제거 private String myAccount; @Value("${MY_PASSWORD:..
Pod, deployment, service 개념 정리
·
쿠버네티스/cka
쿠버네티스에서의 핵심 개념컴퓨터 안에 kubernetses 환경을 구축한다.그 안에 Pod 단위의 프로그램을 띄운다.서비스를 실행할 때 pod를 직접 띄울 일이 거의 없다.deployement 를 사용하여 여러개의 pod를 띄운다.위 pod를 묶은 것을 `레플리카셋(replica set)` 이라고 한다.deployement 가 레플리카셋을 관리하고 레플리카셋은 pod 여러개를 관리한다.deployement 를 사용하여 여러개의 pod를 관리한다.서비스를 사용하여 외부에서 요청을 보내도록 한다.외부로부터 요청을 받아주는 역할도 하지만, 여러 파드로부터 트래픽을 균등하게 분배해주는 로드밸런서 역할을 한다.쿠버네티스에서는 service, depoloyment, pod 와 같은 리소스를 object 라고 부른다.
Deployement, service를 활용하여 서버 띄워보기 명령어 정리!
·
쿠버네티스/cka
Pod 관련 명령어파드 조회kubectl get pods 파드 내부로 접속kubectl exec -it {{pod명}} -- bash파드 포트 포워딩kubectl port-forward pod/{{pod명}} {{local port}}:{{pod-port}}파드 삭제kubectl delete pod {{pod명}}디플로이먼트 관련 명령어디플로이먼트 조회kubectl get delployment디플로이먼트 삭제kubectl delete deployement {{deployement명}}서비스(Service) 관련 명령어서비스 조회kubeclt get service서비스 삭제kubectl delete service {{service명}}공통 명령어매니페스트 파일에 적혀있는 리소스 생성kubectl apply..
디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기
·
쿠버네티스/cka
기존에 띄워놓은 네임스페이스 (pod, deployment, service ...) 삭제하기kubectl delete all --all : 기존의 모든 네임스페이스를 삭제한다.디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기요구사항디플로이먼트 : Pod 를 4개 띄운다서비스 : localhost:31000 에서도 통신할 수 있도록 한다.프로젝트 실행시켜보기npm 설치하기 : npm inpm 실행하기 : npm run start접속하기디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄우기Dockerfile 생성하기FROM nodeWORKDIR /appCOPY . .RUN npm installRUN npm run buildEXPOSE 3000ENTRYPOINT [ "node", ..
VS code 에서 새로운 버전의 서버로 업데이트 시키기
·
쿠버네티스/cka
소스코드 일부 변경src\main\java\com\example\demo\AppController.java 내용 수정return "Hello world!"; → return "Version 1.0";새 버전의 서버로 업데이트 하기빌드 진행 : gradlew clean build빌드를 하면 jar 파일이 생성됨해당 ar파일을 기반으로 이미지를 만든다.이미지 빌드하기매니페스트 파일을 수정하고 적용하기.demo\spring-deployment.yaml 내용 수정image: spring-server → image: spring-server:1.0매니페스트 파일 적용하기 : kubectl apply -f {{매니페스트 파일}}접속하기
서버가 죽었을 때 자동으로 복구하는 기능 (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번 포트로 통신하도록 지정되..