728x90
반응형
Service
- Service는 파드들의 그룹에 접근하기 위한 안정적인 엔드포인트를 정의한 것
- 어플리케이션을 클러스터 내의 다른 파드들에 노출시거나 외부 클라이언트에 노출시킬 수 있다.
- Load Balancing과 자동 스케일링 기능을 제공하여, 어플리케이션이 매우 사용 가능한 상태로 남게 해 준다
apiVersion: v1
kind: Pod
metadata:
name: webapp-with-db
labels:
app: my-webapp
spec:
containers:
- name: webapp
image: nginx:latest
ports:
- containerPort: 80
- name: database
image: mongo:latest
---
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
selector: // 서비스 내의 파드를 선택한다
app: my-webapp // 파드가 해당 label을 metadata로 가진 이상, service는 이 파드를 타겟한다.
ports:
- protocol: TCP
port: 80
targetPort: 80. // 파드의 포트.
Ingress
- 클러스터 내에서 파드끼리 내부 통신을 가능하게 함
- 즉, 서비스를 클러스터 외부 클라이언트에 노출시킴
- 어플리케이션의 외부 엔트리 포인로서 동작
- 들어오는 트래픽에 대해 라우팅 규칙과 로드 밸런싱을 설정할 수 있게 함
- Ingress 사용을 위해서는 클러스터 내에 Ingress Controller가 배포되어야 함
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: webapp-ingress
spec:
rules:
- host: mywebapp.example.com // 클러스터 외부에서 접근할 수 있는 도메인
http:
paths: // 라우팅 규칙을 정의하는 부분
- path: /
pathType: Prefix
backend: // 트래픽이 포워딩 되어야 하는 타겟 서비스 정의
service:
name: webapp-service
port:
number: 80
728x90
반응형
'데브옵스 devOps > Kubernetes' 카테고리의 다른 글
[k8s] 쿠버네티스에서 Secrets란? (1) | 2024.11.19 |
---|---|
[k8s] 쿠버네티스에서 Config Map이란? (0) | 2024.11.18 |
[k8s] 메인 컴포넌트들 (1) | 2024.11.14 |
[k8s] 쿠버네티스 아키텍처 (0) | 2024.11.13 |
[k8s] 쿠버네티스란? (0) | 2024.11.12 |