下面是我的k8s集群ip和各个节点名称,我现在实用curl ip:端口不能访问其它节点的ip了, 192.168.119.100 master 192.168.119.101 node1 192.168.119.102 node2 我所有的节点/etc/resolv.conf里面的内容都是 nameserver 223.6.6.6 nameserver 8.8.4.4 这两个是DNS地址,请问我的配置哪里出问题了?怎么改
时间: 2024-03-14 21:47:56 浏览: 179
根据您提供的信息,可能是您的Kubernetes集群中没有配置正确的DNS解析器。您可以尝试以下步骤进行修复:
1. 在 Kubernetes 集群中创建一个 ConfigMap,包含您想要设置的 DNS 服务器。例如,您可以使用以下命令创建一个名为 `kube-dns` 的 ConfigMap:
```bash
kubectl create configmap kube-dns \
--from-literal="nameserver=223.6.6.6" \
--from-literal="nameserver=8.8.4.4"
```
2. 然后,您需要修改 Kubernetes 的 CoreDNS 配置以使用此 ConfigMap。对于Kubernetes 1.10及以上版本,您可以使用以下命令:
```bash
kubectl edit configmap coredns -n kube-system
```
找到 `Corefile` 部分,并添加 `forward . /etc/resolv.conf`,如下所示:
```
.:53 {
forward . /etc/resolv.conf
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
proxy . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
```
3. 保存并退出编辑器,然后重启 CoreDNS:
```bash
kubectl delete pod -l k8s-app=kube-dns -n kube-system
```
等待一段时间,直到 CoreDNS Pod 重新启动并运行。
4. 检查您的节点的 `/etc/resolv.conf` 文件是否已更新为正确的 DNS 服务器:
```bash
cat /etc/resolv.conf
```
如果DNS服务器已正确更新,则您应该能够使用 `curl` 命令访问其他节点的IP地址。
阅读全文