서비스(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..
Pod 를 활용하여 서버 띄우기 명령어 정리!
·
쿠버네티스/cka
파드 조회kubectl get pods파드 포트 포워딩kubectl port-forwarding pod/{{pod name}} local-ip:pod-ip파드 삭제kubectl delete pod {{pod name}}파드 디버깅kubectl describe pods {{pod name}}kubectl logs {{pod name}}kubectl exec -it {{pod name}} -- bashkubectl exec -it {{pod name}} -- sh매니페스트 파일에 적혀있는 리소스(파드 등) 생성kubectl apply -f {{yaml file name}}
파드(Pod) 디버깅하는 방법
·
쿠버네티스/cka
이전에 프론트엔드 서버를 띄운 환경 기반 에러 발생web-server-pod.yaml 파일의 버전을 임의로 작성하기위 경우 아래와 같이 에러 메시지가 발생한다.에러 메시지 확인방법kubectl describe pods {{pod name}}pod 가 생성되면서 발생한 기록이 남아있다.이미지가 실행되면서 생기는 로그 확인하기kubectl logs {{pod name}}pod 내부에 접속하여 확인하기kubectl exec -it {{pod name}} -- bashkubectl exec -it {{pod name}} -- sh 컨테이너의 종류에 따라 bash가 설치되어있지 않는 경우가 있음이 때, sh가 설치되어있을 확률이 높으므로 sh 를 한번 사용해보는 것이 좋음.
백엔드 (Spring Boot) 서버를 3개 띄워보기
·
쿠버네티스/cka
서버를 3개 띄우는 이유실제 서비스를 운영하다보면 트래픽 증가로 서버가 버벅이는 현상이 발생함.일반적으로 서버를 수평적 확장 (서버의 개수를 늘림)을 통해 해결한다.기존 Spring sever 세팅 내용 가져오기spring-pod.yaml 설정 변경하기pod1 설정 > "---" > pod2 설정 > "---" > pod3 설정~metadata : name : spring-pod-1~---~metadata : name : spring-pod-2~---~metadata : name : spring-pod-3~  단,  metadata 이름이 겹치지 않아야 한다.pod 를 생성하기※ 이러한 역할을 해주는 디플로이면트(Deployment) 기능이 있다.
Next.js 서버 Pod로 띄우기
·
쿠버네티스/cka
Next.js 애플리케이션 개발을 위한 설정 구성을 위해 사용됨create-next-app 설치하기포커싱된 경로의 my-app 에 생성된다.Next.js 프로젝트가 잘 작동하는지 확인하기npm run dev 실행하기localhost:3000 입력하기이미지 생성하기Dockerfile 파일 생성하기 FROM node:20-alpineWORKDIR /appRUN npm installRUN npm run buildEXPOSE 3000ENTRYPOINT [ "npm", "run", "start"]Dockerignore 파일 생성하기node_modules이미지 빌드하기docker build -t next-server .asdf매니페스트 파일 생성apiVersion: v1kind: Podmetadata: name:..
프론트엔드(HTML, CSS, Nginx) 서버를 Pod로 띄워보기
·
쿠버네티스/cka
프론트엔드 서버를 Pod로 띄워보기html 이 있는 파일 경로에 Dockerfile 생성FROM nginxCOPY ./ /usr/share/nginx/html이미지 빌드하기my-web-server 로 빌드하기빌드 여부 확인하기매니페스트 파일 생성 후 pod 생성하기매니페스트 파일 생성apiVersion: v1kind: Podmetadata: name: web-server-podspec: containers: - name : seb-server-container image : my-web-server:latest imagePullPolicy : IfNotPresent ports: - containerPort : 80Pod 생성하기포트포워딩 후 접속하기Pod 삭제하기