第 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 NAME READY STATUS RESTARTS AGE skupper-router-698478664c-6xq72 0/2 CreateContainerConfigError 0 17s skupper-service-controller-698c785d7-dqc8m 0/1 CreateContainerConfigError 0 10s
要确认您遇到这个问题,请搜索类似如下的 Kubernetes 事件:
$ kubectl get events| grep Warning Warning Failed 17m (x4 over 17m) kubelet Error: container has runAsNonRoot and image will run as root
临时解决方案
指定用户 id,如下所示:
$ skupper init --run-as-user 2000
其中 2000 是您要运行容器的用户的 id。您可以将任何非零数指定为 id。
如果要使用 YAML 创建站点,您可以在 data 部分指定用户:
data: name: my-site run-as-user: "2000"
注意这个临时解决方案不会允许您在此站点上部署 Red Hat Service Interconnect 控制台组件。您必须在 OpenShift 站点上部署控制台组件,直到这个问题被解决为止。
SKUPPER-869 - 为 TCP 传输启用闲置连接超时
如果端点被终止,例如客户端被终止,其他端点会观察到半关闭的连接。如果其他端点没有关闭连接或试图向连接发送数据,Skupper 路由器不会释放分配给该连接的内存
临时解决方案
如果可能,请避免使用此行为的客户端服务器配置。例如,如果服务器自动关闭 dormant 连接,或者尝试与客户端通信,则 Skupper 路由器会在客户端终止时释放内存。
SKUPPER-805 - skupper init 在 OCP 3.11 上不适用于普通用户。
临时解决方案
有两个临时解决方案:
- 使用 YAML 配置站点。
-
使用以下权限创建服务帐户来运行
skupper
CLI:
--- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: skupper-non-admin rules: - apiGroups: - "" resources: - configmaps - pods - pods/exec - services - secrets - serviceaccounts verbs: - get - list - watch - create - update - delete - apiGroups: - apps resources: - deployments - statefulsets - daemonsets verbs: - get - list - watch - create - update - delete - apiGroups: - route.openshift.io resources: - routes verbs: - get - list - watch - create - delete - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - create - delete - apiGroups: - projectcontour.io resources: - httpproxies verbs: - get - list - watch - create - delete - apiGroups: - rbac.authorization.k8s.io resources: - rolebindings - roles verbs: - get - list - watch - create - delete
您可以将上面的 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>