KubeSphere:DockerHub镜像找不到的问题

临时方案(不推荐)

我在使用KubeSphere创建有状态副本集的时候,选择需要部署的容器mysql,就显示镜像不存在(当让不止mysql、所有的镜像都找不到),如下图:

image-20211225223427221

后来我在看ks-apiserver这个deployment的时候,看到对应容器的日志:

image-20211225223544085

它这里访问dockerhub的网址去寻找镜像,但是由10.96.0.10的DNS服务器去解析,但是解析不了。

并且我还发现:能访问外界ip就是访问不了域名。

image-20211226010954591

这立马就能想到是DNS域名解析的问题。

DNS配置在pod的容器的/etc/resolv.conf文件中,所以只要在/etc/resolv.conf临时配置一个nameserver就行了,如下所示:

image-20211226010837448

但是k8s跑了很多pod,每一个pod中跑了若干个容器,我们这样一个一个修改肯定不行,治标不治本。

推荐方案

内部域名,KubeDNS会直接解析,对于外部域名,KubeDNS会丢给上一级DNS服务器解析,这个上一级DNS服务器就依赖于resolv.conf。

所以我们只要保证宿主机的/etc/resolv.conf正确就行了:

vi /etc/sysconfig/network-scripts/ifcfg-ens192,这里具体路径视情况而定。

添加两行DNS配置。

image-20211226012106024

添加完成后,service network restart

cat /etc/resolv.conf

image-20211226012247527

DNS配置就被写入到/etc/resolv.conf中。

我们再去kubesphere中去看,搜索mysql就能搜索到了:

image-20211226012406965

ks-apiserver也不报错了:

image-20211226012428458

原文地址:https://www.cnblogs.com/wwjj4811/p/15732124.html