dev 환경에서 dns 등록하지 않은 서버들과 fqdn으로 통신해야 하는 경우, coredns에 hosts를 등록해 사용할 수 있다.
(컨테이너의 /etc/hosts에 host를 등록할 필요 없음)
# 현상
컨테이너에서 ks1.dd.io라는 도메인으로 ping을 날렸을 때 ks1.dd.io를 찾지 못해 실패함
root@pod-edu:/# ping ks1.dd.io
PING ks1.dd.io (3.139.159.151) 56(84) bytes of data.
# 해결방안
k8s coredns에 configmap에 host를 등록한 후 coredns deployment를 재시작한다.
# 방법
kube-system namespace의 coredns configmap을 수정한다.
k edit cm -n kube-system coredns
# 수정한 configmap
loadbalance 하단에 등록하고 싶은 host를 작성하였음
apiVersion: v1
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
hosts {
10.0.1.111 ks1.dd.io
}
}
kind: ConfigMap
metadata:
creationTimestamp: "2023-10-24T03:32:10Z"
name: coredns
namespace: kube-system
resourceVersion: "249"
uid: 3278fc1a-6ac4-45d8-99c2-3b39e582d0d3
# 여러 개의 host를 등록하고 싶은 경우 아래와 같이 작성하면 된다.
hosts {
10.0.1.111 ks1.dd.io
10.0.1.111 ks2.dd.io
10.0.1.111 ks3.dd.io
}
# coredns 재시작
k rollout restart deployment -n kube-system coredns
변경 후 정상적으로 ping이 성공함
root@pod-edu:/# ping ks1.dd.io
PING ks1.dd.io (10.0.1.111) 56(84) bytes of data.
64 bytes from ks1.dd.io (10.0.1.111): icmp_seq=1 ttl=63 time=0.253 ms
64 bytes from ks1.dd.io (10.0.1.111): icmp_seq=2 ttl=63 time=0.265 ms
64 bytes from ks1.dd.io (10.0.1.111): icmp_seq=3 ttl=63 time=0.439 ms
64 bytes from ks1.dd.io (10.0.1.111): icmp_seq=4 ttl=63 time=0.467 ms
'kubenetes' 카테고리의 다른 글
airflow helm 설치 (0) | 2024.08.29 |
---|---|
kubeflow 1.9.0 설치하기 (0) | 2024.08.26 |
nerfstuio viewer image build (0) | 2023.10.18 |
kubeflow 1.7.0 설치 (0) | 2023.08.29 |
k8s nifi ingress (0) | 2022.10.06 |
댓글