私は3 Minon/Master(1人のmaster/minion、2 minions)にKubernetes 1.2.4をインストールし、SkyDNSアドオンをインストールしました。 SSL証明書の問題を修正した後、私はSkyDNSが動作していることを知っています。しかし、kubeletesはまだ私はクラスタDNSとクラスタドメインを設定していないと言います。Kubernetes KubeletはMissingClusterDNS(SkyDNS)でDNSが設定されていないと言います
(下部の編集を参照してください)しかし、あなたは--cluster-dns=192.168.0.10 --cluster-domain=cluster.local
見ることができます:私は見
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busybox
restartPolicy: Always
:
kubectl describe pod busybox
7m 7m 2 {kubelet k8s-master.XXX} Warning MissingClusterDNS kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
I
ps ax | grep kubelet
18717 ? Ssl 0:04 /opt/kubernetes/bin/kubelet --logtostderr=true --v=0 --address=0.0.0.0 --port=10250 --hostname-override=k8s-minion-1 --api-servers=http://k8s-master:8080 --allow-privileged=false --cluster-dns=192.168.0.10 --cluster-domain=cluster.local
はこのポッドの起動レストアこのポッドを起動する前にted kubeleteサービスを実行してください。他のポッドは実行されていません。
私は "--dns" オプションを使用ドッキングウィンドウコンテナを起動した場合:
(私は私のクライアントのDNSを隠されてきた)
docker run --rm -it --dns 192.168.0.10 busybox nslookup cluster.local
Server: 192.168.0.10
Address 1: 192.168.0.10
Name: cluster.local
Address 1: 192.168.0.10
Address 2: 172.16.50.2
Address 3: 192.168.0.1
Address 4: 172.16.96.3
docker run --rm -it --dns 192.168.0.10 busybox cat /etc/resolv.conf
search XXX YYYY
nameserver 192.168.0.10
absolutly普通のことだ。しかしポッドは何か他のもの言う:
をkubectl exec busybox -- nslookup cluster.local
Server: XXX.YYY.XXX.YYY
Address 1: XXX.YYYY.XXXX.YYY XXX.domain.fr
nslookup: can't resolve 'cluster.local'
error: error executing remote command: Error executing command in container: Error executing in Docker Container: 1
" - dns"オプションをドッカーデーモンに設定しようとしましたが、エラーは同じです。
kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kube-dns-v11-osikn 4/4 Running 0 13m
そして:
は、そのログを参照してくださいkubectl logs kube-dns-v11-osikn kube2sky --namespace=kube-system
I0621 15:44:48.168080 1 kube2sky.go:462] Etcd server found: http://127.0.0.1:4001
I0621 15:44:49.170404 1 kube2sky.go:529] Using https://192.168.0.1:443 for kubernetes master
I0621 15:44:49.170422 1 kube2sky.go:530] Using kubernetes API <nil>
I0621 15:44:49.170823 1 kube2sky.go:598] Waiting for service: default/kubernetes
I0621 15:44:49.209691 1 kube2sky.go:660] Successfully added DNS record for Kubernetes service.
それはありませんが、問題がある "kubernetesのAPI
編集:私はkube2skyがマスターに連絡できるように、ポッドにkube-master-urlを強制しました。<nil>
の使用しますか"?
kubectl logs kube-dns-v11-osikn skydns --namespace=kube-system
2016/06/21 15:44:50 skydns: falling back to default configuration, could not read from etcd: 100: Key not found (/skydns/config) [10]
2016/06/21 15:44:50 skydns: ready for queries on cluster.local. for tcp://0.0.0.0:53 [rcache 0]
2016/06/21 15:44:50 skydns: ready for queries on cluster.local. for udp://0.0.0.0:53 [rcache 0]
注あまりにもこの:
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default busybox 1/1 Running 0 17m
kube-system kube-dns-v11-osikn 4/4 Running 0 18m
は、だから私はskydnsに問題を持っていないしました。
私はこの問題がkubeletから来ていると確信しています。私は/ var/lib/kubeletを削除して、クラスタ全体を再起動しようとしました。私はdnsをインストールする前後にkubeleteサービスを再起動しようとしました。私はドッカーの設定を変更し、あとで " - dns"オプションを削除しました。同じ動作をしています.Docker + dnsはOKです.KubeletはMissingClusterDNSにkubeletに設定済みのクラスタDNSがないというエラーを出します。
よろしくお願いします。ヘルプ(1つのより多くの時間:))
EDITS:
kubectl exec busybox -- nslookup kubernetes.default.svc.cluster.local 192.168.0.10
Server: 192.168.0.10
Address 1: 192.168.0.10
Name: kubernetes.default.svc.cluster.local
Address 1: 192.168.0.1
: は - 私は私の空のDNSを使用するようにnslookupを強制することができます - 今kube2sky kube2skyオプション を強制に関する
<nil>
APIバージョンを文句はありません
しかし、「MissingClusterDNS」エラーがポッドの作成に残って、「--cluster-DNS」kubeletがないかのように起動オプションと「--clusterドメイン」
@Brendanバーンズ:
kubectl get services --namespace=kube-system
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns 192.168.0.10 <none> 53/UDP,53/TCP 12m
同じ問題がありますが、varsを分割してkubeletサービスを再起動すると、それは私のために実行されません\ $ { KUBELET_DOMAIN} \ ' – Jonathan
新しいディスカッションを開いてここにリンクできますか?私は見てみましょう。 – Metal3d
私は何とか、上記の解決策でそれを修正しました。私の現在の設定は次のようになります。 'KUBELET_DNS = - cluster-dns = {{cluster_dns}} KUBELET_DOMAIN = - cluster-domain = cluster.local'問題は私が '='記号テンプレート変数 – Jonathan