service - deptno/deptno.github.io GitHub Wiki
service
kubernetes service label selector λ₯Ό ν΅ν΄μ load balancing μ νλ©° endpoint κ° μλμΌλ‘ λΆλλ€ endpoint κ° μμ±λμ§ μμΌλ©° μ΄λ₯Ό μν΄μλ label selector λ₯Ό μ€ν λͺ μνμ§ μμΌλ©΄ λλ€
headless service
headless service λ sepc.clusterIP: None
μ ν΅ν΄μ λ§λ€μ΄μ§λ©° μ΄ κ²½μ°μ kube-proxy μμ μ²λ¦¬νμ§ μκ²λλ€.
λλ©μΈ λ€μμ ν΅ν΄ μ κ·Όμ΄ κ°λ₯νλ€
endpoint κ° μλ service
- https://interp.blog/k8s-headless-service-why/
- https://dev.to/eddiehale3/building-a-headless-service-in-kubernetes-3bk8
- nslookup μ μ¬μ©νλ©΄ μΌλ°μ μΈ service κ²½μ° ν΄λΉ ip λ₯Ό λ ΈμΆνλ€
- headless service μ κ²½μ°μλ endpoint λͺ©λ‘ μ 체λ₯Ό λλ€ν μμλ‘ μ 곡νλ€(λ‘λλ°Έλ°μ±μ΄ μμ)
- curl λ±μ μ΄ μ€ μ²«λ²μ§Έ endpoint μ ν΅μ νλ€
- μλ§λ νλμ ν΄λΌμ΄μΈνΈμμλ νλμ pod μ μ°κ²°μ΄ μ΄λ£¨μ΄μ ΈμΌνλ€κ³ μλ―Έκ° μλ€κ³ μκ°νλ€(stateful set, sticky session)
- μ€μ λ‘ κ·Έλ°μ§λ νμΈμ΄ νμ, κ·ΈλΌ envoy κ°μκ² μμμ΄;
endpoint κ° μλ service
- selector λ₯Ό μ§μ νμ§ μμΌλ©΄ endpoint κ° μμ±λμ§ μλλ€
- service λͺ κ³Ό κ°μ endpoint λ₯Ό μμ±νλ€ headless service λ μ΄λ―Έ endpoint κ° μμ΄μ μ κ·Όμ΄ κ°λ₯ν ν΄λ¬μ€ν° μΈ μλΉμ€λ₯Ό λΆμΌ λ μ¬μ©κ°λ₯νλ€.
곡μ λ¬Έμμ μ€λͺ μ΄ μ λμ΄ μμΌλ μ΄λ₯Ό μ°Έμ‘°νλ€.
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9376
---
apiVersion: v1
kind: Endpoints
metadata:
# μ¬κΈ°μμ μ΄λ¦μ μλΉμ€μ μ΄λ¦κ³Ό μΌμΉν΄μΌ νλ€.
name: my-service
subsets:
- addresses:
- ip: 192.0.2.42
ports:
- port: 9376
service μλ ping μ ν μ μλ€. curl, wget λ±μΌλ‘ μ κ·Όμ νμΈνλ€