在 OpenShift 上安装连接链接
前言
对红帽文档提供反馈
红帽感谢您对产品文档的反馈。
要进行改进,请创建一个 Jira 问题,并描述您推荐的更改。提供尽可能多的详细信息,以帮助文档团队快速定位请求。
前提条件
- 您有红帽客户门户网站帐户。此帐户允许您登录到 Red Hat Jira Software 实例。如果您没有帐户,系统会提示您创建一个帐户。
步骤
- 单击以下链接: 创建问题。
- 在 Summary 文本框中,输入问题的简短描述。
在 Description 文本框中,提供以下信息:
- 找到此问题的页面的 URL。
- 有关此问题的详细描述。您可以将信息保留在其他字段中,使其默认值。
- 在 Reporter 字段中输入 JIRA 用户名。
- 点 Create 将 JIRA 问题提交到文档团队。
感谢您抽出时间提供反馈。
第 1 章 连接链接先决条件和权限
在安装连接链接前,您必须确保您可以使用正确的用户权限访问环境中所需的平台。
1.1. 所需的平台和组件
- 红帽帐户
- 您有一个红帽帐户,其中有用于连接链接和 OpenShift 的订阅。
- OpenShift
- 安装了 OpenShift Container Platform 4.17 或更高版本,或者您可以访问受支持的 OpenShift 云服务。请参阅 OpenShift Container Platform 安装文档。
-
使用
cluster-admin
角色登录到 OpenShift 集群。 -
已安装
kubectl
或oc
命令。
- OpenShift Service Mesh
- Red Hat OpenShift Service Mesh 3.0 作为您的网关 API 供应商安装。请参阅 OpenShift Service Mesh 安装文档。
- 您已在 OpenShift Service Mesh 3.0 中启用了 Gateway API 功能。请参阅有关启用网关 API 的 OpenShift Service Mesh 文档。
- cert-manager Operator for Red Hat OpenShift
已安装 cert-manager Operator for Red Hat OpenShift 1.15 来管理您的网关的 TLS 证书。请参阅 cert-manager Operator for Red Hat OpenShift 文档。
注意在使用连接链接 TLSPolicy 之前,您必须为云供应商平台设置证书签发者。请参阅有关配置 ACME 签发者的 OpenShift 文档。
1.2. 可选平台和组件
- DNSPolicy
对于 DNSPolicy,您有其中一个受支持的云 DNS 供应商的帐户,并为连接链接设置了托管区。如需了解更多详细信息,请参阅您的云 DNS 供应商文档:
- RateLimitPolicy
对于速率限制策略,您有一个基于 Redis 的共享数据存储,用于多集群环境中的速率限制计数器。有关如何安装和配置安全且高度可用的数据存储的详情,请参考 Redis 兼容数据存储的文档:
- AuthPolicy
- 对于 AuthPolicy,如果环境中需要此功能,您可以安装红帽构建的 Keycloak。如需了解更多详细信息,请参阅 红帽构建的 Keycloak 文档。
- Observability(可观察性)
- 对于 Observability,OpenShift 用户工作负载监控必须配置为对中央存储系统(如 Thanos )进行远程写入。如需了解更多详细信息,请参阅 连接链路 Observability 指南。
其他资源
- 如需了解更多详细信息,请参阅 红帽连接链接的支持的配置。
第 2 章 在 OpenShift Web 控制台中安装连接链接
您可以使用 OpenShift Container Platform Web 控制台安装 Red Hat connectivity Link Operator。
您必须在您要使用连接链接的每个 OpenShift 集群上执行这些步骤。
先决条件
- 请参阅 第 1 章 连接链接先决条件和权限。
- 访问 OpenShift Container Platform web 控制台。
步骤
-
在 OpenShift Container Platform web 控制台中,使用
cluster-admin
权限登录。 - 在左侧导航菜单中,点 Operators > OperatorHub。
-
在 Filter by keyword 文本框中,输入
connectivity
来查找 Red Hat connectivity Link Operator。 - 阅读 Operator 信息,然后点 Install 显示 Operator 订阅页面。
选择您的订阅设置,如下所示:
- 更新频道 :stable
- 版本:1.1.0
- 安装模式 :集群中的所有命名空间(默认)
- 安装的命名空间 :选择要安装 Operator 的命名空间,如 kuadrant-system。如果命名空间尚不存在,点此字段并选择 Create Project 来创建命名空间。
- 批准策略 :选择 Automatic 或 Manual。
- 点 Install,然后等待片刻,直到 Operator 安装并可供使用。
- 点 Operators > Installed Operators & gt; Red Hat Connectivity Link。
- 单击 Kuadrant 选项卡,再单击 Create Kuadrant 来创建部署。
- 在 Configure via 字段中,点 YAML view 来编辑定义,例如部署名称。
- 单击 Create 并等待列表中显示部署。
验证
安装 Operator 后,点 Operators > Installed Operators 来验证 Red Hat connectivity Link Operator 和以下组件 Operator 是否在命名空间中安装:
- Red Hat - Authorino Operator :在 Gateway API 网络中为网关和应用程序启用身份验证和授权。
- 红帽 - DNS Operator :配置网络平衡并到达网关的南北流量的方式。
- Red Hat - Limitador Operator :为网关 API 网络中网关和应用程序启用速率限制。
其他资源
第 3 章 从命令行在 OpenShift 上安装连接链接
您必须在您要使用连接链接的每个 OpenShift 集群上执行这些步骤。
先决条件
- 请参阅 第 1 章 连接链接先决条件和权限。
步骤
创建您要安装 Operator 的命名空间,如
kuadrant-system
:kubectl create ns kuadrant-system
kubectl create ns kuadrant-system
Copy to Clipboard Copied! 要安装 connectivity Link Operator,请输入以下命令:
kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhcl-operator namespace: kuadrant-system spec: channel: stable installPlanApproval: Automatic name: rhcl-operator source: redhat-operators sourceNamespace: openshift-marketplace --- kind: OperatorGroup apiVersion: operators.coreos.com/v1 metadata: name: kuadrant namespace: kuadrant-system spec: upgradeStrategy: Default EOF
kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhcl-operator namespace: kuadrant-system spec: channel: stable installPlanApproval: Automatic name: rhcl-operator source: redhat-operators sourceNamespace: openshift-marketplace --- kind: OperatorGroup apiVersion: operators.coreos.com/v1 metadata: name: kuadrant namespace: kuadrant-system spec: upgradeStrategy: Default EOF
Copy to Clipboard Copied! 等待安装了连接链接 Operator,如下所示:
kubectl get installplan -n kuadrant-system -o=jsonpath='{.items[0].status.phase}'
kubectl get installplan -n kuadrant-system -o=jsonpath='{.items[0].status.phase}'
Copy to Clipboard Copied! 一段时间后,此命令将在就绪后返回
Complete
。要创建连接链接部署,请输入以下命令:
kubectl apply -f - <<EOF apiVersion: kuadrant.io/v1beta1 kind: Kuadrant metadata: name: kuadrant namespace: kuadrant-system EOF
kubectl apply -f - <<EOF apiVersion: kuadrant.io/v1beta1 kind: Kuadrant metadata: name: kuadrant namespace: kuadrant-system EOF
Copy to Clipboard Copied! 等待 Kuadrant 就绪,如下所示:
kubectl wait kuadrant/kuadrant --for="condition=Ready=true" -n kuadrant-system --timeout=300s
kubectl wait kuadrant/kuadrant --for="condition=Ready=true" -n kuadrant-system --timeout=300s
Copy to Clipboard Copied! 准备就绪后,此命令将返回
Complete
。
其他资源
第 4 章 对 registry.redhat.io 进行身份验证以进行 Wasm 插件访问
对于 RateLimitPolicy 和 AuthPolicy,您必须对 registry.redhat.io
进行身份验证,以访问用于 OpenShift Service Mesh 作为网关 API 供应商的 Wasm 插件镜像。
先决条件
-
有访问
registry.redhat.io
的凭证。如果您没有访问权限,请参阅创建 Registry 服务帐户。
步骤
为网关创建命名空间,例如:
oc create ns api-gateway
oc create ns api-gateway
Copy to Clipboard Copied! 在网关命名空间中创建以下 secret:
oc create secret docker-registry wasm-plugin-pull-secret -n api-gateway \ --docker-server=registry.redhat.io \ --docker-username=your-registry-service-account-username \ --docker-password=your-registry-service-account-password
oc create secret docker-registry wasm-plugin-pull-secret -n api-gateway \ --docker-server=registry.redhat.io \ --docker-username=your-registry-service-account-username \ --docker-password=your-registry-service-account-password
Copy to Clipboard Copied! - 在部署 RateLimitPolicy 或 AuthPolicy 的每个网关命名空间中重复此步骤。
第 5 章 配置 DNS 供应商凭证
如果要在连接链接中配置 DNS 策略,必须至少为以下受支持的基于云的 DNS 供应商配置凭证:
- Amazon Route 53
- Google Cloud DNS
Microsoft Azure DNS
注意您必须在您要使用连接链接的每个 OpenShift 集群上对所选 DNS 供应商执行这些步骤。您必须在包含您的网关的同一命名空间中为 DNS 供应商配置 secret。
先决条件
- 请参阅 第 1 章 连接链接先决条件和权限。
您可以访问创建网关的命名空间,例如
api-gateway
。注意本指南仅将环境变量用于方便。如果您知道环境变量值,您可以以适合您的需要的方式设置所需的
.yaml
文件。
5.1. 配置 Amazon DNS 供应商凭证
步骤
设置环境变量,如下所示:
export AWS_ACCESS_KEY_ID=xxxxxxx export AWS_SECRET_ACCESS_KEY=xxxxxxx export AWS_REGION=your-aws-region
export AWS_ACCESS_KEY_ID=xxxxxxx export AWS_SECRET_ACCESS_KEY=xxxxxxx export AWS_REGION=your-aws-region
Copy to Clipboard Copied! 这些变量值如下所述:
-
AWS_ACCESS_KEY_ID
:带有 Route 53 访问权限的 AWS 中的密钥 ID。 -
AWS_SECRET_ACCESS_KEY
:来自带有 Route 53 访问权限的 AWS 的密钥。 -
aws_REGION
:您的 AWS 区域,如us-east-2
或eu-west-1
。
-
为您的凭证创建一个
Secret
资源,如下所示:kubectl create secret generic aws-credentials \ --namespace=api-gateway \ --type=kuadrant.io/aws \ --from-literal=AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ --from-literal=AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ --from-literal=AWS_REGION=$AWS_REGION
kubectl create secret generic aws-credentials \ --namespace=api-gateway \ --type=kuadrant.io/aws \ --from-literal=AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ --from-literal=AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ --from-literal=AWS_REGION=$AWS_REGION
Copy to Clipboard Copied! 在这种情况下,您必须将 secret
类型设置为
aws
。
其他资源
5.2. 配置 Google DNS 供应商凭证
步骤
设置环境变量,如下所示:
export GOOGLE=xxxxxxx export PROJECT_ID=xxxxxxx
export GOOGLE=xxxxxxx export PROJECT_ID=xxxxxxx
Copy to Clipboard Copied! 这些变量值如下所述:
-
GOOGLE
: Google 凭证 JSON 文件。 PROJECT_ID
: Google 项目 ID。GOOGLE
变量指定gcloud
CLI 或服务帐户生成的 JSON 凭证。例如,$HOME/.config/gcloud/application_default_credentials.json
,其中包含以下内容:{"client_id": "***","client_secret": "***","refresh_token": "***","type": "authorized_user"}
{"client_id": "***","client_secret": "***","refresh_token": "***","type": "authorized_user"}
Copy to Clipboard Copied!
-
为您的凭证创建一个
Secret
资源,如下所示:kubectl create secret generic test-gcp-credentials \ --namespace=api-gateway \ --type=kuadrant.io/gcp \ --from-literal=PROJECT_ID=$PROJECT_ID \ --from-file=GOOGLE=$GOOGLE
kubectl create secret generic test-gcp-credentials \ --namespace=api-gateway \ --type=kuadrant.io/gcp \ --from-literal=PROJECT_ID=$PROJECT_ID \ --from-file=GOOGLE=$GOOGLE
Copy to Clipboard Copied! 在这种情况下,您必须将 secret
类型设置为
gcp
。
其他资源
5.3. 配置 Azure DNS 供应商凭证
步骤
创建一个新的 Azure 服务主体来管理 DNS,如下所示:
DNS_NEW_SP_NAME=kuadrantDnsPrincipal DNS_SP=$(az ad sp create-for-rbac --name $DNS_NEW_SP_NAME) DNS_SP_APP_ID=$(echo $DNS_SP | jq -r '.appId') DNS_SP_PASSWORD=$(echo $DNS_SP | jq -r '.password')
DNS_NEW_SP_NAME=kuadrantDnsPrincipal DNS_SP=$(az ad sp create-for-rbac --name $DNS_NEW_SP_NAME) DNS_SP_APP_ID=$(echo $DNS_SP | jq -r '.appId') DNS_SP_PASSWORD=$(echo $DNS_SP | jq -r '.password')
Copy to Clipboard Copied! 有关服务主体的详情,请参阅 Microsoft Azure 文档。
要授予对您要为您要使用的服务主体管理的区域的读和贡献者访问权限,请执行以下步骤:
获取用于授予服务主体访问权限的 DNS ID,如下所示:
DNS_ID=$(az network dns zone show --name example.com \ --resource-group ExampleDNSResourceGroup --query "id" --output tsv) # Get your resource group ID RESOURCE_GROUP_ID=az group show --resource-group ExampleDNSResourceGroup | jq ".id" -r
DNS_ID=$(az network dns zone show --name example.com \ --resource-group ExampleDNSResourceGroup --query "id" --output tsv) # Get your resource group ID RESOURCE_GROUP_ID=az group show --resource-group ExampleDNSResourceGroup | jq ".id" -r
Copy to Clipboard Copied! 提供资源组的读者访问,如下所示:
az role assignment create --role "Reader" --assignee $DNS_SP_APP_ID --scope $DNS_ID
az role assignment create --role "Reader" --assignee $DNS_SP_APP_ID --scope $DNS_ID
Copy to Clipboard Copied! 提供对 DNS 区的贡献访问权限,如下所示:
az role assignment create --role "Contributor" --assignee $DNS_SP_APP_ID --scope $DNS_ID
az role assignment create --role "Contributor" --assignee $DNS_SP_APP_ID --scope $DNS_ID
Copy to Clipboard Copied!
因为您要为地理和加权响应设置高级流量规则,所以还必须授予流量管理器和 DNS 区域访问权限,如下所示:
az role assignment create --role "Traffic Manager Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID az role assignment create --role "DNS Zone Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID cat <<-EOF > /local/path/to/azure.json { "tenantId": "$(az account show --query tenantId -o tsv)", "subscriptionId": "$(az account show --query id -o tsv)", "resourceGroup": "ExampleDNSResourceGroup", "aadClientId": "$DNS_SP_APP_ID", "aadClientSecret": "$DNS_SP_PASSWORD" } EOF
az role assignment create --role "Traffic Manager Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID az role assignment create --role "DNS Zone Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID cat <<-EOF > /local/path/to/azure.json { "tenantId": "$(az account show --query tenantId -o tsv)", "subscriptionId": "$(az account show --query id -o tsv)", "resourceGroup": "ExampleDNSResourceGroup", "aadClientId": "$DNS_SP_APP_ID", "aadClientSecret": "$DNS_SP_PASSWORD" } EOF
Copy to Clipboard Copied! 为您的凭证创建一个
Secret
资源,如下所示:kubectl create secret generic test-azure-credentials \ --namespace=api-gateway \ --type=kuadrant.io/azure \ --from-file=azure.json=/local/path/to/azure.json
kubectl create secret generic test-azure-credentials \ --namespace=api-gateway \ --type=kuadrant.io/azure \ --from-file=azure.json=/local/path/to/azure.json
Copy to Clipboard Copied! 在这种情况下,您必须将 secret
类型设置为
azure
。
其他资源
第 6 章 为速率限制配置 Redis 存储
要在多集群环境中为速率限制计数器配置持久性,您必须配置基于 Redis 的数据存储的连接详情。此数据存储用于持久保留连接链接的 Limitador 组件的共享速率限制计数器。
您必须在您要使用连接链接进行速率限制的每个 OpenShift 集群上配置基于 Redis 的数据存储的连接详情。
先决条件
- 请参阅 第 1 章 连接链接先决条件和权限。
步骤
将以下环境变量设置为基于 Redis 的共享实例 URL:
export REDIS_URL=rediss://user:xxxxxx@some-redis.com:10340
export REDIS_URL=rediss://user:xxxxxx@some-redis.com:10340
Copy to Clipboard Copied! 确保为您的环境包含适当的 URI 方案:
-
安全 Redis:
rediss://
-
标准 Redis:
redis://
-
安全 Redis:
为您的 Redis URL 创建
Secret
资源,如下所示:kubectl -n kuadrant-system create secret generic redis-config \ --from-literal=URL=$REDIS_URL
kubectl -n kuadrant-system create secret generic redis-config \ --from-literal=URL=$REDIS_URL
Copy to Clipboard Copied! 更新 Limitador 自定义资源,以使用您创建的 secret:
kubectl patch limitador limitador --type=merge -n kuadrant-system -p ' spec: storage: redis: configSecretRef: name: redis-config '
kubectl patch limitador limitador --type=merge -n kuadrant-system -p ' spec: storage: redis: configSecretRef: name: redis-config '
Copy to Clipboard Copied!
其他资源
有关如何设置基于 Redis 的数据存储的详情,请查看您的 Redis 兼容产品文档:
第 7 章 在 OpenShift 中启用连接链接动态插件
连接链接 Operator 会自动为 OpenShift Web 控制台安装并配置 connectivity Link 动态插件。您可以使用 connectivity Link 动态插件在 OpenShift Web 控制台中查看和管理您的网关和策略。
您必须在您要使用 connectivity Link 动态插件的每个 OpenShift 集群上执行这些步骤。
先决条件
- 请参阅 第 1 章 连接链接先决条件和权限。
- 访问 OpenShift Container Platform web 控制台。
步骤
-
在 OpenShift Container Platform web 控制台中,使用
cluster-admin
权限登录。 - 在左侧导航菜单中选择 Administrator 视角。
- 点 Home > Overview。
- 在 Status 面板中,点 Dynamic Plugins > View all。
- 在 Console plugins 选项卡中,在表中找到 kuadrant-console-plugin 条目,它应该被列出但被禁用。
- 在 kuadrant-console-plugin 行中,点 Disabled。
- 选择 Enable 选项,然后单击 Save。
- 等待插件状态更改为 Loaded。
验证
启用插件后,刷新控制台。您将在导航栏中 看到一个新的 connections Link 菜单项。
您可以点 connectivity Link > Overview 来探索可用资源,并在 OpenShift Web 控制台中创建网关和配置策略。
后续步骤
- 有关网关和策略配置示例,请参阅使用 连接链接 配置和部署网关策略。
附录 A. 使用您的红帽订阅
红帽连接链接通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。
管理您的订阅
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
- 在菜单栏中,单击 Subscriptions 以查看和管理您的订阅。
更新于 2025-05-28