컨테이너의 도메인 이름 확인 프로세스 및 도메인 이름 확인에 대한 다양한 dnsPolicy의 영향

이 기사는 Huawei Cloud 커뮤니티 " 컨테이너의 도메인 이름 확인 프로세스 및 도메인 이름 확인에 대한 다양한 dnsPolicy의 영향 " 에서 공유되었습니다 . 작성자: 친구를 사귈 수 있습니다.

1. coreDNS 배경

kubernetes 클러스터에 배치된 컨테이너 비즈니스는 coreDNS 서비스를 통해 도메인 이름을 확인하는데, Coredns는 캐디 프레임워크를 기반으로 하며 전체 CoreDNS 서비스는 Go로 작성된 HTTP/2 웹 서버 Caddy를 기반으로 구축됩니다. 플러그인(체인) 아키텍처를 통해 미리 구성된 방식(configmap 볼륨 탑재 콘텐츠 구성)으로 필요한 플러그인 컴파일을 선택하고, 플러그인 체인의 로직이 순차적으로 실행되며, 4가지를 통해 외부에 노출됩니다. 방법(TCP, UDP, gRPC 및 HTTPS) DNS 서비스를 직접 제공합니다.

2. Kubelet은 컨테이너에서 도메인 이름을 확인할 수 있도록 컨테이너의 /etc/resolv.conf 파일을 수정합니다.

kubernetes 클러스터에서 coreDNS 서비스는 kube-apiserver와 통신하여 Clusterip과 serviceName 사이의 매핑 관계를 획득하고 coreDNS 자체는 Clusterip(기본값 xx.xx.3.10, 예를 들어 Clusterip 네트워크 세그먼트는 10.247.xx이고 coreDNS)을 사용합니다. 서비스의 Clusterip을 외부에 노출합니다(10.247.3.10). 운영 체제 도메인 이름 서버의 키 구성 파일 /etc/resolv.conf에 nameserver 필드가 지정되어 있다는 것을 알고 있으므로 구성만 하면 됩니다. /etc/resolv.conf 컨테이너의 nameserver 필드를 coreDNS의 클러스터 IP 주소로 변경합니다.

그렇다면 컨테이너/etc/resolv.conf 수정은 누가 완료하고 어떻게 수정해야 할까요? Kubelet은 컨테이너 풀업을 담당합니다. 시작 매개변수의 --cluster-dns 필드에 해당하는 값은 클러스터의 coreDNS의 클러스터 IP 주소입니다. kubelet이 컨테이너를 풀업할 때 수정된 값을 Pod의 dnsPolicy 옵션에 따른 컨테이너입니다.

3. Pod의 다양한 dnsPolicy가 컨테이너/etc/resolv.conf에 미치는 영향

  • 기본값 : dnsPolicy가 "Default"로 설정된 경우 이름 확인 네임서버 구성은 포드가 실행 중인 노드의 /etc/resolv.conf에서 상속됩니다.
# 노드/etc/resolv.conf 구성
네임서버 XXXX
네임서버 XXXY
옵션 ndots:5 시간 초과:2 단일 요청-재개방
  • ClusterFirst : dnsPolicy가 "ClusterFirst"로 설정된 경우 Pod의 /etc/resolv.conf에서 클러스터 coredns의 서비스 주소를 네임서버 구성으로 사용합니다.

네임서버 10.247.3.10
default.svc.cluster.local 검색 svc.cluster.local 클러스터.local
옵션 ndots:5 시간 초과:2 단일 요청-재개방
  • ClusterFirstWithHostNet : hostNetwork 네트워크 모드에서 실행되는 포드의 경우 해당 DNS 정책 "ClusterFirstWithHostNet"을 명시적으로 설정해야 합니다. 그렇지 않으면 hostNetwork + ClusterFirst의 실제 효과 = 기본값

네임서버 10.247.3.10
검색 default.svc.cluster.local svc.cluster.local Cluster.local 옵션 ndots:5 시간 초과:2 단일 요청-재개방
  • 없음: 사용자가 Pod에서 /etc/resolv.conf 구성을 사용자 정의하고 Kubernetes 환경의 기본 DNS 설정을 무시할 수 있습니다. 모든 DNS 설정은 dnsConfigPod 사양의 필드를 사용하여 제공되어야 합니다.

/etc/resolv.conf 관련 구성 지침

nameserver: 지정된 DNS 서비스 주소 IP, 도메인 이름을 확인하는 데 사용되는 서버를 나타냅니다.

검색: 도메인 이름 확인 중에 지정된 도메인 이름 검색 도메인을 나타냅니다. 도메인 이름을 확인할 때 검색된 도메인의 순서에 따라 도메인 이름 확인 주소가 구성됩니다. 해결될 때까지 도메인 이름 확인을 수행합니다. 예: svcname.default.svc.cluster.local --> svcname.svc.cluster.local --> svcname.cluster.local

옵션: 기타 옵션. 가장 일반적인 옵션 구성은 다음과 같습니다.
- ndots 값: 도메인 이름 확인 주소에 포함된 "."가 ndots 설정 값보다 크거나 같은지 확인하고, 그렇다면 확인을 요청한 도메인 이름 주소를 정규화된 주소로 확인 요청을 시작합니다. 도메인 이름, 검색 도메인은 더 이상 도메인 이름 주소를 구축하기 위해 구성되지 않으며, ndots보다 작으면 검색 도메인에 따라 도메인 이름 주소가 구성되고 해결 요청이 하나씩 시작됩니다. .
- 시간 초과: DNS 서버의 응답을 기다리는 시간이 초과되었습니다. 단위는 초(s)입니다.

화웨이 클라우드의 신기술에 대해 빨리 알아보고 팔로우하려면 클릭하세요~

 

IntelliJ IDEA 2023.3 및 JetBrains Family Bucket 연간 주요 버전 업데이트 새로운 개념 "방어 프로그래밍": 안정적인 작업 수행 GitHub.com은 1,200개 이상의 MySQL 호스트를 실행합니다. 8.0으로 원활하게 업그레이드하는 방법은 무엇입니까? Stephen Chow의 Web3 팀은 다음 달에 독립 앱을 출시할 예정입니다. Firefox는 사라질까요? Visual Studio Code 1.85 출시, 부동 창 US CISA는 메모리 보안 취약점을 제거하기 위해 C/C++ 포기를 권장합니다. Yu Chengdong: Huawei는 내년에 파괴적인 제품을 출시하고 업계 역사를 다시 쓸 것입니다. TIOBE 12월: C#이 올해의 프로그래밍 언어가 될 것으로 예상됩니다. A 논문 Lei Jun이 30년 전에 작성함: "컴퓨터 바이러스 판별 전문가 시스템의 원리 및 설계"
{{o.이름}}
{{이름}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/10320704
Recomendado
Clasificación