标签: skydns

无法从pod内部ping ClusterIP,DNS无法用于google.com等外部域

我在Bare-metal/Ubuntu上安装了Kubernetes.我正在使用6b649d7f9f2b09ca8b0dd8c0d3e14dcb255432d1git.我用cd kubernetes/cluster; KUBERNETES_PROVIDER=ubuntu ./kube-up.sh后来cd kubernetes/cluster/ubuntu; ./deployAddons.sh启动集群.一切都很顺利,集群起来了.

我的/ubuntu/config-default.sh情况如下:

# Define all your cluster nodes, MASTER node comes first"
# And separated with blank space like <user_1@ip_1> <user_2@ip_2> <user_3@ip_3> 
export nodes=${nodes:-"root@192.168.48.170 root@192.168.48.180"}

# Define all your nodes role: a(master) or i(minion) or ai(both master and minion), must be the order same 
role=${role:-"ai i"}
# If it practically impossible to set an array as an environment variable
# from a script, so assume variable is …
Run Code Online (Sandbox Code Playgroud)

kubernetes skydns

9
推荐指数
2
解决办法
9776
查看次数

Kubernetes DNS在Kubernetes 1.2中失败

我正在尝试在Centos 7上的Kubernetes 1.2中设置DNS支持.根据文档,有两种方法可以做到这一点.第一个适用于"支持的kubernetes集群设置",并涉及设置环境变量:

ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}"
DNS_SERVER_IP="10.0.0.10"
DNS_DOMAIN="cluster.local"
DNS_REPLICAS=1
Run Code Online (Sandbox Code Playgroud)

我将这些设置添加到/ etc/kubernetes/config并重新启动,没有任何效果,所以要么我没有受支持的kubernetes集群设置(那是什么?),要么设置其环境还需要其他东西.

第二种方法需要更多的手动设置.它为kubelet添加了两个标志,我通过更新/ etc/kubernetes/kubelet来设置它包括:

KUBELET_ARGS="--cluster-dns=10.0.0.10 --cluster-domain=cluster.local"
Run Code Online (Sandbox Code Playgroud)

并重新启动kubelet systemctl restart kubelet.然后有必要启动复制控制器和服务.上面引用的文档页面为此提供了一些模板文件,需要进行一些编辑,以进行本地更改(我的Kubernetes API服务器侦听主机名的实际IP地址而不是127.0.0.1,因此需要添加 - kube-master-url设置)并删除一些Salt依赖项.当我这样做时,复制控制器成功启动了四个容器,但kube2sky容器在完成初始化后约一分钟终止:

[david@centos dns]$ kubectl --server="http://centos:8080" --namespace="kube-system" logs -f kube-dns-v11-t7nlb -c kube2sky
I0325 20:58:18.516905       1 kube2sky.go:462] Etcd server found: http://127.0.0.1:4001
I0325 20:58:19.518337       1 kube2sky.go:529] Using http://192.168.87.159:8080 for kubernetes master
I0325 20:58:19.518364       1 kube2sky.go:530] Using kubernetes API v1
I0325 20:58:19.518468       1 kube2sky.go:598] Waiting for service: default/kubernetes
I0325 20:58:19.533597       1 kube2sky.go:660] Successfully added DNS record for Kubernetes service.
F0325 20:59:25.698507       1 …
Run Code Online (Sandbox Code Playgroud)

dns kubernetes skydns

5
推荐指数
1
解决办法
1454
查看次数

Kubernetes多集群服务发现

如何从同一项目中的另一个Kubernetes集群调用Kubernetes集群公开的服务有关.

自从Kubernetes自7月以来发生了很大的变化以来再次询问.

语境:

我正在开发一个具有多个集群的基础架构,用于不同的目的,例如:

  • 群集A运行服务/应用程序,创建供消费的数据
  • 群集B运行服务/应用程序,消耗群集A中的应用程序创建的数据
  • Cluster C运行Redis,Memcache等数据服务.

所有群集都在default命名空间中.

问题:

在Kubernetes中,每个集群都有自己的kubernetes(在default命名空间中)和kube-dns(在kube-system命名空间中)服务,具有不同的IP.

这种设置会发生的情况是,上面的集群A和B中的服务无法发现(在服务发现术语中),比如集群C中的Redis.因此nslookup redis.default.svc.cluster.local来自集群A/B中的一个服务会返回** server can't find redis.default.svc.cluster.local: NXDOMAIN.注意:这适用于集群C内部.

我读了很多关于kube-dns的文档,几乎都假设有一个集群设置.

集群信息:

以下是/etc/resolv.conf来自两个不同的群集,显示DNS名称服务器,没有共同的kube-dns祖先:

群集A:

nameserver 10.67.240.10
nameserver 169.254.169.254
nameserver 10.240.0.1
search default.svc.cluster.local svc.cluster.local cluster.local c.project-name.internal. 1025230764914.google.internal. google.internal.
Run Code Online (Sandbox Code Playgroud)

群集C:

nameserver 10.91.240.10
nameserver 169.254.169.254
nameserver 10.240.0.1
search default.svc.cluster.local svc.cluster.local cluster.local c.project-name.internal. google.internal.
options ndots:5
Run Code Online (Sandbox Code Playgroud)

这两个集群都使用它们各自的IP来运行这些服务,以用于kube-system命名空间中的集群:

NAME                  LABELS                                                                           SELECTOR           
kube-dns              k8s-app=kube-dns,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeDNS   k8s-app=kube-dns
kube-ui               k8s-app=kube-ui,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeUI     k8s-app=kube-ui
monitoring-heapster   kubernetes.io/cluster-service=true,kubernetes.io/name=Heapster …
Run Code Online (Sandbox Code Playgroud)

dns service-discovery kubernetes skydns google-kubernetes-engine

3
推荐指数
1
解决办法
1956
查看次数

kubernetes skydns无法转发请求

我正在创建一个由1个主2节点kubernetes组成的集群.我正在尝试基于以下内容创建skydns:

apiVersion: v1
kind: ReplicationController
metadata:
  name: kube-dns-v11
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    version: v11
    kubernetes.io/cluster-service: "true"
spec:
  replicas: 1
  selector:
    k8s-app: kube-dns
    version: v11
  template:
    metadata:
      labels:
        k8s-app: kube-dns
        version: v11
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: etcd
        image: gcr.io/google_containers/etcd-amd64:2.2.1
        # resources:
        #   # TODO: Set memory limits when we've profiled the container for large
        #   # clusters, then set request = limit to keep this container in
        #   # guaranteed class. Currently, this container falls into the
        # …
Run Code Online (Sandbox Code Playgroud)

dns kubernetes skydns

3
推荐指数
1
解决办法
5935
查看次数