HostAliases
Pod /etc/hosts 파일 내용을 수정할 수 있다. 내부적으로 Public DNS에 정의되지 않은 도메인 이름을 사용하거나, TEST할 때 유용하게 쓰일 수 있다.
쿠버네티스에서는 init 컨테이너나 다른 수단을 사용하여 /etc/hosts 파일을 직접 편집하지 않고 hostAliases 필드를 사용하여 DNS 구성을 수정하는 것을 권장한다.
1. TEST 시나리오
1. nginx pod를 기동하여 기본 /etc/hosts 파일 내용을 확인한다.
2. nginx pod yaml에서 hostAliases 설정을 추가하여 Pod를 재 기동한다.
3. / etc/hosts 파일 내용이 수정 되었는지 확인한다.
2. TEST 및 설정
1. nginx pod 기동
아래 파일은 nginx.yaml 내용이다.
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
dnsPolicy: ClusterFirst
restartPolicy: Never
$ kubectl apply -f nginx.yaml
2. nginx pod 기동 확인
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 49s
3. 기동된 nginx에 /etc/hosts 파일 내용 확인
$ kubectl exec -it nginx -- cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.16.0.184 nginx
4. nginx.yaml 수정
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "foo.local"
- "bar.local"
- ip: "10.1.2.3"
hostnames:
- "foo.remote"
- "bar.remote"
dnsPolicy: ClusterFirst
restartPolicy: Never
5. 기존 nginx pod 삭제 후 다시 기동
$ kubectl delete -f nginx.yaml
$ kubectl apply -f nginx.yaml
6. 다시 기동된 nginx pod /etc/hosts 파일 내용 확인
위에서 추가한 hostAliases 내용이 /etc/hosts에 추가 된 것을 확인할 수 있다.
$ kubectl exec -it nginx -- cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.16.0.186 nginx
# Entries added by HostAliases.
127.0.0.1 foo.local bar.local
10.1.2.3 foo.remote bar.remote
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubernetes Dashboard (0) | 2025.01.16 |
---|---|
[Kubernetes] metrics-server 설정 (0) | 2024.12.30 |
[Kubernetes] ingress-nginx 도메인주소 rerwite 설정 (0) | 2024.10.16 |
[Kubernetes] Ingress 413 에러 해결 방법 (0) | 2024.10.15 |
[Kubernetes] Image Pull Policy (0) | 2024.10.15 |

HostAliases
Pod /etc/hosts 파일 내용을 수정할 수 있다. 내부적으로 Public DNS에 정의되지 않은 도메인 이름을 사용하거나, TEST할 때 유용하게 쓰일 수 있다.
쿠버네티스에서는 init 컨테이너나 다른 수단을 사용하여 /etc/hosts 파일을 직접 편집하지 않고 hostAliases 필드를 사용하여 DNS 구성을 수정하는 것을 권장한다.
1. TEST 시나리오
1. nginx pod를 기동하여 기본 /etc/hosts 파일 내용을 확인한다.
2. nginx pod yaml에서 hostAliases 설정을 추가하여 Pod를 재 기동한다.
3. / etc/hosts 파일 내용이 수정 되었는지 확인한다.
2. TEST 및 설정
1. nginx pod 기동
아래 파일은 nginx.yaml 내용이다.
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
dnsPolicy: ClusterFirst
restartPolicy: Never
$ kubectl apply -f nginx.yaml
2. nginx pod 기동 확인
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 49s
3. 기동된 nginx에 /etc/hosts 파일 내용 확인
$ kubectl exec -it nginx -- cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.16.0.184 nginx
4. nginx.yaml 수정
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "foo.local"
- "bar.local"
- ip: "10.1.2.3"
hostnames:
- "foo.remote"
- "bar.remote"
dnsPolicy: ClusterFirst
restartPolicy: Never
5. 기존 nginx pod 삭제 후 다시 기동
$ kubectl delete -f nginx.yaml
$ kubectl apply -f nginx.yaml
6. 다시 기동된 nginx pod /etc/hosts 파일 내용 확인
위에서 추가한 hostAliases 내용이 /etc/hosts에 추가 된 것을 확인할 수 있다.
$ kubectl exec -it nginx -- cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.16.0.186 nginx
# Entries added by HostAliases.
127.0.0.1 foo.local bar.local
10.1.2.3 foo.remote bar.remote
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubernetes Dashboard (0) | 2025.01.16 |
---|---|
[Kubernetes] metrics-server 설정 (0) | 2024.12.30 |
[Kubernetes] ingress-nginx 도메인주소 rerwite 설정 (0) | 2024.10.16 |
[Kubernetes] Ingress 413 에러 해결 방법 (0) | 2024.10.15 |
[Kubernetes] Image Pull Policy (0) | 2024.10.15 |