티스토리 뷰
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을 참고하여 원하는 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
- Linux
- github
- Route53 비용 정책
- Ansible
- Google Cloud DNS
- RECA
- 에티버스러닝
- Local Zones
- EKS
- Vmware
- IAM
- AWS
- aws cli
- Route53
- vsphere
- k8s
- Windows Server
- kubectl
- Docker
- Azure DNS
- VM Tools
- VPC
- IAC
- Window Server Manager
- Git
- redhat
- 클라우드 DNS 서비스
- ycampus
- rocky9
- kubernetes
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |