Kubernetes
DB Pod 생성하기
📌 목표 Kubernetes Cluster에 DB Pod를 띄워보자 ! MySQL을 사용하는.. SpringBoot의 백엔드와 연결하기 위해.. 먼저 준비물 ! Deployment Secret Persistent Volume (PV) Persistent Volume Claim (PVC) 위 것들이 왜 필요한지는 직접 매니페스트 파일을 작성하면서 알아보자 ▪︎ DB Deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: db-mysql labels: app: db-mysql spec: replicas: 1 selector: matchLabels: app: db-mysql template: metadata: labels: app: db-my..
[NKS] Ingress 생성
⚠️ NKS(Naver Kubernetes Service) 환경에서 진행하였습니다. ⚠️ ▪︎ Ingress Service vs. Ingress Service는 트래픽을 Pod에 여러 타입으로 전달 (L4) ClusterIP, NodePort, LoadBalancer Ingress는 외부의 HTTP/HTTPS 트래픽 요청을 규칙에 따라 Service에 전달 (L7) Kubernetes에서 Ingress 생성 시 ALB Ingress Controller을 통해 LoadBalancer 인스턴스 생성 후 연동 Ingress Rule에서 설정한 Service의 NodePort를 포트 값으로 Target 그룹을 생성하고 LoadBalancer 인스턴스에 등록한다. ▪︎ ALB Ingress Controller 현..
[NKS] NodePort / LoadBalancer 서비스 생성
⚠️ NKS(Naver Kubernetes Service) 환경에서 진행하였습니다. ⚠️ ▪︎ NodePort 타입으로 서비스 생성 및 접속 NodePort 타입으로 서비스를 생성해보자 ! apiVersion: v1 kind: Service metadata: name: cn-app-svc-n spec: selector: app: cn-app ports: - port: 8080 targetPort: 8080 type: NodePort 서비스 생성 확인 후 할당된 NodePort(31374) 확인 ! 노드의 IP 확인 음.. Node IP + NodePort로 접속을 시도했는데.. 과묵하구먼.. 🚨 트러블 슈팅 1. 포트 지정 문제 ? 처음에는 ‘파드에 포트를 잘못 지정해주고 타겟 포트랑 일치가 안돼서 그런..
[NKS] Deployment 생성
⚠️ NKS(Naver Kubernetes Service) 환경에서 진행하였습니다. ⚠️ ▪︎ Deployment 생성 나에게 할당된 네임스페이스가 잘 있는지 확인한다. 네임스페이스에 deployment 생성 ! apiVersion: apps/v1 kind: Deployment metadata: name: cn-app-dpy labels: app: cn-app spec: replicas: 3 selector: matchLabels: app: cn-app template: metadata: labels: app: cn-app spec: containers: - name: cn-app image: uh2959/cn-action resources: limits: memory: "512Mi" cpu: "500m..
[Minikube] LoadBalancer Type 서비스 생성
⚠️ Local Minikube 환경에서 진행하였습니다. ⚠️ ▪︎ LoadBalancer cn-app-svc-l.yaml apiVersion: v1 kind: Service metadata: name: cn-app-svc-l spec: selector: name: cn-app ports: - port: 9002 targetPort: 8080 type: LoadBalancer 1️⃣ 매니페스트 파일로 서비스 배포하는 방법 kubectl apply -f cn-app-svc-l.yaml 2️⃣ 명령어로 서비스 배포하는 방법 kubectl expose deployment cn-app-dpy --type=LoadBalancer --name cn-app-svc-l 서비스 배포 후 확인해 보니 EXTERNAL-IP..
[Minikube] NodePort Type 서비스 생성
⚠️ Local Minikube 환경에서 진행하였습니다. ⚠️ ▪︎ NodePort apiVersion: v1 kind: Service metadata: name: cn-app-svc-n spec: selector: app: cn-app ports: - port: 9001 targetPort: 8080 # 기본적으로 그리고 편의상 `targetPort` 는 `port` 필드와 동일한 값으로 설정 type: NodePort 1️⃣ 매니페스트 파일로 서비스 배포하는 방법 kubectl apply -f cn-app-svc-n.yaml 2️⃣ 명령어로 서비스 배포하는 방법 kubectl expose deployment cn-app-dpy --type=NodePort --name cn-app-svc-n NodeP..
[Minikube] ClusterIP Type 서비스 생성
⚠️ Local Minikube 환경에서 진행하였습니다. ⚠️ ▪︎ ClusterIP apiVersion: v1 kind: Service metadata: name: cn-app-svc-c spec: selector: app: cn-app ports: - port: 9000 targetPort: 80 1️⃣ 매니페스트 파일로 서비스 배포하는 방법 kubectl apply -f cn-app-svc-c.yaml 2️⃣ 명령어로 서비스 배포하는 방법 kubectl expose deployment cn-app-dpy --type=ClusterIP --name cn-app-svc-c 대신 파드 생성 선언 시 or 명령어 뒤에 포트 설정(--port=**)을 해줘야 함 ClusterIP 타입으로 서비스를 배포한다...
[Minikube] ReplicaSet 생성
⚠️ Local Minikube 환경에서 진행하였습니다. ⚠️ ▪︎ Replicaset으로 생성 apiVersion: apps/v1 kind: ReplicaSet metadata: name: cn-app-rs spec: replicas: 3 selector: matchLabels: app: cn-app template: metadata: labels: app: cn-app spec: containers: - name: cn-app image: uh2959/cn-action resources: limits: memory: "256Mi" cpu: "500m" ReplicaSet 생성 시에는 resources의 request 선언 에러가 뜸.. 정상적으로 생성 및 확인 인줄 알았으나.. 또 OOMKilled...
[Minikube] Pod 생성
⚠️ Local Minikube 환경에서 진행하였습니다. ⚠️ ▪︎ Pod 생성 apiVersion: v1 kind: Pod metadata: name: cn-app-pod labels: name: cn-app-pod spec: containers: - name: cn-app image: uh2959/cn-action resources: limits: memory: "128Mi" cpu: "500m" YAML 매니페스트 파일로 파드 생성 근데 갑자기 Error 떴다가.. Running이 되었다가.. 오락가락.. log를 보려고 했는데 갑자기 자바 버전이 안 맞는다고 에러.. 이젠 또 파드 상태가 CrashLoopBackOff ? 💡 CrashLoopBackOff : 파드가 시작과 비정상 종료를 연속해서 ..
YAML 문법 알아보기
▪ YAML이란? 💡 YAML ⇒ YAML ain’t markup language / yet another markup language 데이터 표현 양식의 한 종류 사람이 읽을 수 있고 이해하기 쉬운 프로그래밍 언어 JSON의 상위 집합으로 YAML에서 JSON 사용 가능 .yml / .yaml 확장자 사용 Map(key - value), List 구조 들여 쓰기로 계층 구조 표현 ▪ 들여쓰기 (Indent) 2칸(추천), 4칸 들여 쓰기를 지원한다. 2칸 들여쓰기 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx 4칸 들여쓰기 apiVersion: apps/v1 kind: Deployment m..