
용어정리
Namespace
- 오브젝트들을 논리적으로 구분하기 위한 공간
- 이를 통해 프로젝트나 팀 단위로 자원을 나눌 수 있따.
apiVersion: v1
kind: Namespace
metadata:
name: anotherclass-123
labels:
part-of: k8s-anotherclass
managed-by: dashboard
Deployment
- Pod를 생성하고 관리하는 역할.
- 특히 롤링 업데이트 방식으로 새로운 버전의 앱을 배포 할 수 있다.
- 필드 설명:
- replicas : 원하는 파드 수(생설할 파드 수)
- strategy: 롤링 업데이트 방식 등.
- selector: 파드를 선택하기 위한 label 셀렉터
- template: 실제 생성될 파드의 템플릿(spec, metadate 등)
- containers: 컨테이너 정의( image, probe 등 포함)
- volumes : 파드에 연결할 볼륨 정보
- nodeSelector: 특정 노드에서만 실행되도록 제약
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: anotherclass-123
name: api-tester-1231
labels:
part-of: k8s-anotherclass
component: backend-server
name: api-tester
instance: api-tester-1231
version: 1.0.0
managed-by: dashboard
spec:
selector:
matchLabels:
part-of: k8s-anotherclass
component: backend-server
name: api-tester
instance: api-tester-1231
replicas: 2
strategy:
type: RollingUpdate
template:
metadata:
labels:
part-of: k8s-anotherclass
component: backend-server
name: api-tester
instance: api-tester-1231
version: 1.0.0
spec:
nodeSelector:
kubernetes.io/hostname: k8s-master
containers:
- name: api-tester-1231
image: 1pro/api-tester:v1.0.0
ports:
- name: http
containerPort: 8080
envFrom:
- configMapRef:
name: api-tester-1231-properties
startupProbe:
httpGet:
path: "/startup"
port: 8080
periodSeconds: 5
failureThreshold: 36
readinessProbe:
httpGet:
path: "/readiness"
port: 8080
periodSeconds: 10
failureThreshold: 3
livenessProbe:
httpGet:
path: "/liveness"
port: 8080
periodSeconds: 10
failureThreshold: 3
resources:
requests:
memory: "100Mi"
cpu: "100m"
limits:
memory: "200Mi"
cpu: "200m"
volumeMounts:
- name: files
mountPath: /usr/src/myapp/files/dev
- name: secret-datasource
mountPath: /usr/src/myapp/datasource
volumes:
- name: files
persistentVolumeClaim:
claimName: api-tester-1231-files
- name: secret-datasource
secret:
secretName: api-tester-1231-postgresql
Service
- 파드를 네트워크 상에서 접근 가능하게 해주는 추상 오브젝트
- Pod에 트래픽을 전달하는 역할
- 보통 Selector를 통해 연결될 Pod를 지정하며, NodePort 설정을 통해 외부에서 접근가능 하도록 할 수있다.