DevOps/Kubernetes

쿠버네티스 객체의 종류 : deployment, service, configmap, secret, replicaset

Ofglen 2023. 7. 14. 11:34
  1. Deployment (배포): 여러 개의 Pod를 생성하고 관리하는 객체, 애플리케이션의 스케일링과 롤링 업데이트들을 관리한다.

 

2. Service (서비스): 네트워크 경로를 Pod 집합에 노출시키는 추상화 객체로, 여러 Pod에 대한 로드 밸런싱과 서비스 디스커버리를 제공한다.

yamlCopy code
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80 # 포트 설정
      targetPort: 80

 

3. ConfigMap (구성 맵): 애플리케이션에 필요한 구성 데이터를 저장하는 객체로, 환경 변수, 설정 파일 등을 관리한다. YAML 파일에 키-값 쌍으로 구성 데이터를 정의한다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-configmap
data:
  database_url: "localhost:5432"
  api_key: "my-api-key"

 

 

 

4. Secret (비밀 정보): 애플리케이션에서 사용되는 민감한 정보(예: 비밀번호, 토큰)를 안전하게 저장하는 객체로, 데이터를 Base64로 인코딩하여 저장한다. 

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  username: dXNlcm5hbWUx
  password: cGFzc3dvcmQx

 

 

 

 

5. ReplicaSet: Pod의 복제본 수를 유지하고 관리하는 객체

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: my-replicaset
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest