코딩과로그
[기록용] 쿠버네틱스 config 파일(Deployment, Service) 본문
Deployment 객체
관련 문서
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#deploymentspec-v1-apps
Config 파일
# api version
apiVersion: apps/v1
# 객체의 종류
kind: Deployment
# 메타데이터
metadata:
name: second-app-deployment
# pods에 대한 내용
spec:
replicas: 1
selector:
matchLabels:
app: second-app
tier: backend
template:
metadata:
labels:
app: second-app
tier: backend
spec:
containers:
- name: second-node
image: sororiri/simple-node-app:2
# - name: ...
# image: ...
실행 방법
# deployment.yaml 파일 적용
$ kbctl apply -f deployment.yaml
deployment.apps/second-app-deployment created
# 포드가 만들어지는 중
$ kbctl get pods
NAME READY STATUS RESTARTS AGE
second-app-deployment-5bfdfcf985-df5kt 0/1 ContainerCreating 0 2s
# 포드 실행 완료
$ kbctl get pods
NAME READY STATUS RESTARTS AGE
second-app-deployment-5bfdfcf985-df5kt 1/1 Running 0 5s
Service 객체
관련 문서
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#service-v1-core
Config 파일
# core/v1 이지만 core는 생략이 가능함
apiVersion: v1
kind: Service
metadata:
name: backend
spec:
selector:
app: second-app
ports:
- protocol: 'TCP'
port: 80
targetPort: 8080
# - protocol: 'TCP'
# port: 443
# targetPort: 443
type: LoadBalancer
실행 방법
# service 객체 배포
$ kbctl apply -f service.yaml
service/backend created
# 서비스 객체 생성 확인
$ kbctl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
backend LoadBalancer 10.96.58.49 <pending> 80:30266/TCP 7s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h42m
# 미니큐브에서 backend 서비스 실행
$ minikube service backend
|-----------|---------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|---------|-------------|---------------------------|
| default | backend | 80 | http://192.168.49.2:30266 |
|-----------|---------|-------------|---------------------------|
🎉 Opening service default/backend in default browser...
Opening in existing browser session.
Config 파일로 생성한 객체를 지우는 방법
#
$ kubectl delete -f deployment.yaml,service.yaml
OR
$ kubectl delete -f deployment.yaml -f service.yaml
yaml Config파일을 합치는 방법
# service.yaml
...
# --- 로 분리하는 게 가능하다. yaml 형식의 특징이라고 한다.
---
# deployment.yaml
...