第 8 章 已知问题
SKUPPER-1723 - 1.4 发行版本的连接和状态行为
服务网络的一些行为是意外的:
- 取消服务不会终止建立的连接。
- 'skupper network status' 命令显示已取消公开的服务的输出。
临时解决方案
在取消暂停该服务前,手动关闭与该服务关联的所有连接。
注意这个问题已在 1.5 版本中解决。
SKUPPER-306 - Skupper 网络状态不适用于大量站点
根据服务网络的拓扑,s
kupper
网络状态可能会超时,且不会提供所需的信息。临时解决方案
您可以扩展 time-out 来提供更多要解析的命令,例如:
skupper network status --timeout 10m
或者,升级到 Red Hat Service Interconnect 1.5,它有不同的机制来解析网络状态。
SKUPPER-1069 - skupper init 在非 OpenShift 集群上失败
如果您在非 OpenShift 集群上创建站点,您可能会遇到创建站点的问题,但
skupper status
报告待处理
。如果检查 pod,您可能会看到类似如下的状态:
kubectl get pods
$ kubectl get pods NAME READY STATUS RESTARTS AGE skupper-router-698478664c-6xq72 0/2 CreateContainerConfigError 0 17s skupper-service-controller-698c785d7-dqc8m 0/1 CreateContainerConfigError 0 10s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要确认您遇到这个问题,请搜索类似如下的 Kubernetes 事件:
kubectl get events| grep Warning
$ kubectl get events| grep Warning Warning Failed 17m (x4 over 17m) kubelet Error: container has runAsNonRoot and image will run as root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 临时解决方案
指定用户 id,如下所示:
skupper init --run-as-user 2000
$ skupper init --run-as-user 2000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中 2000 是您要运行容器的用户的 id。您可以将任何非零数指定为 id。
如果要使用 YAML 创建站点,您可以在 data 部分指定用户:
data: name: my-site run-as-user: "2000"
data: name: my-site run-as-user: "2000"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这个临时解决方案不会允许您在此站点上部署 Red Hat Service Interconnect 控制台组件。您必须在 OpenShift 站点上部署控制台组件,直到这个问题被解决为止。
SKUPPER-869 - 为 TCP 传输启用闲置连接超时
如果端点被终止,例如客户端被终止,其他端点会观察到半关闭的连接。如果其他端点没有关闭连接或试图向连接发送数据,Skupper 路由器不会释放分配给该连接的内存
临时解决方案
如果可能,请避免使用此行为的客户端服务器配置。例如,如果服务器自动关闭 dormant 连接,或者尝试与客户端通信,则 Skupper 路由器会在客户端终止时释放内存。
SKUPPER-805 - skupper init 在 OCP 3.11 上不适用于普通用户。
临时解决方案
有两个临时解决方案:
- 使用 YAML 配置站点。
-
使用以下权限创建服务帐户来运行
skupper
CLI:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以将上面的 YAML 保存到
role.yaml
中,应用它并将角色绑定到用户名:oc apply -f role.yaml oc policy add-role-to-user skupper-non-admin <username> -n <namespace-name> --role-namespace=<namespace-name>
$ oc apply -f role.yaml $ oc policy add-role-to-user skupper-non-admin <username> -n <namespace-name> --role-namespace=<namespace-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow