失敗メモ

dial tcp: lookup index.docker.io on 10.0.0.10:53: server misbehavingがでてコンテナが作成されない!

はじめに

knativeでサーバレス環境を作っていたときにservice.yamlをapplyしてもコンテナが作成されない事象が発生しました。ハマったのでここにメモしておきます。

現象

はじめにでも言いましたが、service.yamlをapplyしてもコンテナが作成されません。
なんだこれ?と思ってkubectl get ksvcでknative serviceの状態を見るとRevisionMissingになっている…
じゃあRevisionは?とkubectl get revisionで状態をみるとContainerMissingになってて…

ならばとkubectl describe revisionで中身見てみると 、Get https://index.docker.io/v2/: dial tcp: lookup index.docker.io on 10.0.0.10:53: server misbehaving
の文字が…!

解決方法

解説

自分の環境ではDNSが悪さしてました。いや悪さっていうか自分が悪かっただけなんですが。
knativeはホストマシンの/etc/resolv.confをみてkube-dnsというDNS用のコンテナを立ち上げます。そしてそのDNS用コンテナを使って外部なんかと通信するわけですね。
このresolv.confを見るというのがやっかいでDNSをGUIで設定するとresolv.conf に記述されないんです…
そのためresolv.confにはdnsの設定が書かれておらず、 そしてそれを参照して作られるkube-dnsはdnsの設定がないままコンテナが作成されます。そのためあのようなエラーが出たというわけです。

対処

resolv.confにnameserverを記述すればOkです。あとはもう一度k8s環境を立ち上げましょう。

おわりに

knativeの情報少なすぎるよ…

そーたの技術ブログ

コメント

タイトルとURLをコピーしました