FAQ

yurtadm

1. yurtadm join 报错:crictl not found in system path

节点没有安装 docker,安装docker就可以解决此问题。

2. yurtadm join 报错:[ERROR FileExisting-conntrack]: conntrack not found in system path

执行 yum install -y conntrack 然后重新执行 yurtadm join 命令即可。

3. yurtadm init 过程中 helm 安装出错: Release “yurt-app-manager” does not exist. Installing it now. Error: failed to download “openyurt/yurt-app-manager” (hint: running helm repo update may help)

手动执行 helm 安装 yurt-app-manager 的过程:

  1. # 进入集群镜像的上下文目录
  2. cd /var/lib/sealer/data/my-cluster/rootfs
  3. # 安装 yurt-app-manager
  4. helm upgrade --install yurt-app-manager openyurt/yurt-app-manager -n kube-system -f manifests/yurt-app-manager-values.yaml

4. yurtadm init 中途安装失败,如何把环境清理干净?

按照 http://sealer.cool/zh/help/faq.html#how-to-clean-host-environment-manually-when-sealer-apply-failed 来清理。

yurt-tunnel

如何定位kubectl exec命令执行失败原因,可以根据下图中流程来确定。

img

另外还有一些yurt-tunnel相关的issue,也可能为您提供一些帮助。

1. kubectl logs 边缘节点的pod出现:error: Error from server (ServiceUnavailable): the server is currently unable to handle the request ( pods/log xxx)

问题描述:https://github.com/openyurtio/openyurt/issues/984

没有使用最新的 yurt-tunnel-agent:latest 镜像,查看一下镜像创建时间,如果不是最新的镜像,需要重新pull一下镜像。

2. kubectl logs 边缘节点的pod出现:error: You must be logged in to the server (the server has asked for the client to provide credentials ( pods/log xxx))

具体问题描述:https://github.com/openyurtio/openyurt/issues/984

删除 /var/lib/yurttunnel-server/pki 目录,然后重新部署yurt-tunnel:

  1. rm -rf /var/lib/yurttunnel-server/pki
  2. kubectl delete pod yurt-tunnel-server-xxxxxx -n kube-system

3. kubectl exec报错: unable to upgrade connection: fail to setup the tunnel: fail to setup TLS handshake through the Tunnel

kubectl port-forward也可能出现上述类似报错信息。

  1. root@control-plane:~# kubectl port-forward <...>
  2. error: unable to upgrade connection: fail to setup the tunnel: fail to setup TLS handshake through the Tunnel: write unix @->/tmp/interceptor-proxier.sock: write: broken pipe

yurt-tunnel-server/agent 连接无法建立,将会触发这个问题。 比如yurt-tunnel-agent未部署到相应的边缘节点,导致连接没有建立从而触发此问题。 在这种情况下,强烈建议通过 Setup OpenYurt components 确保 yurt-tunnel-server /agent pod 被部署到适当的云和边缘节点。

当节点确定不需要部署yurt-tunnel-server/agent时,但是kubectl exec/port-forward请求还是碰到此问题,则可能与/etc/hosts中的网络设置有关。 比如/etc/hosts包含的网络配置,导致请求会通过yurt-tunnel-server/agent。同时节点上不会运行 yurt-tunnel-agent,所以此请求最终将失败并显示错误消息。

在这种情况下,需要注释掉/etc/hosts中不相关的IP地址和主机名。 更多详情请参考issue 1024