我正在尝试在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)