πŸ₯•
TIL
  • [TIL] Studying tech / computer science knowledge
  • KeyMap
  • μ•Œκ³ λ¦¬μ¦˜
    • λ³΅μž‘λ„ 계산 ( Computational Complexity )
    • DisjointSet-unionFind
    • Bellman-ford Algorithm
    • Dijkstra's Algorithm
    • DP ( Dynamic Programming , 동적 κ³„νšλ²• )
    • ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜ (Floyd-Warshall algorithm)
    • Kruskal's Algorithm
    • 졜μž₯ 증가 μˆ˜μ—΄ (Longes Increasing Subsequence)
    • Prim's Algorithm
    • μ •λ ¬
    • μ‹œκ°„λ³΅μž‘λ„ 와 κ³΅κ°„λ³΅μž‘λ„ ( Time Complexity & Space Complexity )
    • Topological Sort (μœ„μƒ μ •λ ¬)
  • μ±… μ½κ³ λ‚œ ν›„ μš”μ•½
    • ν”„λ‘œκ·Έλž˜λ° λŒ€νšŒμ—μ„œ λ°°μš°λŠ” μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν•΄κ²° μ „λž΅
    • cleancode
    • 도메인 주도 μ„€κ³„λ‘œ μ‹œμž‘ν•˜λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ 개발
    • 였브젝트
  • CDC
    • debzium
    • kafka
  • 개발 상식
    • asciidoctor
    • 컴파일러
    • ELK μŠ€νƒ
    • μ—”λ””μ•ˆ
    • git
    • Gitmoji
    • ν…ŒμŠ€νŠΈ μ’…λ₯˜
    • λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν”„λ ˆμž„μ›Œν¬
    • μ •κ·œ ν‘œν˜„μ‹
    • REST API
    • 동기와 비동기 / Blockingκ³Ό NonBlocking
    • Transaction Script와 Domain Model
    • λ””μžμΈ νŒ¨ν„΄
      • 행동 νŒ¨ν„΄
      • 객체 생성 νŒ¨ν„΄
        • 좔상 νŒ©ν† λ¦¬ νŒ¨ν„΄
        • λΉŒλ” νŒ¨ν„΄
        • νŒ©ν† λ¦¬ λ©”μ„œλ“œ νŒ¨ν„΄
        • [생성 νŒ¨ν„΄] ν”„λ‘œν†  νƒ€μž… (Prototype Parttern)
        • 싱글톀
      • ꡬ쑰 νŒ¨ν„΄
        • μ–΄λŒ‘ν„° νŒ¨ν„΄
        • λΈŒλ¦Ώμ§€ νŒ¨ν„΄
        • 컴포짓(Composite) νŒ¨ν„΄
        • λ°μ½”λ ˆμ΄ν„°
        • ν”„λ‘μ‹œ
    • refactoring
      • 쀑볡 μ½”λ“œ
      • μ „μ—­ 데이터
      • κΈ΄ ν•¨μˆ˜
      • κΈ΄ λ§€κ°œλ³€μˆ˜ λͺ©λ‘
      • κ°€λ³€ 데이터
      • μ΄ν•΄ν•˜κΈ° νž˜λ“  이름
  • 자료ꡬ쑰
    • AVL Tree
    • Splay Tree
    • aaTree
    • array-list
    • 자료ꡬ쑰 μ‹œκ°„/곡간 λ³΅μž‘λ„
    • κ·Έλž˜ν”„
    • νž™
    • Red Black Tree
    • stack-queue
    • 트리 ( Tree )
  • DevOps
    • MSA
    • Kubernetes
      • AccessingAPI
      • controller
      • dashboard
      • kubernetes
      • object
      • pod
      • service
      • volume
  • Java
    • μ–΄λ…Έν…Œμ΄μ…˜
    • μ œμ–΄λ¬Έ
    • 데이터 νƒ€μž…
    • Enum
    • jvm
    • μ—°μ‚°μž
    • thread
    • Java8
      • CompletableFuture
      • Date/Time
      • μ–΄λ…Έν…Œμ΄μ…˜κ³Ό λ©”νƒ€μŠ€νŽ˜μ΄μŠ€
      • μΈν„°νŽ˜μ΄μŠ€
      • λžŒλ‹€μ‹
      • Optional
      • 슀트림
  • JavaScript
    • moduleProject
    • webpack-babel
    • μ½”μ–΄ μžλ°”μŠ€ν¬λ¦½νŠΈ
      • array
      • ν•¨μˆ˜ 바인딩
      • λ°μ½”λ ˆμ΄ν„°μ™€ ν¬μ›Œλ”©
      • Class
      • 비ꡐ μ—°μ‚°μž
      • Date λ‚΄μž₯ 객체
      • destructuring-assignment
      • function
      • ν•¨μˆ˜μ˜ prototype ν”„λ‘œνΌν‹°
      • κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ ( Garbage Collection )
      • JSON (JavaScript Object Notation)
      • map-set
      • λ‚΄μž₯ ν”„λ‘œν† νƒ€μž…
      • newμ—°μ‚°μžμ™€ μƒμ„±μž ν•¨μˆ˜
      • 객체
      • Object.keys, values, entries
      • μ˜΅μ…”λ„ 체이닝 '?.'
      • ν”„λ‘œνΌν‹° ν”Œλž˜κ·Έ
      • ν”„λ‘œνΌν‹° μ’…λ₯˜
      • ν”„λ‘œν†  νƒ€μž…
      • 호좜 μŠ€μΌ€μ€„λ§ ( scheduling a call )
      • scope
      • this
      • type-conversions
      • type
      • ν•¨μˆ˜μ˜ μžλ£Œν˜•
      • var_let_const
  • Linux
    • κΈ°λ³Έ λͺ…λ Ήμ–΄
    • 파일 μ’…λ₯˜
    • λ¦¬λˆ…μŠ€
  • λ„€νŠΈμ›Œν¬
    • μ‘μš© 계측 ( Application Layer )
    • 였λ₯˜ κ²€μΆœκ³Ό 였λ₯˜ μ •μ •
    • Http
    • Http Header
    • 컴퓨터 λ„€νŠΈμ›Œν¬λž€
    • λ„€νŠΈμ›Œν¬ 계측
    • λ„€νŠΈμ›Œν¬ μ œμ–΄ μ˜μ—­
    • 전솑 계측 ( Transport Layer )
  • PHP
    • Facade
    • composer
    • scopeResolutionOperator
    • Laravel
      • SocialProvider
      • architecture
      • blade
      • controller
      • db
      • dbArchitecture
      • debug
      • eloquent
      • email
      • event
      • exceptionHandling
      • middleware
      • model
      • modelFactory
      • pagingLoading
      • queryBuilder
      • route
      • scout
      • seeding
      • tntsearch
      • validate
      • view
  • React
    • Next.js
    • React λž€?
  • Spring
    • Controller
    • μš”μ²­μ΄ λ“€μ–΄μ™”μ„λ•Œ μŠ€ν”„λ§μ΄ μ²˜λ¦¬ν•˜λŠ” 방법 ( 내뢀ꡬ쑰 )
    • ConfigurationProperties
    • Entity / DTO / VO
    • Maven
    • Repository와 DAO
    • μŠ€ν”„λ§ 빈
    • Spring Framework
    • MVC νŒ¨ν„΄
    • 도메인 μž…λ ₯κ°’ 검증
    • Spring Cloud
      • Spring Cloud
      • Eureka
    • Spring Data
      • JPA
      • JPA μ–΄λ…Έν…Œμ΄μ…˜
      • μ—”ν‹°ν‹° 비ꡐ
      • 볡합 킀와 식별 관계 λ§€ν•‘
      • JPA μ˜ˆμ™Έμ²˜λ¦¬
      • 객체지ν–₯ 쿼리
      • EntityManagerFactory와 EntityManager
      • JPA μ΅œμ ν™”
      • ν”„λ‘μ‹œμ™€ 연관관계 λ§΅ν•‘
      • 연관관계
      • 상속관계 λ§΅ν•‘
      • νŠΈλžœμž­μ…˜ λ²”μœ„μ™€ μ˜μ†μ„± μ»¨ν…μŠ€νŠΈ
      • 데이터 νƒ€μž…
      • MySQL μ—°κ²°
      • Pageable
    • Spring Projectλ“€κ³Ό library
      • Custom Serialize
      • Elasticsearch Index API
      • Spring HATEOAS
      • lombok (둬볡)
      • Model Mapper
      • Object Mapper
      • Representation Model
      • Spring REST Docs
      • Spring Boot
    • Spring Security
      • Spring Security
      • Authentication
      • Authentication Filter
      • Authorization Filter
      • Filter Chain
      • SecurityContext
      • Spring OAuth2.0
    • Spring Test
      • AssertJ
      • Junit5
      • JunitParams
      • Mock Object
  • DataBase
    • ALIAS
    • CONCAT
    • CTE
    • Group By
    • HAVING
    • IFNULL
    • 인덱슀
    • JOIN
    • ORDER BY
    • ROLLUP
    • SELECT
    • SELECT DISTINCT
    • SQL
    • WHERE
  • Web 상식
    • OAuth
    • WAS
    • HTTP톡신 기반 인증
    • λΈŒλΌμš°μ €
    • CSR κ³Ό SSR
    • HTTPS
    • Web
Powered by GitBook
On this page
  • 1. λͺ…λ Ήμ–΄
  • 2. Type
  • 3. Objects
  • μΆ”κ°€
  1. DevOps
  2. Kubernetes

service

PreviouspodNextvolume

Last updated 3 years ago

1. λͺ…λ Ήμ–΄

1) Get

kubectl get service svc-3 -n defalut #service 쑰회
# Pod이름이 request-pod인 Container둜 λ“€μ–΄κ°€κΈ° (λ‚˜μ˜¬λ• exit)
kubectl exec request-pod -it /bin/bash

2. Type

1) ClusterIp

μ„œλΉ„μŠ€λŠ” 기본적으둜 μžμ‹ μ˜ ν΄λŸ¬μŠ€ν„° ipμ£Όμ†Œλ₯Ό κ°€μ§€κ³  있고 이λ₯Ό νŒŒλ“œμ— μ—°κ²°μ‹œμΌœ λ†“μœΌλ©΄ ν•΄λ‹Ή ipμ£Όμ†Œλ₯Ό μ΄μš©ν•΄μ„œ μ ‘κ·Όν•  수 μžˆλ‹€. νŒŒλ“œλ„ λ³„λ„μ˜ ipμ£Όμ†Œλ₯Ό κ°€μ§€κ³  μžˆμ§€λ§Œ μ΄λŠ” νœ˜λ°œμ„± ipμ£Όμ†Œμ΄κΈ° λ•Œλ¬Έμ— 신뒰성이 λ–¨μ–΄μ§€μ§€λ§Œ μ„œλΉ„μŠ€λ‘œ μ—°κ²°μ‹œμΌœλ†“μœΌλ©΄ μž¬μƒμ„±μ΄ λ˜λ”λΌλ„ 접근을 ν•  수 있게 λœλ‹€.

μ„œλΉ„μŠ€κ°€ κ°€μ§€λŠ” ipμ£Όμ†Œλ„ μ™ΈλΆ€μ—μ„œλŠ” μ ‘κ·Ό ν• μˆ˜ μ—†μœΌλ©° ν΄λŸ¬μŠ€ν„° λ‚΄μ—μ„œλ§Œ 접근이 κ°€λŠ₯ν•˜κ³  μ—¬λŸ¬κ°œμ˜ νŒŒλ“œλ₯Ό μ—°κ²°μ‹œμΌœλ†“μ•„μ„œ λΆ€ν•˜λΆ„μ‚°λ„ μˆ˜ν–‰ν•  수 μžˆλ‹€.

apiVersion: v1
kind: Service
metadata:
  name: svc-1
spec:
  selector:
    app: pod
  ports:
    - port: 9000
      targetPort: 8080
  type: ClusterIP

typeμ˜΅μ…˜μ—μ„œ ClusterIPλŠ” μ˜΅μ…”λ„ν•œ κ°’μœΌλ‘œ 기본값이 ClusterIp이기 λ•Œλ¬Έμ— λͺ…μ‹œν•΄μ£Όμ§€ μ•Šμ•„λ„ 기본적으둜 이 값을 κ°–κ²Œ λœλ‹€. μœ„ yml은 9000번포트의 μš”μ²­μ„ νŒŒλ“œμ˜ 8080포트둜 μ—°κ²°μ‹œμΌœμ€€λ‹€λŠ” λ‚΄μš©μ΄λ‹€.

apiVersion: v1
kind: Pod
metadata:
  name: pod-1
  lables:
    app: pod
spec:
  continaers:
    - name: container
      image: tmkube/app
      ports:
        - coninaerPort: 8080

μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•  μˆ˜κ°€ μ—†κ³  ν΄λŸ¬μŠ€ν„°λ‚΄μ—μ„œλ§Œ μ‚¬μš©ν•˜λŠ” ip둜 μš΄μ˜μžμ™€ 같이 μΈκ°€λœ μ‚¬μš©μžλ§Œ μ ‘κ·Όν•  수 있기 λ•Œλ¬Έμ— λ‚΄λΆ€ λŒ€μ‹œλ³΄λ“œλ‚˜ νŒŒλ“œμ˜ μ„œλΉ„μŠ€ μƒνƒœ λ””λ²„κΉ…ν• λ•Œ μ‚¬μš©ν•œλ‹€.

2) NodePort

ν΄λŸ¬μŠ€ν„°μ— μ—°κ²°λ˜μ–΄μžˆλŠ” λͺ¨λ“  λ…Έλ“œμ— νŠΉμ • 포트λ₯Ό ν• λ‹Ήν•˜μ—¬ νŠΉμ • λ…Έλ“œμ—μ„œ ν• λ‹Ήλœ 포트둜 연결을 μ‹œλ„ν• λ•Œ λ…Έλ“œλ“€μ΄ ν•΄λ‹Ή μ„œλΉ„μŠ€λ‘œ 연결이 되고 μ„œλΉ„μŠ€μ— μ—°κ²°λœ νŒŒλ“œμ—κ²Œ 역할을 λ³΄λ‚΄μ£Όκ²Œ λœλ‹€.

apiVersion: v1
kind: Service
metadata:
  name: svc-2
spec:
  selector:
    app: pod
  ports:
    - port: 9000
      targetPort: 8080
      nodePort: 30000
  type: NodePort

nodePortλŠ” 30000~32767μ‚¬μ΄μ˜ ν¬νŠΈμ€‘μ— 선택할 수 있고 λͺ…μ‹œν•˜μ§€ μ•ŠμœΌλ©΄ 이 값쀑 ν•œ κ°’μœΌλ‘œ μžλ™μœΌλ‘œ 섀정이 λœλ‹€.

κΈ°λ³Έμ μœΌλ‘œλŠ” μ–΄λ–€ νŠΉμ •λ…Έλ“œλ₯Ό ν†΅ν•΄μ„œ 접근을 ν•΄ μš”μ²­μ„ ν•˜λ”λΌκ³  μ„œλΉ„μŠ€λŠ” 1λ²ˆλ…Έλ“œλ‚΄μ— μ‘΄μž¬ν•˜λŠ” νŒŒλ“œλ₯Ό μˆ˜ν–‰ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ„œλΉ„μŠ€κ°€ νŒλ‹¨ν•˜μ—¬ μ μ ˆν•œ λ‹€λ₯Έ λ…Έλ“œμ˜ νŒŒλ“œλ₯Ό ν• λ‹Ήν•˜κ²Œ λ˜λŠ”λ° externalTrafficPolicy: Local μ˜΅μ…˜μ„ μ£Όλ©΄ νŠΉμ • λ…Έλ“œλ₯Ό 톡해 μ ‘κ·Όν•œ μš”μ²­μ€ ν•΄λ‹Ή λ…Έλ“œλ‚΄μ˜ νŒŒλ“œλ₯Ό μˆ˜ν–‰ν•˜λ„λ‘ 해쀄 수 μžˆλ‹€.

물리적인 ν˜ΈμŠ€νŠΈμ— ipλ₯Ό ν†΅ν•΄μ„œ νŒŒλ“œμ— μ ‘κ·Όν•  수 μžˆλŠ” νŠΉμ§•μ„ κ°€μ§€κ³  μžˆλŠ”λ° 보톡 호슀트ipλŠ” λ‚΄λΆ€λ§μ—μ„œλ§Œ μ ‘κ·Όν•  수 있게 λ„€νŠΈμ›Œν¬λ₯Ό κ΅¬μ„±ν•˜κΈ° λ•Œλ¬Έμ— 내뢀망을 μ—°κ²°ν• λ•Œλ‚˜ 데λͺ¨λ‚˜ μž„μ‹œ μ—°κ²°μš©μœΌλ‘œ μ‚¬μš©ν•œλ‹€.

3) LoadBalancer

기본적으둜 λ…Έλ“œν¬νŠΈμ˜ μ˜΅μ…˜μ„ κ°€μ§€κ³  있으며, λ…Έλ“œλ“€ μ•žμ— λ‘œλ“œλ°ΈλŸ°μ„œκ°€ ν•˜λ‚˜ 생성이 되고, λ‘œλ“œλ°ΈλŸ°μ„œκ°€ λΆ€ν•˜λΆ„μ‚°μ„ 톡해 μ—¬λŸ¬ λ…Έλ“œλ“€λ‘œ μš”μ²­μ„ 보낼 수 μžˆλ‹€. μ΄λ•Œ μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” λ‘œλ“œλ°ΈλŸ°μ„œμ˜ ipμ£Όμ†ŒλŠ” μžλ™μœΌλ‘œ 생성이 λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ³„λ„λ‘œ 외뢀접속 ipλ₯Ό ν• λ‹Ήν•΄μ£ΌλŠ” plugin이 μ„€μΉ˜κ°€ λ˜μ–΄μžˆμ–΄μ•Ό ipμ£Όμ†Œκ°€ ν• λ‹Ήλœλ‹€. λ§Œμ•½ aws, google등을 ν†΅ν•΄μ„œ λ§Œλ“ λ‹€λ©΄ ν•΄λ‹Ή plugin이 μ„€μΉ˜κ°€ λ˜μ–΄μžˆμ–΄ ipμ£Όμ†Œκ°€ ν• λ‹Ή λœλ‹€.

apiVersion: v1
kind: Service
metadata:
  name: svc-3
spec:
  selector:
    app: pod
  ports:
    - port: 9000
      targetPort: 8080
  type: LoadBalancer

μ‹€μ œμ μœΌλ‘œ 외뢀에 μ‹œμŠ€ν…œμ„ λ…ΈμΆœμ‹œν‚¬λ•Œ λ‚΄λΆ€ipλ₯Ό λ…ΈμΆœμ‹œν‚€μ§€ μ•Šκ³  μ™ΈλΆ€ipλ§Œμ„ λ…ΈμΆœ μ‹œμΌœ μ‚¬μš©λ  수 μžˆλ‹€.

3. Objects

1) Headless

cluster 내에 dnsκ°€ μ‘΄μž¬ν•˜μ—¬ podμ—μ„œ serviceλ₯Ό μ—°κ²°ν• λ•Œ serviceμ΄λ¦„μœΌλ‘œ 연결이 κ°€λŠ₯ν–ˆμ—ˆλŠ”λ° pod와 podκ°„μ˜ 연결도 headlessμ˜΅μ…˜μ„ μ΄μš©ν•˜λ©΄ dns에 pod이름.serviceμ΄λ¦„μ˜ μ΄λ¦„μœΌλ‘œ ν•„λ“œκ°€ μƒμ„±λ˜μ–΄ ipκ°€ κ΄€λ¦¬λ˜κΈ° λ•Œλ¬Έμ— pod간에 연결이 κ°€λŠ₯ν•˜λ‹€.

#Service
apiVersion: v1
kind: Service
metadata:
  name: headless1
spec:
  selector:
    svc: headless
  ports:
    - port: 80
      targetPort: 8080    
  clusterIP: None
#Pod
apiVersion: v1
kind: Pod
metadata:
  name: pod4
  labels:
    svc: headless
spec:
  hostname: pod-a
  subdomain: headless1
  containers:
  - name: container
    image: kubetm/app

2) Endpoint

kubectl describe endpoints endpoint2  #enpoint 보기
#Service
apiVersion: v1
kind: Service
metadata:
  name: endpoint2
spec:
  ports:
  - port: 8080
#Pod
apiVersion: v1
kind: Pod
metadata:
  name: pod9
spec:
  containers:
  - name: container
    image: kubetm/app
apiVersion: v1
kind: Endpoints
metadata:
  name: endpoint2
subsets:
 - addresses:
   - ip: 20.109.5.12
   ports:
   - port: 8080

3) ExternalName

μ™ΈλΆ€ ipμ£Όμ†Œλ₯Ό μ•Œκ³  μžˆμ–΄ endpointλ₯Ό μ΄μš©ν•˜μ—¬ 접근을 ν•˜λ”λΌλ„ 이 μ™ΈλΆ€ ipλŠ” λ³€κ²½κ°€λŠ₯성이 있기 λ•Œλ¬Έμ— domain이름을 μ§€μ •ν•˜λŠ” 방법이 ν•„μš”ν•œλ° μ΄λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” 방법이닀.

apiVersion: v1
kind: Service
metadata:
 name: externalname1
spec:
 type: ExternalName
 externalName: github.github.io

μΆ”κ°€

k8s v1.11 μ΄μ „μ—λŠ” kube-dns λ₯Ό 기반으둜 DNS μ„œλΉ„μŠ€λ₯Ό 제곡, μ΄ν›„μ—λŠ” CoreDNSλ₯Ό λ„μž…ν–ˆλ‹€.(λ³΄μ•ˆκ³Ό μ•ˆμ •μ„± 문제)


Reference

μœ„μ˜ type이 k8s의 service에 μ—°κ²°ν•˜μ—¬ node에 μ ‘μ†ν•˜κΈ° μœ„ν•¨μ΄μ—ˆλŠ”λ° μ΄λŠ” serviceκ°€ λ§Œλ“€μ–΄μ§€κ³  λ‚œ 후에 κ·Έ ipλ₯Ό μ΄μš©ν•΄μ„œ μ ‘κ·Όν•˜λŠ” λ°©λ²•μ΄μ—ˆμ§€λ§Œ service의 podκ°€ λ™μ‹œμ— μ—¬λŸ¬κ°œ 배포되고 ν•œ podμ—μ„œ λ‹€λ₯Έ podλ₯Ό μ—°κ²°ν•˜κ³ μž ν• λ•Œ pod의 ipλŠ” 동적할당이며 μž¬μƒμ„±μ‹œ λ³€κ²½μ΄λ˜κΈ° λ•Œλ¬Έμ— 접근이 νž˜λ“€ 수 μžˆλŠ”λ° μ΄λŸ΄λ•Œ μ œκ³΅ν•˜λŠ” objectλ₯Ό μ΄μš©ν•΄ ν•΄κ²°ν•  수 μžˆλ‹€.

serviceλ₯Ό clusterIPλ°©μ‹μœΌλ‘œ 생성을 ν•˜κ²Œ 되면 DNSκ°€ μœ„μ— 사진과 같이 생성이 λ˜λŠ”λ° 보면 service이름.namespace이름.μ’…λ₯˜(service/pod...).dnsμ΄λ¦„μ˜ κ·œμΉ™μœΌλ‘œ domain이름이 μƒμ„±λ˜λŠ”λ° 이λ₯Ό FQDN(Fully Qualified Domain Name)이라고 ν•œλ‹€. 그리고 ν•œ namespaceμ—μ„œ serviceλŠ” μ΄λ¦„λ§ŒμœΌλ‘œ 접근이 κ°€λŠ₯ν•˜μ§€λ§Œ podλŠ” 전체 μ΄λ¦„μœΌλ‘œ 쑰회λ₯Ό ν•΄μ•Όν•˜κ³  pod의 domain name이 λ™μ μœΌλ‘œ μƒμ„±λœ ipμ£Όμ†Œκ°€ λΆ™μ–΄ 지정이 되기 λ•Œλ¬Έμ— podμ΄λ¦„μœΌλ‘œ domain을 μ§ˆμ˜κ°€ λΆˆκ°€λŠ₯ν•΄ podμ—λŠ” 접근이 λΆˆκ°€λŠ₯ν•˜λ‹€.

service의 clusterIPλ₯Ό None으둜 ν•˜μ—¬ clusterIpλ₯Ό λ§Œλ“€μ§€ μ•Šκ³  pod의 hostname에 domain을, subdomain에 service이름을 λ„£μ–΄ 생성해주면 headless둜 생성이 λœλ‹€. κ·Έλ ‡κ²Œ 되면 νŠΉμ • μ΄λ¦„μœΌλ‘œ dns에 domain듀이 생성이 되고 이 이름을 κ°€μ§€κ³  접근을 ν•  수 μžˆλ‹€.

μš°λ¦¬κ°€ serviceμ—μ„œ podλ₯Ό μ—°κ²°ν• λ•Œ label을 μ΄μš©ν•˜μ—¬ μ—°κ²°ν•˜μ˜€λŠ”λ° μ΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ endpointλ₯Ό μ΄μš©ν•˜μ—¬ μ—°κ²°λœ 방식이닀. k8sλŠ” μ„œλΉ„μŠ€μ˜ μ΄λ¦„μœΌλ‘œ endpointλ₯Ό μƒμ„±ν•˜κ³  내뢀에 pod에 접속정보λ₯Ό μž…λ ₯ν•˜μ—¬ service-pod 연결을 κ΄€λ¦¬ν•œλ‹€.

이λ₯Ό μ΄μš©ν•˜μ—¬ 직접 endpointλ₯Ό μ„€μ •ν•΄μ„œ νŠΉμ • podλ‚˜ μ™ΈλΆ€ μ£Όμ†Œμ— 접근을 ν•  수 μžˆλ‹€.

serviceλ₯Ό μƒμ„±ν• λ•Œ ExternalName속성에 domain이름을 μ§€μ •ν•΄μ£Όλ©΄ dns cacheκ°€ λ‚΄λΆ€/μ™ΈλΆ€ DNSμ—μ„œ μ£Όμ†Œλ₯Ό μ°Ύμ•„ μ—°κ²°ν•΄μ£ΌκΈ° λ•Œλ¬Έμ— ipμ£Όμ†Œκ°€ λ°”λ€Œμ–΄λ„ 접속이 κ°€λŠ₯ν•˜λ‹€.

μΈν”„λŸ°-κΉ€νƒœλ―Όλ‹˜ κ°•μ˜
k8s κ³΅μ‹λ¬Έμ„œ
type2
type1
label-endpoint
headless-clusterip
objects
headless
endpoint
externalName