|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
|
这是尚未发布的文档。 SUSE® Storage 1.12 (Dev). |
使用 Rancher 安装 SUSE Storage
通过 Rancher 应用市场安装 SUSE Storage 的一个好处是 Rancher 提供对 SUSE Storage 用户界面的身份验证。
如果有可用的新版本 SUSE Storage,您将在 Upgrade Available 屏幕上看到一个 Apps Marketplace 标志。您可以点击 Upgrade 按钮来升级 Longhorn Manager.有关升级的更多信息,请 点击这里。
先决条件
安装 SUSE Storage 的 Kubernetes 集群中的每个节点必须满足 这些要求。
可以使用 Longhorn 命令行工具 检查 SUSE Storage 环境中的潜在问题。
身份验证
要创建 longhorn-system 名称空间,请运行以下命令:
kubectl create namespace longhorn-system
按照 Kubernetes 身份验证文档 在 longhorn-system 名称空间中创建一个秘密。
kubectl create secret docker-registry application-collection \
--docker-server=dp.apps.rancher.io \
--namespace=longhorn-system \
--docker-username=<your-username-or-service-account-username> \
--docker-password=<access-token-or-service-account-secret>
安装
要从 SUSE 应用集合安装 SUSE Storage,而不是 Rancher 默认的 Longhorn 社区图表,请在 Rancher 中配置一个新的储存库,指向 SUSE 应用集合图表储存库以获取 SUSE Storage。有关该过程的详细信息以及如何验证图表储存库,请参考 本指南。
以下步骤提供了在 Rancher 中的示例。有关详细说明,请参阅 Rancher 文档。
-
在 Rancher 中,转到 应用 > 存储库。
-
点击 创建 按钮。
-
在单选按钮中选择 OCI 储存库,并输入 OCI 图表注册表路径
oci://dp.apps.rancher.io/charts/suse-storage以及身份验证,然后点击 创建。
储存库应成功添加。
-
在 应用 > 图表 中,您可以看到
suse-storage可供安装。
-
单击“安装”。
-
可选:选择要安装 SUSE Storage 的项目。
-
可选:自定义默认设置。
如果您使用 SUSE Rancher Prime,则必须启用 Container Registry for Rancher System Container Images 并将值设置为
dp.apps.rancher.io,以确保从正确的注册表中拉取镜像。
-
单击“下一步”。在 yaml 编辑器中,在
global.imagePullSecrets字段中添加值application-collection。
-
点击下一步。SUSE Storage 将安装在
longhorn-system名称空间中。
-
点击 SUSE Storage 应用图标以导航到 SUSE Storage 仪表板。
安装 SUSE Storage 后,您可以通过从 Rancher 左侧面板导航到 Longhorn 选项来访问 SUSE Storage 用户界面.
启用网络策略访问用户界面
请注意,当启用网络策略时,从 Rancher 访问用户界面可能会受到限制。
Rancher 通过一个名为 remotedialer 的服务与 SUSE Storage 用户界面进行交互,该服务促进了 Rancher 与其管理的下游集群之间的连接。该服务允许用户代理通过 Rancher 服务器上的一个端点访问集群。Remotedialer 通过使用 Kubernetes API 服务器作为代理连接到 SUSE Storage 用户界面服务。
然而,当启用网络策略时,Kubernetes API 服务器可能无法访问不同节点上的 pod。这是因为 Kubernetes API 服务器在主机的网络名称空间内运行,而没有专用的每个 pod IP 地址。如果您使用 Calico CNI 插件,主机的网络名称空间中的任何进程(例如 API 服务器)连接到 pod 时,会触发 Calico 在将数据包转发到远程主机之前将其封装在 IPIP 中。隧道地址被选择为源,以确保远程主机知道如何正确封装返回数据包。
换句话说,为了使代理能够与网络策略一起工作,必须识别每个节点的隧道 IP,并在策略中明确允许。
您可以通过以下方式找到隧道 IP:
$ kubectl get nodes -oyaml | grep "Tunnel"
projectcalico.org/IPv4VXLANTunnelAddr: 10.42.197.0
projectcalico.org/IPv4VXLANTunnelAddr: 10.42.99.0
projectcalico.org/IPv4VXLANTunnelAddr: 10.42.158.0
projectcalico.org/IPv4VXLANTunnelAddr: 10.42.80.0
接下来,使用隧道 IP 在网络策略中允许流量。每当向集群添加新节点时,您可能需要更新网络策略。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: longhorn-ui-frontend
namespace: longhorn-system
spec:
podSelector:
matchLabels:
app: longhorn-ui
policyTypes:
- Ingress
ingress:
- from:
- ipBlock:
cidr: 10.42.197.0/32
- ipBlock:
cidr: 10.42.99.0/32
- ipBlock:
cidr: 10.42.158.0/32
- ipBlock:
cidr: 10.42.80.0/32
ports:
- port: 8000
protocol: TCP
解决此问题的另一种方法是使用 egress-selector-mode: cluster 运行服务器节点。有关更多信息,请参见 RKE2 服务器配置参考 和 K3s 控制平面出口选择器配置。