Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes:获取名称解析错误_Kubernetes_Minikube - Fatal编程技术网

Kubernetes:获取名称解析错误

Kubernetes:获取名称解析错误,kubernetes,minikube,Kubernetes,Minikube,我正在将php和redis部署到一个本地minikube集群,但在名称解析方面出现了以下错误 警告:Redis::connect():php\u network\u getaddress:getaddrinfo失败:第4行/app/Redis.php中的名称解析暂时失败 警告:Redis::connect():connect()失败:php\u network\u getaddresses:getaddrinfo失败:第4行/app/Redis.php中的名称解析暂时失败 致命错误:未捕获的Re

我正在将php和redis部署到一个本地minikube集群,但在名称解析方面出现了以下错误

警告:Redis::connect():php\u network\u getaddress:getaddrinfo失败:第4行/app/Redis.php中的名称解析暂时失败
警告:Redis::connect():connect()失败:php\u network\u getaddresses:getaddrinfo失败:第4行/app/Redis.php中的名称解析暂时失败
致命错误:未捕获的RedisException:Redis服务器在/app/Redis.php:5堆栈跟踪中消失:#0/app/Redis.php(5):Redis->ping()#1{main}抛出到第5行的/app/Redis.php中
我正在使用以下配置文件:

apache-php.yaml

apiVersion:apps/v1 种类:部署 元数据: 名称:Web服务器 标签: 应用程序:apache 规格: 副本:1份 选择器: 火柴标签: 应用程序:apache 模板: 元数据: 标签: 应用程序:apache 规格: 容器: -名称:php apache 图片:webdevops/php apache imagePullPolicy:如果不存在 端口: -集装箱港口:80 体积数量: -名称:应用程序代码 mountPath:/app 卷数: -名称:应用程序代码 主机路径: 路径:/minikubeMnt/src --- 版本:v1 种类:服务 元数据: 名称:web服务 标签: 应用程序:apache 规格: 类型:节点端口 端口: -港口:80 协议:TCP 选择器: 应用程序:apache 亚马尔酒店

apiVersion:apps/v1 种类:部署 元数据: 姓名:redis 标签: 应用程序:redis 规格: 副本:1份 选择器: 火柴标签: 应用程序:redis 模板: 元数据: 标签: 应用程序:redis 规格: 容器: -姓名:redis 图片:redis:5.0.4 imagePullPolicy:如果不存在 端口: -集装箱港口:6379 --- 版本:v1 种类:服务 元数据: 名称:redis服务 规格: 类型:节点端口 端口: -港口:6379 目标港:6379 选择器: 应用程序:redis 我正在使用下面的PHP代码访问Redis,我已经将下面的代码装载到ApachePHP部署中


考虑在此处使用K8S
Livelity
readiness
探测器,以从错误中自动恢复。您可以找到更多相关信息

您可以使用
initContainer
来检查redis服务器的可用性,使用bash
,同时使用
break
循环,然后让phpache启动。有关更多信息,请查看中的场景2


作为群集IP的Redis服务
请确保redis服务器在您的Web服务器之前运行。我看到Web服务器部署比redis旧,看起来你是在redis之前启动你的应用程序,并且它没有找到redis。当我ssh到两个pod中时,两个都工作了。当我ssh到phpod并运行“phpredis.php”时,也会得到名称解析错误。我确信k8没有按名称公开服务是一个问题。甚至在将上述配置部署到digitalocean群集后也会出现同样的错误。我没有在某些入口点或启动脚本中使用redis。redis处于打开状态,然后我使用http请求调用php文件。使用cli php运行文件时出现相同错误。如果用IP替换服务器名称,是否有效?anmol sharma在^^上面添加了一些注释。这可能会澄清问题。@Saifullahkhan=>Redis通常用作后端服务,不需要将其公开为NodePort,而是使用clusterIP,请参阅上面答案中的部分。=>如果将redis主机设置为
redis service
不起作用,请尝试使用完整的dns名称,如
redis service.default.svc.cluster.local
=>还可以使用命令
kubectl get svc--namespace=kube system
检查miniKube中的dns服务是否工作正常。有关调试DNS签出的详细信息,请参阅此-
REDIS_SERVICE_PORT=tcp://10.104.115.148:6379
REDIS_SERVICE_PORT_6379_TCP=tcp://10.104.115.148:6379
REDIS_SERVICE_SERVICE_PORT=6379
REDIS_SERVICE_PORT_6379_TCP_ADDR=10.104.115.148
REDIS_SERVICE_PORT_6379_TCP_PROTO=tcp```
apiVersion: v1
kind: Service
metadata:
  name: redis-service
spec:
  type: clusterIP
  ports:
    - port: 6379
      targetPort: 6379
  selector:
    app: redis