kubernetes에서 Pod는 동적으로 생성되고 사라지므로, 특정 Pod의 IP 주소는 고정되지 않는다. 따라서 안정적인 네트워크 통신을 위해 Service가 필요하다.
Ingress는 kubernetes에서 HTTP(S) 트래픽을 관리하는 리소스로, 로드밸런서보다 유연한 라우팅 기능을 제공한다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
기본적으로 kubernetes에는 Ingress 기능만 있고, 실제 트래픽을 처리하려면 Ingress Controller(Nginx, Traefik 등)를 설치해야 한다.
Deployment는 Pod를 생성, 업데이트, 롤백, 스케일링할 수 있도록 관리하는 리소스이다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0
ports:
- containerPort: 80
올ㅋ