티스토리 뷰
Kubernetes에서 deploy로 만든 replicas set 개수를 조정하는 방식은 크게 세 가지가 있습니다.
우선 nginx 이미지를 가지고 web이라는 deploy를 하나 생성하겠습니다.
1. scale 명령어 이용
kubectl scale deployment [NAME] --replicas=[NUMBER]
--replicas
옵션을 통해 원하는 만큼 replicas set 수를 늘리거나 줄일 수 있습니다.
줄어들 때는 최근에 만든 것부터 삭제됩니다.
2. yaml 파일 수정
kubectl get deployments.apps [NAME] -o yaml
kubectl get deployments.apps [NAME] -o yaml > deploy.yaml
# 생성한 해당 deploy에 대한 yaml 파일을 deploy.yaml으로 저장
vi deploy.yaml
# vi 편집기로 yaml 파일 수정
kubectl apply -f deploy.yaml
# 수정한 yaml 파일 적용
yaml 파일의 replicas 값을 수정한 대로 replicas set 개수가 5개에서 3개로 줄어든 것을 확인할 수 있습니다.
3. edit 수정
kubectl edit deployments.apps [NAME]
# 바로 해당 deploy의 yaml 파일 오픈 -> 수정 후 저장하는 순간 바로 상태 변화
edit 명령어를 사용하면 바로 yaml 파일이 열리며, 파일 변경 후 저장하고 나가게 되면 바로 그 내용이 적용됩니다.
(edit으로 파일을 열어 replicas: 1 을 저장하자 바로 다른 pod가 terminated 되는 것을 확인 가능)
+ Yaml 파일 사용하기
생성한 deployment의 yaml 파일 내용은 다음과 같습니다.
사실 기존 pod로 yaml 파일을 뜨면 불필요한 정보까지 모두 포함하게 됩니다.
https://kubernetes.io/docs/home/
Kubernetes Documentation
Kubernetes is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation.
kubernetes.io
필요 없는 부분은 걷어내도 되고, kubernetes의 documentation을 참고하여 원하는 yaml 파일 샘플을 가져올 수도 있습니다.
생성한 deployment에 대한 주요 yaml 파일 내용은 아래와 같습니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web # deploy 이름
labels:
app: nginx
spec:
replicas: 3 # replicas set 개수
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx # container 이름
image: nginx:1.14 # 가져올 이미지:버전
ports:
- containerPort: 80 # 사용 포트
이렇게 yaml 파일을 열어 pod와 container의 이름, 가져올 이미지, replicas set 개수, 포트 등을 변경할 수 있습니다.
뿐만 아니라 yaml 파일을 이용해 한 pod에 여러 컨테이너를 생성할 수도 있습니다.
+ multi pod 만들기
pod 이름 : multipod
container 이름 : nginx-container, centos-container
위의 yaml 파일은 nginx와 centos:7 이미지를 가지고 multipod라는 한 pod 내에 컨테이너를 2개 생성합니다.
Pod 안에 컨테이너가 여러 개 = multi container pod
Pod 안에 컨테이너 1개 = single container pod
(*** 현업에서는 1 pod - 1 container 가 대부분)
이 외에도 kind와 label 등의 필드들을 이용해 다양한 작업을 할 수 있습니다. 다음 포스팅에서는 필드를 응용한 kubernetes의 다양한 기능에 대해 살펴보겠습니다.
'IaC > Kubernetes' 카테고리의 다른 글
[Kubernetes] livenessProbe (0) | 2023.04.14 |
---|---|
[Kubernetes] Init Container, Static Container (0) | 2023.04.07 |
[Kubernetes] Cordon & Drain (0) | 2023.04.07 |
[Kubernetes] kubectl 명령어 정리 (0) | 2023.04.05 |
[Kubernetes] Kubernetes System: 컨테이너 관리의 자동화 (0) | 2023.04.05 |
- Total
- Today
- Yesterday
- k8s
- Azure DNS
- IAM
- vsphere
- VPC
- AWS
- Ansible
- 에티버스러닝
- Docker
- Google Cloud DNS
- Window Server Manager
- VM Tools
- Windows Server
- kubectl
- Vmware
- Local Zones
- Git
- redhat
- Linux
- EKS
- rocky9
- kubernetes
- ycampus
- github
- RECA
- Route53
- aws cli
- IAC
- 클라우드 DNS 서비스
- Route53 비용 정책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |