Kubernetes Headless_Service
쿠버네티스에서 Headless Service는 클러스터 IP를 할당하지 않는 서비스를 말합니다. 대신, 클라이언트는 서비스를 통해 파드의 IP 주소를 직접 조회할 수 있습니다. 이는 특정 파드에 직접 연결해야 하는 경우나, 서비스 디스커버리를 위해 DNS를 사용하는 경우에 유용합니다.
다음은 각 YAML 파일에 대한 설명입니다.
myapp-rs-headless.yaml
이 YAML 파일은 ReplicaSet을 정의합니다. 이 ReplicaSet은 동일한 파드의 복사본을 여러 개 유지하도록 보장합니다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-rs-headless
spec:
replicas: 3
selector:
matchLabels:
app: myapp-rs-headless
template:
metadata:
labels:
app: myapp-rs-headless
spec:
containers:
- name: myapp
image: ghcr.io/c1t1d0s7/go-myweb:alpine
ports:
- containerPort: 8080
myapp-svc-headless.yaml
이 YAML 파일은 Headless Service를 정의합니다. 이 서비스는 클러스터 IP를 할당하지 않으며(clusterIP: None
), 대신 파드의 IP 주소를 직접 반환합니다.
apiVersion: v1
kind: Service
metadata:
name: myapp-svc-headless
spec:
clusterIP: None
ports:
- port: 80
targetPort: 8080
selector:
app: myapp-rs-headless
이러한 YAML 파일들은 쿠버네티스 클러스터 내에서 서비스를 생성하고 관리하는 데 사용됩니다. 이들 각각은 특정 목적을 가지고 있으며, 그 목적은 파드의 배포, 서비스의 라우팅, 외부 클라이언트의 접근 등 다양합니다. 이러한 설정들은 애플리케이션의 가용성과 확장성을 높이는 데 도움이 됩니다.
'Infra > Kubernetes' 카테고리의 다른 글
쿠버네티스 04-02 Storage_Hostpath (0) | 2023.09.06 |
---|---|
쿠버네티스 04-01 Storage_Emptydir (0) | 2023.09.06 |
쿠버네티스 03-04 Network_Readiness_Probe (0) | 2023.09.06 |
쿠버네티스 03-03 Network_Ingress (0) | 2023.09.06 |
쿠버네티스 03-02 Network_External_Service (0) | 2023.09.06 |