Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DNS: expose 53/TCP #7822

Merged
merged 6 commits into from May 7, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 7 additions & 5 deletions cluster/addons/dns/skydns-rc.yaml.in
@@ -1,11 +1,11 @@
apiVersion: v1beta3
kind: ReplicationController
metadata:
name: kube-dns
namespace: default
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
name: kube-dns
namespace: default
spec:
replicas: {{ pillar['dns_replicas'] }}
selector:
Expand All @@ -15,7 +15,6 @@ spec:
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
name: kube-dns
spec:
containers:
- name: etcd
Expand All @@ -31,7 +30,7 @@ spec:
- name: kube2sky
image: gcr.io/google_containers/kube2sky:1.4
args:
# entrypoint = "/kube2sky"
# command = "/kube2sky"
- -domain={{ pillar['dns_domain'] }}
- -kubecfg_file=/etc/dns_token/kubeconfig
volumeMounts:
Expand All @@ -41,14 +40,17 @@ spec:
- name: skydns
image: gcr.io/google_containers/skydns:2015-03-11-001
args:
# entrypoint = "/skydns"
# command = "/skydns"
- -machines=http://localhost:4001
- -addr=0.0.0.0:53
- -domain={{ pillar['dns_domain'] }}.
ports:
- containerPort: 53
name: dns
protocol: UDP
- containerPort: 53
name: dns-tcp
protocol: TCP
livenessProbe:
exec:
command:
Expand Down
29 changes: 17 additions & 12 deletions cluster/addons/dns/skydns-svc.yaml.in
@@ -1,14 +1,19 @@
apiVersion: v1beta3
kind: Service
apiVersion: v1beta1
id: kube-dns
namespace: default
protocol: UDP
port: 53
portalIP: {{ pillar['dns_server'] }}
containerPort: 53
labels:
k8s-app: kube-dns
metadata:
name: kube-dns
kubernetes.io/cluster-service: "true"
selector:
k8s-app: kube-dns
namespace: default
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
spec:
selector:
k8s-app: kube-dns
portalIP: {{ pillar['dns_server'] }}
ports:
- name: dns
port: 53
protocol: UDP
- name: dns-tcp
port: 53
protocol: TCP
6 changes: 6 additions & 0 deletions contrib/for-tests/dnsutils/Dockerfile
@@ -0,0 +1,6 @@
FROM debian:wheezy
MAINTAINER Tim Hockin "thockin@google.com"

RUN apt-get -q update && \
apt-get install -y dnsutils && \
apt-get clean
8 changes: 8 additions & 0 deletions contrib/for-tests/dnsutils/Makefile
@@ -0,0 +1,8 @@
all:
@echo "try 'make image' or 'make push'"

image:
docker build -t gcr.io/google_containers/dnsutils .

push:
gcloud preview docker push gcr.io/google_containers/dnsutils
30 changes: 17 additions & 13 deletions test/e2e/service.go
Expand Up @@ -67,7 +67,9 @@ var _ = Describe("Services", func() {

probeCmd := "for i in `seq 1 600`; do "
for _, name := range namesToResolve {
probeCmd += fmt.Sprintf("wget -O /dev/null %s && echo OK > /results/%s;", name, name)
// Resolve by TCP and UDP DNS.
probeCmd += fmt.Sprintf(`test -n "$(dig +notcp +noall +answer +search %s)" && echo OK > /results/udp@%s;`, name, name)
probeCmd += fmt.Sprintf(`test -n "$(dig +tcp +noall +answer +search %s)" && echo OK > /results/tcp@%s;`, name, name)
}
probeCmd += "sleep 1; done"

Expand Down Expand Up @@ -102,8 +104,8 @@ var _ = Describe("Services", func() {
},
},
{
Name: "pinger",
Image: "gcr.io/google_containers/busybox",
Name: "querier",
Image: "gcr.io/google_containers/dnsutils",
Command: []string{"sh", "-c", probeCmd},
VolumeMounts: []api.VolumeMount{
{
Expand Down Expand Up @@ -141,16 +143,18 @@ var _ = Describe("Services", func() {
expectNoError(wait.Poll(time.Second*2, time.Second*60, func() (bool, error) {
failed = []string{}
for _, name := range namesToResolve {
_, err := c.Get().
Prefix("proxy").
Resource("pods").
Namespace(api.NamespaceDefault).
Name(pod.Name).
Suffix("results", name).
Do().Raw()
if err != nil {
failed = append(failed, name)
Logf("Lookup using %s for %s failed: %v\n", pod.Name, name, err)
for _, proto := range []string{"udp", "tcp"} {
testCase := fmt.Sprintf("%s@%s", proto, name)
_, err := c.Get().
Prefix("proxy").
Resource("pods").
Namespace(api.NamespaceDefault).
Name(pod.Name).
Suffix("results", testCase).
Do().Raw()
if err != nil {
failed = append(failed, testCase)
}
}
}
if len(failed) == 0 {
Expand Down