본문 바로가기
INFRA/DevOps

[K8s] kubernetes namespace, yaml template

by BTC_비웃는사나이 2022. 8. 25.

Namespace란?

  • k8s API중 하나
  • cluster 하나를 여러 개의 논리적인 단위로 나눠서 사용
  • k8s cluster 하나를 여러 팀이나 사용자가 공유
  • 용도에 따라 실행하야 하는 app을 구분할 때 사용
  • -namespace , n 옵션을 사용해서 원하는 namespace에 pod 생성 가능

<출처 : kubernetes - Authentication and Authorization - DINO ROMANTIST >

 

Namespace 생성

  • CLI
    • blue라는 이름의 namespace 생성 및 확인
kubectl create namespace blue
  • yaml
    • green이라는 이름의 namespace 생성
kubectl create namespace green --dry-run -o yaml > green-ns.yaml
vi green-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: green
kubectl create -f green-ns.yaml
  • pod yaml를 수정하여 green namespace에 생성
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: webserver
  name: webserver
  namespace: green    //추가
spec:
  containers:
  - image: nginx
    name: webserver
    ports:
    - containerPort: 80
  • 관리
kubectl get namespace
kubectl delete namespace

Namespace switch

  • 기본으로 사용하는 namespace를 default가 아닌 다른 이름의 namespace로 switch
  • namespace를 포함한 context 등록
kubectl config set-context NAME --cluster=kubernetes --user=kubernetes-admin --namespace=blue
kubectl config view
kubectl config current-context
  • 등록된 namespace로 context 변경 및 확인
kubectl config use-context NAME
kubectl config current-context

Namespace delete

  • namespace 삭제 시 지정된 API 전부 삭제
kubectl delete namespace NAME

 

Yaml template란?

  • 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식
  • 기본문법
    • 구조화된 데이터를 표현하기 위한 데이터 포맷
    • Python처럼 들여쓰기로 데이터 계층을 표기
    • 들여쓰기를 할 때에는 Tab이 아닌 Space bar를 사용
    • 가독성이 좋아 설정 파일에 적합한 형식
    • Scalar 문법 : ':'을 기준으로 Key:value를 설정
    • 배열 문법 : '-'문자로 여러 개를 나열
    • Topdown 방식 아님
    • 공식사이트 : The Official YAML Web Site

API verson

  • alpha → beta → stable
  • k8s object 정의 시 apiVersion이 필요
  • k8s가 update하는 API가 있으면 새로운 API가 생성됨
  • API Object의 종류 및 버전
    • Deployment : apps/v1
    • Pod : v1
    • ReplicaSet : apps/v1
    • ReplicationController : v1
    • Service : v1
    • PersistentVolume : v1
  • kubectl explain를 통해서 apiVersion 확인 가능

 

참고 :

[따배쿠] 4-2. 쿠버네티스 아키텍처 - namespace

[따배쿠] 4-3. 쿠버네티스 아키텍처 - yaml템플릿과 API

'INFRA > DevOps' 카테고리의 다른 글

[k8s] LivenessProbe를 이용해서 Self-healing Pod 생성  (0) 2022.09.13
[K8s] Container 정리와 Single / Multi Container Pod 생성  (0) 2022.08.29
Secret  (0) 2022.08.22
ConfigMap  (0) 2022.08.21
Volume(local)  (0) 2022.08.20

댓글