Skydns не удалось отправить запрос
Я недавно установил кластер kubernetes в зависимости от этой документации.
Итак, у меня есть 4 виртуальные машины, 1 мастер и 3 узла.
[root]# virsh list
ID Nom État
----------------------------------------------------
56 kubernetes-node-1 en cours d'exécution
57 kubernetes-node-2 en cours d'exécution
58 kubernetes-node-3 en cours d'exécution
59 kubernetes-master en cours d'exécution
Все работает нормально, но у меня есть проблема с контейнером, который хочет получить доступ к домену вне кластера (например, google.fr):
root # kubectl get po
NAME READY STATUS RESTARTS AGE
kube-dns-v20-8p0se 3/3 Running 20 3d
microbot-2423440873-q8v53 1/1 Running 1 1d
Зайдите внутрь контейнера контейнера:
root # kubectl exec microbot-2423440873-q8v53 --stdin --tty /bin/sh
/ # ping google.fr
ping: bad address 'google.fr'
/ # cat /etc/resolv.conf
search kube-system.svc.cluster.local svc.cluster.local cluster.local
nameserver 10.11.0.254
options ndots:5
Ошибка в контейнере кубеднс:
root # kubectl log kube-dns-v20-8p0se -c kubedns
I1107 09:48:30.583135 1 logs.go:41] skydns: failure to forward request "read udp 10.10.3.3:44221->192.168.10.254:53: i/o timeout"
root # kubectl edit rc/kube-dns-v20
apiVersion: v1
kind: ReplicationController
metadata:
creationTimestamp: 2016-11-03T22:18:43Z
generation: 1
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
version: v20
name: kube-dns-v20
namespace: kube-system
resourceVersion: "356473"
selfLink: /api/v1/namespaces/kube-system/replicationcontrollers/kube-dns-v20
uid: 7b3889f4-a213-11e6-8dbf-525400000003
spec:
replicas: 1
selector:
k8s-app: kube-dns
version: v20
template:
metadata:
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly",
"operator":"Exists"}]'
creationTimestamp: null
labels:
k8s-app: kube-dns
version: v20
spec:
containers:
- args:
- --domain=cluster.local.
- --dns-port=10053
image: gcr.io/google_containers/kubedns-amd64:1.8
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 5
httpGet:
path: /healthz-kubedns
port: 8080
port: 8080
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
name: dnsmasq
ports:
- containerPort: 53
name: dns
protocol: UDP
- containerPort: 53
name: dns-tcp
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
- args:
- --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null
- --url=/healthz-dnsmasq
- --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1:10053 >/dev/null
- --url=/healthz-kubedns
- --port=8080
- --quiet
image: gcr.io/google_containers/exechealthz-amd64:1.2
imagePullPolicy: IfNotPresent
name: healthz
ports:
- containerPort: 8080
protocol: TCP
resources:
limits:
memory: 50Mi
requests:
cpu: 10m
memory: 50Mi
terminationMessagePath: /dev/termination-log
dnsPolicy: Default
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 30
status:
fullyLabeledReplicas: 1
observedGeneration: 1
readyReplicas: 1
replicas: 1