发行注记
有关本发行版本中的功能和问题的最新信息
摘要
第 1 章 新增和改变的功能
红帽构建的 Skupper 现在被称为 Red Hat Service Interconnect。有关以前有限可用性的文档,请参阅 Red Hat Application Interconnect 产品文档。
此发行版本包括以下更改:
-
之前的版本允许您从其他命名空间中公开服务,但如果服务的目标不可用,则
skupper 服务状态
无法报告失败。在这个版本中,skupper init --enable-cluster-permissions
和skupper expose --target-namespace <ns
> 允许您使用其他命名空间中的目标来公开和监控服务。如需更多信息 ,请参阅从其他命名空间中 公开服务。 - 现在,您可以将来自 pod 的流量加密到 Skupper 路由器。
-
现在,您可以从 OpenShift 3.11 集群中公开
deploymentconfig
对象。 - 默认情况下,在创建站点时不会置备控制台。要启用控制台,请参阅使用 Skupper 控制台。
第 2 章 长期支持
Red Hat Service Interconnect 1.4 作为长期支持(LTS)版本提供。在一系列微发行版本(1.4.2、1.4.2、1.4.2、1.4.2.3、1.4.4 等)中,为 Red Hat Service Interconnect 1.4 提供程序错误修正和安全公告,至少为 12 个月。
请注意 LTS 发行流的以下重要点:
- LTS 发行流仅提供程序错误修正。此流中不会添加新增强功能。
- 要保留在受支持的配置中,您必须升级到 LTS 发行流中的最新微版本。
- LTS 版本自 Red Hat Service Interconnect 1.4.1 GA 后至少提供 12 个月的支持。
第 3 章 技术预览功能
这个版本中的一些功能当前还处于技术预览状态。这部分论述了 Red Hat Service Interconnect 1.4 中的技术预览功能。
技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
- Podman 站点
- 在这个版本中,您可以在 RHEL 主机和 Kubernetes 命名空间上创建站点。如需更多信息,请参阅使用 Skupper podman。
- 控制台(Console)
- 在这个版本中,您可以选择性地置备控制台来监控服务网络间的流量流。如需更多信息 ,请参阅使用 Skupper 控制台。此控制台的早期版本使用内存 prometheus 实例来填充流量视觉化。prometheus 实例和指标不适用于公共用途,红帽建议您只测试并提供反馈控制台功能。
第 4 章 支持的配置
命令行界面
- RHEL 8 x86-64
- RHEL 9 x86-64
路由器
用于基于 Kubernetes 的站点,以及容器或机器的网关。
- RHEL 8 x86-64
- RHEL 9 x86-64
注意:RHSI 不支持作为消息传递路由器使用。
RHSI Operator
Operator 仅支持 OpenShift 4.x。
OpenShift 版本
- OpenShift 3.11
- OpenShift 4.10, 4.11 和 4.12
- ROSA 和 ARO
- OpenShift Container Platform 和 OpenShift Dedicated
支持将所需组件镜像到断开连接的网络中安装 RHSI。
Ingress 类型
- LoadBalancer
- OpenShift Routes
CPU 架构
- x86-64
Podman 站点:
基于 podman 的站点是一个技术预览功能。
您只能在支持 Skupper CLI 和路由器的操作系统版本上创建 Podman 站点。
Kubernetes 发行版本
红帽在 Kubernetes 的任何 CNCF 认证分发 中提供了运行 Red Hat Service Interconnect 的帮助。
但请注意,Red Hat Service Interconnect 仅在 OpenShift 中测试。
Ingress 类型
- Contour
- nginx - 这需要配置 TLS 透传
- NodePort
升级
红帽支持从一个下游次版本升级到下一个次版本,而无需跳过。虽然红帽旨在在次版本间具有兼容性,但我们建议将所有站点升级到最新版本。
如果您的应用程序需要长期实时连接,如 Kafka 客户端,请考虑将负载均衡器用作入口,而不是代理入口,如 OpenShift 路由。如果您使用 OpenShift 路由作为入口,则预期配置路由时中断。
有关最新版本的详情,请参考 Red Hat Service Interconnect 支持的配置。
第 5 章 已弃用的功能
本节论述了支持但已从 Red Hat Service Interconnect 中弃用的功能。
- 协议
-
http
和http2
协议已弃用,当提供类似可观察性的功能可用时,将在以后的发行版本中删除。红帽建议使用tcp
协议,除非需要http
或http2
observability。
第 6 章 从 Red Hat Application Interconnect 版本 1 升级站点
此 Red Hat Service Interconnect 发行版本与 Red Hat Application Interconnect 版本 1 兼容,但红帽建议将所有站点升级到 1.4 版本。
更新所有站点,以确保 Service Interconnect 的同一版本在您的服务网络中运行。在更新的过程中,可能会有短暂的停机时间。
要升级站点:
$ skupper update
如果您之前启用了控制台(这是默认设置),则升级的站点也会启用控制台。Service Interconnect 1.4 的默认设置是没有启用控制台。Service Interconnect 的控制台是一个技术预览功能,如 第 3 章 技术预览功能 所述。
要升级网关,请删除网关并重新创建。
端口协商限制
如果您的协议协商通信端口,如活跃的 FTP,则无法使用该协议在服务网络中进行通信。
第 7 章 修复的问题
如需了解在补丁版本中修复的问题列表,请参阅 Red Hat Service Interconnect 1.4.x 解决问题。
第 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>
附录 A. 关于 Service Interconnect 文档
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
更新于 2024-06-04