kubernetes_service
Last updated
Last updated
μλΉμ€
Pod μ§ν©κ³Ό κ°μ μ ν리μΌμ΄μ λ€μ μ κ·Όνλ λ°©λ²μ κΈ°μ νλ API κ°μ²΄
μΏ λ²λ€ν°μ€μ μλΉμ€λ λμΌν μλΉμ€λ₯Ό μ 곡νλ νλ κ·Έλ£Ήμ μ§μμ μΈ λ¨μΌ μ μ μ λ§λ€λ €κ³ ν λ μμ±νλ 리μμ€λ‘ κ° μλΉμ€λ μλΉμ€κ° μ‘΄μ¬νλ λμ μ λ λ°λμ§ μλ IP μ£Όμμ ν¬νΈκ° μμ΅λλ€.
ν΄λΌμ΄μΈνΈλ ν΄λΉ IPμ ν¬νΈλ‘ μ μν λ€μ ν΄λΉ μλΉμ€λ₯Ό μ§μνλ νλ μ€ νλλ‘ μ°κ²°λ©λλ€.
Serviceμ Cluster IPλ₯Ό ν΅ν΄ μ λμ μΌλ‘ μμ±λκ³ μ¬λΌμ§λ Podμ μ κ·ΌνκΈ° μν λ°©λ²μΌλ‘ μ¬μ©ν©λλ€.
ClusterIP , NodePort , LoadBalancer νμ μ 곡νλ©° κΈ°λ³Έ μ΅μ μ ν΄λ¬μ€ν° λ΄λΆμμλ§ μ¬μ©ν μ μλ Cluster IPμ λλ€.
μ¬λ¬ Podλ₯Ό λ¬Άμ΄ Healthyν Podλ‘ Traffic λΌμ°ν νλ λ‘λ λ°Έλ°μ± κΈ°λ₯ μ 곡ν©λλ€.
ν΄λ¬μ€ν°μ Service CIDR μ€μμ μ§μ λ IPλ‘ μμ± κ°λ₯ν©λλ€.
μλΉμ€ μμ±
kubectl exposeλ‘ μλΉμ€ μμ±
expose λͺ λ Ήμ΄λ λ ν리μΌμ΄μ 컨νΈλ‘€λ¬μμ μ¬μ©λ κ²κ³Ό λμΌν νλ μ λ ν°λ₯Ό μ¬μ©ν΄ μλΉμ€ 리μμ€λ₯Ό μμ±νκ³ λͺ¨λ νλλ₯Ό λ¨μΌ IP μ£Όμμ ν¬νΈλ‘ λ ΈμΆν©λλ€.
μ€ν μ€μΈ 컨ν μ΄λμ μ격μΌλ‘ λͺ λ Ήμ΄ μ€ν
kubectl exec λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ©΄ κΈ°μ‘΄ νλμ 컨ν μ΄λ λ΄μμ μ격μΌλ‘ μμμ λͺ λ Ήμ΄λ₯Ό μ€νν μ μμ΅λλ€. 컨ν μ΄λμ λ΄μ©, μν, νκ²½μ κ²μ¬ν λ μ μ©ν©λλ€.
kubectl exec {k get podsμ νλ} -- curl -s {http://10.111.249.153 - k get svcμ ν΄λ¬μ€ν° IP}
λͺ λ Ήμ΄μ λλΈ λμ(--)λ kubectl λͺ λ Ήμ€ μ΅μ μ λμ μλ―Ένλ©° λλΈ λμ λ€μ λͺ¨λ κ²μ νλ λ΄μμ μ€νλΌμΌ νλ λͺ λ Ήμ΄μ λλ€.
ν΄λ¬μ€ν° μΈλΆμ μλ μλΉμ€ μ°κ²°
μλΉμ€ μλν¬μΈνΈ
μλΉμ€λ νλμ μ§μ μ°κ²°(link)λμ§ μμ΅λλ€. λμ μλν¬μΈνΈ 리μμ€κ° κ·Έ μ¬μ΄μ μμ΅λλ€.
μλν¬μΈνΈ 리μμ€λ μλΉμ€λ‘ λ ΈμΆλλ νλμ IP μ£Όμμ ν¬νΈ λͺ©λ‘μ λλ€.
μΈλΆ μλΉμ€λ₯Ό μν λ³μΉ μμ±
ExternalName μλΉμ€ μμ±
μΈλΆ μλΉμ€μ λ³μΉμΌλ‘ μ¬μ©λλ μλΉμ€λ₯Ό λ§λ€λ €λ©΄ μ ν(type) νλλ₯Ό ExternalNameμΌλ‘ μ€μ ν΄ μλΉμ€ 리μμ€λ₯Ό λ§λ¬
μΈλΆ ν΄λΌμ΄μΈνΈμ μλΉμ€ λ ΈμΆ
μΈλΆμμ μλΉμ€λ₯Ό μ‘μΈμ€ν μ μλ λ°©λ²
λ Έλν¬νΈλ‘ μλΉμ€ μ ν μ€μ : λ Έλν¬νΈ μλΉμ€μ κ²½μ° κ° ν΄λ¬μ€ν° λ Έλλ λ Έλ μ체μμ ν¬νΈλ₯Ό κ²°κ³ ν΄λΉ ν¬νΈλ‘ μμ λ νΈλν½μ μλΉμ€λ‘ μ λ¬ν©λλ€. μ΄ μλΉμ€λ λ΄λΆ ν΄λ¬μ€ν° IPμ ν¬νΈλ‘ μ‘μΈμ€ν μ μμ λΏλ§ μλλΌ λͺ¨λ λ Έλμ μ μ© ν¬νΈλ‘λ μ‘μΈμ€ν μ μμ΅λλ€.
μλΉμ€ μ νμ λ Έλν¬νΈ μ νμ νμ₯μΈ λ‘λλ°Έλ°μλ‘ μ€μ : μΏ λ²λ€ν°μ€κ° μ€ν μ€μΈ ν΄λΌμ°λ μΈνλΌμμ νλ‘λΉμ λλ μ μ© λ‘λλ°Έλ°μλ‘ μλΉμ€μ μ‘μΈμ€ν μ μμ΅λλ€. λ‘λλ°Έλ°μλ νΈλν½μ λͺ¨λ λ Έλμ λ Έλν¬νΈλ‘ μ λ¬νλ©° ν΄λΌμ΄μΈνΈλ λ‘λλ°Έλ°μμ IPλ‘ μλΉμ€μ μ‘μΈμ€ν©λλ€.
λ¨μΌ IP μ£Όμλ‘ μ¬λ¬ μλΉμ€λ₯Ό λ ΈμΆνλ μΈκ·Έλ μ€ λ¦¬μμ€ λ§λ€κΈ° : HTTP λ 벨μμ μλνλ―λ‘ 4κ³μΈ΅ μλΉμ€λ³΄λ€ λ λ§μ κΈ°λ₯μ μ 곡ν μ μμ΅λλ€
λ Έλν¬νΈ μλΉμ€ μ¬μ©
λ Έλν¬νΈ μλΉμ€λ₯Ό λ§λ€λ©΄ μΏ λ²λ€ν°μ€λ λͺ¨λ λ Έλμ νΉμ ν¬νΈλ₯Ό ν λΉνκ³ (λͺ¨λ λ Έλμμ λμΌν ν¬νΈ λ²νΈκ° μ¬μ©λ¨) μλΉμ€λ₯Ό ꡬμ±νλ νλλ‘ λ€μ΄μ€λ μ°κ²°μ μ λ¬ν©λλ€.
μΌλ° μλΉμ€(μ€μ μ νμ ClusterIP)μ μ μ¬νμ§λ§ μλΉμ€μ λ΄λΆ ν΄λ¬μ€ν° IPλΏλ§ μλλΌ λͺ¨λ λ Έλμ IPμ ν λΉλ λ Έλν¬νΈλ‘ μλΉμ€μ μ‘μΈμ€ν μ μμ΅λλ€.
λ Έλν¬νΈ μλΉμ€ νμΈ
EXTERNAL-IPμ λΌκ³ νμλΌ μκ³ ν΄λ¬μ€ν° λ Έλμ IP μ£Όμλ‘ μλΉμ€μ μ‘μΈμ€ν μ μμμ λνλ
μΈλΆ λ‘λλ°Έλ°μλ‘ μλΉμ€ λ ΈμΆ
ν΄λΌμ°λ 곡κΈμμμ μ€νλλ μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν°λ μΌλ°μ μΌλ‘ ν΄λΌμ°λ μΈνλΌμμ λ‘λλ°Έλ°μλ₯Ό μλμΌλ‘ νλ‘λΉμ λνλ κΈ°λ₯μ μ 곡ν©λλ€.
λ‘λλ°Έλ°μλ 곡κ°μ μΌλ‘ μ‘μΈμ€ κ°λ₯ν κ³ μ ν IPμ£Όμλ₯Ό κ°μ§λ©° λͺ¨λ μ°κ²°μ μλΉμ€λ‘ μ λ¬ν©λλ€. λ‘λλ°Έλ°μμ IP μ£Όμλ‘ μλΉμ€μ μ‘μΈμ€ν μ μμ΅λλ€.
μΈκ·Έλ μ€ λ¦¬μμ€λ‘ μλΉμ€ μΈλΆ λ ΈμΆ
μΈκ·Έλ μ€κ° νμν μ΄μ
λ‘λλ°Έλ°μ μλΉμ€λ μμ μ κ³΅μ© IP μ£Όμλ₯Ό κ°μ§ λ‘λλ°Έλ°μκ° νμνμ§λ§, μΈκ·Έλ μ€λ ν IP μ£Όμλ‘ μμ κ°μ μλΉμ€μ μ κ·Όμ΄ κ°λ₯νλλ‘ μ§μν΄μ€λλ€.
ν΄λΌμ΄μΈνΈκ° HTTP μμ²μ μΈκ·Έλ μ€μ λ³΄λΌ λ, μμ²ν νΈμ€νΈμ κ²½λ‘μ λ°λΌ μμ²μ μ λ¬ν μλΉμ€κ° κ²°μ λ©λλ€.
μΈκ·Έλ μ€λ λ€νΈμν¬ μ€νμ μ ν리μΌμ΄μ κ³μΈ΅(HTTP)μμ μλνλ©° μλΉμ€κ° ν μ μλ μΏ ν€ κΈ°λ° μΈμ μ΄νΌλν° λ±κ³Ό κ°μ κΈ°λ₯μ μ 곡ν μ μμ΅λλ€.
μλΉμ€ λ¬Έμ ν΄κ²°
λ¨Όμ μΈλΆκ° μλ ν΄λ¬μ€ν° λ΄μμ μλΉμ€μ ν΄λ¬μ€ν° IPμ μ°κ²°λλμ§ νμΈν©λλ€.
μλΉμ€μ μ‘μΈμ€ν μ μλμ§ νμΈνλ €κ³ μλΉμ€ IPλ‘ νμ ν νμ μμ΅λλ€.(μλΉμ€μ ν΄λ¬μ€ν° IPλ κ°μ IPμ΄λ―λ‘ νλμ§ μμ΅λλ€.)
λ λλμ€ νλ‘λΈλ₯Ό μ μνλ€λ©΄ μ±κ³΅νλμ§ νμΈνλΌ. κ·Έλ μ§ μμΌλ©΄ νλλ μλΉμ€μ ν¬ν¨λμ§ μμ΅λλ€.
νλκ° μλΉμ€μ μΌλΆμΈμ§ νμΈνλ €λ©΄ kubectl get endpointsλ₯Ό μ¬μ©ν΄ ν΄λΉ μλν¬μΈνΈ μ€λΈμ νΈλ₯Ό νμΈν©λλ€.
FQDNμ΄λ κ·Έ μΌλΆ(myservice.mynamespace.svc.cluster.local λλ myservice.mynamespace)λ‘ μλΉμ€μ μ‘μΈμ€νλ €κ³ νλλ° μλνμ§ μλ κ²½μ°, FQDN λμ ν΄λ¬μ€ν° IPλ₯Ό μ¬μ©ν΄ μ‘μΈμ€ν μ μλμ§ νμΈν©λλ€.
λμ ν¬νΈκ° μλ μλΉμ€λ‘ λ ΈμΆλ ν¬νΈμ μ°κ²°νκ³ μλμ§ νμΈν©λλ€.
νλ IPμ μ§μ μ°κ²°ν΄ νλκ° μ¬λ°λ₯Έ ν¬νΈμ μ°κ²°λΌ μλμ§ νμΈν©λλ€.
νλ IPλ‘ μ ν리μΌμ΄μ μ μ‘μΈμ€ν μ μλ κ²½μ° μ ν리μΌμ΄μ μ΄ λ‘컬νΈμ€νΈμλ§ λ°μΈλ©νκ³ μλμ§ νμΈν©λλ€.
https://www.oreilly.com/library/view/kubernetes-in-action/9781617293726/
https://www.oreilly.com/library/view/cloud-native-devops/9781492040750/