1. Deployment
Deployment는 애플리케이션의 배포와 관리를 위한 Kubernetes 리소스. 특정 수의 파드를 실행하고, 파드의 상태를 관리합.
apiVersion: apps/v1
kind: Deployment
metadata:
name: mailserver-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mailserver
template:
metadata:
labels:
app: mailserver
spec:
containers:
- name: mailserver
image: your-dockerhub-id/mymailserver:latest
ports:
- containerPort: 25
- containerPort: 587
- containerPort: 143
2. Service
Service는 Kubernetes 클러스터 내의 파드에 대한 네트워크 접근을 제공. 서비스는 로드 밸런싱, 서비스 발견 등을 처리.
apiVersion: v1
kind: Service
metadata:
name: mailserver-service
spec:
selector:
app: mailserver
ports:
- protocol: TCP
port: 25
targetPort: 25
- protocol: TCP
port: 587
targetPort: 587
- protocol: TCP
port: 143
targetPort: 143
type: LoadBalancer
3. Deployment와 Service의 역할
- Deployment: mailserver라는 애플리케이션을 위한 컨테이너를 실행하는 파드를 관리. 지정된 수의 복제본이 항상 실행되도록 보장하며, 업데이트 및 롤백 기능을 제공.
- Service: mailserver 파드에 대한 접근을 외부에서 가능하게 해줌. LoadBalancer 타입은 클라우드 서비스에서 자동으로 외부 IP 주소를 할당하여 인터넷에서 접근할 수 있게 만듦.
4. 배포
이 YAML 파일을 사용하려면, 클러스터에 적용해야 함
kubectl apply -f your-yaml-file.yaml
your-yaml-file.yaml은 위에서 작성한 YAML 파일의 이름임.
5. 확인
Deployment 상태 확인
kubectl get deployments
Service 상태 확인
kubectl get services
https://dev-emma-dev.tistory.com/231
[ Docker ] 이미지 만들기
Docker 이미지 만들기는 크게 Dockerfile 작성해 해당 이미지 빌드 후 Docker Hub에 푸시의 과정으로 나눌 수 있음.mailserver이미지 만드는 예시로 ㄱㄱ 1. /root경로에 Dockerfile 생성# 베이스 이미지 지정
dev-emma-dev.tistory.com
https://dev-emma-dev.tistory.com/232
[ Kubernetes ] MetalLB와 Ingress를 사용해 외부에서 접근 가능한 인프라 구축
https://dev-emma-dev.tistory.com/231이전 게시물에 도커 이미지를 만들어 허브에까지 올렸고, 이것은 MetalLB와 Ingress를 사용해 외부에서 접근 가능한 인프라 구축하기 위함이었다. 일련의 과정의 설명 +용
dev-emma-dev.tistory.com
위 글들을 순서대로 따라왔다면 이번 포스팅까지
Kubernetes 클러스터에 메일 서버를 설치하고 외부에서 사용할 수 있도록 MetalLB와 Ingress를 설정한 뒤, 성능 모니터링하기!!!
끝 !
'Chapter01 > Kubernetes' 카테고리의 다른 글
[ Kubernetes ] MetalLB와 Ingress를 사용해 외부에서 접근 가능한 인프라 구축 (0) | 2024.09.30 |
---|---|
[ Kubernetes ] .yaml로 Nginx Pod을 K8S cluster에 배포하기 (0) | 2024.09.03 |
[ Kubernetes ] 설치하기 (0) | 2024.08.26 |