반응형
kubernetes에서 DNS를 확인할 수 없습니다
다음 명령을 사용하여 k8에서 DNS 문제를 확인합니다:
kubectl apply -f https://k8s.io/examples/admin/dns/dnsutils.yaml
kubectl exec -i -t dnsutils -- nslookup kubernetes.default
nslookup 결과는 다음과 같습니다:
;; connection timed out; no servers could be reached
command terminated with exit code 1
dnsutils. yam:
apiVersion: v1
kind: Pod
metadata:
name: dnsutils
namespace: default
spec:
containers:
- name: dnsutils
image: gcr.io/kubernetes-e2e-test-images/dnsutils:1.3
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
기본적으로 모든 포트를 비활성화하는 기계이기 때문에 IT 관리자에게 다음 문서를 기반으로 이미 포트를 열어달라고 요청합니다. 이것이 중요한지 잘 모르겠습니다.
그리고 다음으로 나는 옥수수의 포디프를 얻을 수 있었다.
kubectl get pods -n kube-system -o wide | grep core
coredns-7877db9d45-swb6c 1/1 Running 0 2m58s 10.244.1.8 node2 <none> <none>
coredns-7877db9d45-zwc8v 1/1 Running 0 2m57s 10.244.0.6 node1 <none> <none>
여기, 주인님은 제 작업 노드입니다.
그렇다면 corens podip을 직접 지정하면 다음과 같습니다:
마스터 노드 확인:
kubectl exec -i -t dnsutils -- nslookup kubernetes.default 10.244.0.6
Server: 10.244.0.6
Address: 10.244.0.6#53
Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1
작업 노드 확인 안 됨:
# kubectl exec -i -t dnsutils -- nslookup kubernetes.default 10.244.1.8
;; connection timed out; no servers could be reached
command terminated with exit code 1
그렇다면, 문제는 왜 작업 노드의 COORDS가 작동하지 않는가? 제가 주의해야 할 것이 있나요?
환경:
- OS: ubuntu 18.04
- K8S: v1.21.0
- 클러스터 부팅 명령:
kubeadm init --pod-network-cidr=10.244.0.0/16
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
마지막으로 근본 원인을 찾았습니다. 하드웨어 방화벽 문제입니다. 다음을 참조하십시오:
udp 백엔드를 사용할 경우 플란넬은 캡슐화된 패킷을 전송하기 위해 UDP 포트 8285를 사용합니다. vxlan 백엔드를 사용할 경우 커널은 캡슐화된 패킷을 전송하기 위해 UDP 포트 8472를 사용합니다. 방화벽 규칙이 오버레이 네트워크에 참여하는 모든 호스트에 대해 이 트래픽을 허용하는지 확인합니다. 방화벽 규칙을 통해 포드 네트워크 cidr로부터의 트래픽이 kubernetes 마스터 노드를 방문할 수 있도록 해야 합니다.
- 의 같은 노드에 있으면 방화벽 블록이 트리거되지 않으므로 모든 것이 괜찮습니다.
- 의 동일한 노드에 없으면 방화벽 블록을 트리거하므로 dns 서버에 액세스할 수 없습니다.
그러니까, 항구를 열고 나면, 이제 모든 게 괜찮아요.
제 경우에는 아마존의 쿠버네티스(EKS)를 사용하고 있었는데 이 오류는 나쁜 보안 그룹 때문이었습니다. AWS 관리 노드 그룹의 기본 시작 템플릿을 사용하여 문제를 해결했습니다.
반응형
'개발하자' 카테고리의 다른 글
Python 및 SetWindows로 낮은 수준의 키보드 후크 적용후크엑스에이 (2) | 2023.10.17 |
---|---|
node in typescript(노드 v17.6)에서 native fetch를 사용하려면 어떻게 해야 합니까 (1) | 2023.10.17 |
Python 기존 XLSM에 매크로 추가 (0) | 2023.10.16 |
Kubernetes로 배포하고 Ingress를 통해 연결한 후 SSE가 끊어짐 (2) | 2023.10.15 |
helm의 '--dry-run' 옵션은 kubernetes API 서버에 연결이 필요한가? 면방향 연결 오류 (0) | 2023.10.15 |