728x90
반응형
배포 환경 구분 짓기
DevOps(데브옵스)의 핵심을 나타내는 문구가 “개발과 운영의 벽을 허물어 더 빨리 더 자주 배포하자” 라는 것에 동의한다. 이 개념을 바탕으로 개발 분야에서 DevSecOps, GitOps, AIOps 등의 개념으로 확장해 나아가고 있다. 개발과 운영을 빠르게 하는 부분 개발자가 신경써야하는 부분이 개발 환경이다.
실제 개발환경은 여러 환경들로 구분되어진게 일반적이다. 배포도 각 환경에 맞게 셋팅해서 배포되어야 한다.
Staging 과 Production 환경 구분은 가장 기본적인 분리라고 볼 수 있는데, 분리된 환경으로 한번 배포를 구성해보자.
환경 구조로 구분 짓는 방법
my_kubernetes_project/
├── app/ # 애플리케이션 코드
│ ├── src/
│ └── Dockerfile
├── k8s/ # 쿠버네티스 설정
│ ├── staging/ # 개발 환경 설정
│ │ ├── deployment.yaml
│ │ ├── service.yaml
│ │ └── django-secret-stg.yaml
│ ├── prod/ # 프로덕션 환경 설정
│ │ ├── deployment.yaml
│ │ ├── service.yaml
│ │ └── django-secret-prod.yaml
│ └── common/ # 공통 설정
│ └── configmap.yaml
└── README.md
이름과 레이블로 구분 짓는 방법
모든 이름들을 구분짓게 되어 직관적으로 분리가 되었다는 것을 알 수 있다.
name: db-config-stg
name: db-config-prod
...
네임 스페이스로 구분 짓는 방법
k get ns
네임스페이스 생성
k create ns production
네임스페이스로 조회
k get po -n prod
k get svc -n prod
k get deploy -n prod
네임스페이스가 새로 생성되었기 때문에 NCP 에 접근할 때 사용되는 regcred 도 존재하지 않는다.
새로 생성해주자
k create secret docker-registry regcred \\
--docker-server=${NCP_REGISTRY} \\
--docker-username=${NCP_ACCESS_KEY} \\
-docker-password=${NCP_SECRET_KEY} \\
-docker-email=${EMAIL} \\
-n prod
폴더에 있는 모든 파일들을 네임스페이스에 넣어 실행하는 명령어
k create -f . -n prod
k get po -n prod
k get po --all-namespaces
#
kimminhyeok@Ivans-Mac k8s % k get po --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
...
...
prod lion-db 1/1 Running 0 7m13s
prod lion-deploy-app-6d86d57578-jvk58 1/1 Running 0 7m12s
prod lion-deploy-app-6d86d57578-lbwr4 1/1 Running 0 7m12s
prod lion-deploy-app-6d86d57578-w2tqz 1/1 Running 0 7m13s
stg lion-db 0/1 Pending 0 5m
stg lion-deploy-app-stg-79d465bb56-ddjkk 1/1 Running 0 5m
stg lion-deploy-app-stg-79d465bb56-q8d2n 1/1 Running 0 5m
stg lion-deploy-app-stg-79d465bb56-xbs9c 1/1 Running 0 5m
네임스페이스 스위칭
k set-config --current
k config set-context --current --namespace prod
네임스페이스를 삭제해서 모두 삭제하기
k delete ns prod
728x90
반응형
'Dev. > Kubernetes & Helm' 카테고리의 다른 글
Helm: 차트 작성 (0) | 2023.10.05 |
---|---|
Helm: 쿠버네티스를 관리하는 툴 (0) | 2023.10.04 |
Kubernetes: Deployment, Rolling update (2) | 2023.10.01 |
Kubernetes: PersistentVolumeClaim (0) | 2023.09.27 |
Kubernetes: ReplicaSet 적용하기 (0) | 2023.09.26 |
댓글