External nameserver trouble for kubernetes pods

2/21/2016

My pods can not resolve external world ( for ex for mail, ... ) how can I add google nameserver to the cluster ? For info the host resolve it without problem and has nameserver.

-- Julien Du Bois
kubernetes

1 Answer

2/22/2016

The problem is that the liveness check made skids fail, I changed it like bellow.

apiVersion: v1 kind: ReplicationController metadata: name: kube-dns-v10 namespace: kube-system labels: k8s-app: kube-dns version: v10 kubernetes.io/cluster-service: "true" spec: replicas: 1 selector: k8s-app: kube-dns version: v10 template: metadata: labels: k8s-app: kube-dns version: v10 kubernetes.io/cluster-service: "true" spec: containers: - name: etcd image: gcr.io/google_containers/etcd:2.0.9 resources:

      # keep request = limit to keep this container in guaranteed class
      limits:
        cpu: 100m
        memory: 50Mi
      requests:
        cpu: 100m
        memory: 50Mi
    command:
    - /usr/local/bin/etcd
    - -data-dir
    - /var/etcd/data
    - -listen-client-urls
    - [http://127.0.0.1:2379,http://127.0.0.1:4001](http://127.0.0.1:2379,http://127.0.0.1:4001)
    - -advertise-client-urls
    - [http://127.0.0.1:2379,http://127.0.0.1:4001](http://127.0.0.1:2379,http://127.0.0.1:4001)
    - -initial-cluster-token
    - skydns-etcd
    volumeMounts:
    - name: etcd-storage
      mountPath: /var/etcd/data
  - name: kube2sky
    image: gcr.io/google\_containers/kube2sky:1.12
    resources:
      # keep request = limit to keep this container in guaranteed class
      limits:
        cpu: 100m
        memory: 50Mi
      requests:
        cpu: 100m
        memory: 50Mi
    args:
    # command = "/kube2sky"
    - --domain=cluster.local
  - name: skydns
    image: gcr.io/google\_containers/skydns:2015-10-13-8c72f8c
    resources:
      # keep request = limit to keep this container in guaranteed class
      limits:
        cpu: 100m
        memory: 50Mi
      requests:
        cpu: 100m
        memory: 50Mi
    args:
    # command = "/skydns"
    - -machines=[http://127.0.0.1:4001](http://127.0.0.1:4001)
    - -addr=0.0.0.0:53
    - -ns-rotate=false
    - -domain=cluster.local.
    ports:
    - containerPort: 53
      name: dns
      protocol: UDP
    - containerPort: 53
      name: dns-tcp
      protocol: TCP
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
        scheme: HTTP
      initialDelaySeconds: 30
      timeoutSeconds: 15
    #readinessProbe:
      #httpGet:
        #path: /healthz
        #port: 8080
        #scheme: HTTP
      #initialDelaySeconds: 1
      #timeoutSeconds: 5
  - name: healthz
    image: gcr.io/google\_containers/exechealthz:1.0
    resources:
      # keep request = limit to keep this container in guaranteed class
      limits:
        cpu: 10m
        memory: 20Mi
      requests:
        cpu: 10m
        memory: 20Mi
    args:
    - -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null
    - -port=8080
    ports:
    - containerPort: 8080
      protocol: TCP
  volumes:
  - name: etcd-storage
    emptyDir: {}
  dnsPolicy: Default  # Don't use cluster DNS.
-- Julien Du Bois
Source: StackOverflow