创建和管理链接端点

创建和管理链接端点

创建和管理链接端点

创建您的 Satellite 端点,以管理 IBM Cloud Satellite 站点与运行在该站点之外的服务、服务器或应用程序之间的网络连接。

创建 cloud 端点以连接到位置外部的资源

创建一个类型为“cloud”的端点,以便位于 Satellite 位置中的数据源能够连接到该位置之外运行的服务、服务器或应用。

开始之前,请确保您已备齐以下物品。

源客户机
Satellite 集群或连接到您所在位置的主机。 有关如何创建 Satellite 集群的更多信息,请参阅 创建 Satellite 集群。 要使用主机,请 将主机连接到您的位置,但不要将主机分配给 Satellite 控制平面或 Satellite 集群。 分配主机将启动引导过程,以除去对主机的 SSH 访问权。
目标资源
在位置外部运行但可从 IBM Cloud中访问的服务,服务器或应用程序。 例如,您可以将专用服务端点用于 IBM Cloud 服务,因为该专用服务端点可从 IBM Cloud 网络中路由。 如果要连接到在 IBM Cloud外部运行的服务,那么必须可以从 IBM Cloud 网络中访问此服务。
许可权
IBM Cloud Satellite中 链接 资源的 管理员 IBM Cloud IAM 平台角色。 有关更多信息,请参阅 检查用户许可权。

使用控制台创建云端点

使用控制台创建一个云端点,以便您位于 Satellite 位置中的数据源能够连接到该位置之外运行的服务、服务器或应用程序。

  1. 从 Satellite 位置 仪表板 中,单击位置的名称。
  2. 从 概述 选项卡中,验证您所在位置是否处于 正常 状态。
  3. 从 链接端点 选项卡中,单击 创建端点。
  4. 选择 云 为在该位置外部运行的服务,服务器或应用程序创建端点。
  5. 输入端点名称,目标资源的标准域名 (FQDN) 或 IP 地址,以及目标资源侦听入局请求的端口。 IP 地址或 FQDN 必须解析为公共 IP 地址或可在 IBM Cloud中访问的专用 IP 地址,例如专用服务端点。
  6. 选择源必须用于连接到目标 FQDN 或 IP 地址的协议。 此协议必须与目标资源的端口匹配。 有关更多信息,请参阅 端点协议。
    • 如果您选择了 TLS 或 HTTPS 协议,并且希望对目标证书进行服务器端身份验证,请选中 “验证目标证书”复选框。
    • 如果您选择了 TLS 或 HTTPS 协议,但目标资源仍处于开发阶段,您可以点击 “上传证书”以添加您的自签名证书文件。 此 ssl.crt 文件必须包含您资源主机名的公开证书( base-64 编码),且不得包含私有证书密钥( ssl.key )。 若要使用 OpenSSL, 创建用于测试目的的自签名证书,请参阅此 自签名 SSL 证书教程。
    • 如果您选择了 TLS 或 HTTPS 协议,并且希望允许在资源连接的 TLS 握手过程中提供单独的主机名,请输入服务器名称指示符(SNI)。
  7. 配置可选连接设置,例如设置不活动超时。 请选择1至600秒之间的数值。 默认值为 60 秒。
  8. 单击创建。 等待几分钟,以便 Satellite 链接连接器组件向端点分配端口。
  9. 在端点的表行中,复制 Satellite 链接连接器的主机名以及 地址 字段中端点的端口。
  10. 使用地址 从位置中的源连接到目标。

使用 CLI 创建云端点

使用命令行界面 (CLI) 创建一个端点,以便位于 Satellite 位置中的数据源能够连接到该位置之外运行的服务、服务器或应用程序。

  1. 获取 Satellite 位置的标识,并验证您的位置是否具有 正常 状态。

    ibmcloud sat location ls
    

    示例输出

    Name               ID                     Status   Ready   Created       Hosts (used/total)   Managed From
    port-antwerp       brlono42051up3k4htu0   normal   yes     2 weeks ago   6 / 7                London
    
  2. 创建一个 cloud 端点。

    ibmcloud sat endpoint create --location <location_ID> --name <endpoint_name> --dest-type cloud --dest-hostname <FQDN_or_IP> --dest-port <port> [--dest-protocol <destination_protocol>] --source-protocol <source_protocol>  [--sni <sni>]
    
    了解 API 请求
    组件 描述
    --location <location_ID> 输入先前检索到的 Satellite 位置的标识。
    --name <endpoint_name> 输入 Satellite 端点的名称。
    --dest-type cloud 输入 cloud 以指示目标资源在该位置外部运行。
    --dest-hostname <FQDN_or_IP> 请输入您要连接的目标的完全合格域名 (FQDN) 或可从外部访问的 IP 地址。 对于云端点,该值必须解析为一个公共 IP 地址,或解析为可在 IBM Cloud 范围内访问的私有 IP 地址(例如私有云服务端点)。
    --dest-port <port> 请输入目标资源用于监听传入请求的端口。 确保端口与目标协议匹配。
    --dest-protocol <destination-protocol> 可选: 输入目标资源的协议。 如果未指定此选项,那么将从源协议继承目标协议。 受支持的协议包括 tcp 和 tls。 有关更多信息,请参阅 端点协议。
    --source-protocol <source-protocol> 输入源必须用于连接到目标资源的协议。 受支持的协议包括 tcp,tls,http,https 和 http-tunnel。 有关更多信息,请参阅 端点协议。
    --sni <sni> 可选。 如果您指定了 tls 或 https 源协议,并且希望在 TLS 握手过程中添加一个单独的主机名,请包含服务器名称指示符。
  3. 等待几分钟,以便 Satellite 链接连接器组件向端点分配端口。

  4. 请确认您的端点已创建。 在输出中,在 地址 字段中复制 Satellite 链接连接器的主机名和端点的端口。

    ibmcloud sat endpoint ls --location <location_ID>
    

    示例输出

    ID                           Name                                         Destination Type   Address                                                                                                    Status
    c0mnbnkw0jl8si22djkg_cEomQ   openshift-api-c0mpnn4w0bv28oq2dks0           location           TCP  c-02.us-east.link.satellite.cloud.ibm.com:32823                                                       enabled
    c0mnbnkw0jl8si22djkg_6UTZd   satellite-healthcheck-c0mnbnkw0jl8si22djkg   location           HTTP c-02.us-east.link.satellite.cloud.ibm.com:32822                                                       enabled
    c0mnbnkw0jl8si22djkg_GzstO   test-endpoint                                cloud              TLS  nae4dce0eb35957baff66-edfc0a8ba65085c5081eced6816c5b9c-c000.us-east.satellite.appdomain.cloud:30819   enabled
    
  5. 使用地址 从位置中的源连接到目标。

通过云端点测试连接

使用分配给您端点的 Satellite 链接连接器的主机名和端口,从您所在位置的源连接到目标资源。 该源可以是您之前创建的 Satellite 集群,也可以是您分配给该位置的主机。

用于测试来自未分配主机的连接的示例

  1. 登录您的主机。 提示时输入用于访问主机的密码。

    ssh root@<ip_address>
    
  2. 使用 Satellite 链接连接器主机名和端口来测试与目标资源的连接。

    curl http://<linkconnector_hostname>:<port>
    

用于测试来自 Satellite 集群的连接的示例

  1. 以集群为目标。 如果未连接到位置主机网络,请包含 --endpoint link 选项。

    ibmcloud oc cluster config --cluster <cluster_name> --admin [--endpoint link]
    
  2. 将样本应用程序部署到集群。 要测试从您的位置到端点的连接,必须连接到 Satellite 集群所连接到的网络。 您可以通过部署应用程序,登录到应用程序,然后对端点运行 curl 请求来连接到网络。 以下示例将 nginx 部署到集群中。

    1. 为您的部署创建一个配置文件。
        apiVersion: apps/v1
        kind: Deployment
        metadata:
          name: nginx-deployment
        spec:
          replicas: 1
          selector:
            matchLabels:
              app: nginx
          template:
            metadata:
              labels:
                app: nginx
            spec:
              containers:
              - name: nginx
                image: nginxinc/nginx-unprivileged
                ports:
                - containerPort: 80
        ```
    2. 将应用程序部署到您的集群中。
    
    ```sh {: pre}
        oc apply -f deployment.yaml
        ```
    3. 验证 `nginx` 应用程序是否已成功部署到集群中。
    
    ```sh {: pre}
        oc get pods
        ```
        示例输出
    
        ```sh {: screen}
        NAME                                READY   STATUS    RESTARTS   AGE
        nginx-deployment-85ff79dd56-6lrpg   1/1     Running   0          11s
        ```
    
  3. 登录到 pod。

    oc exec <pod_name> -it bash
    
  4. 使用 Satellite 链接连接器主机名和端口来测试与目标资源的连接。

    curl http://<linkconnector_hostname>:<port>
    

创建 location 端点以连接到位置中的资源

创建一个类型为“location”的端点,以便连接到 IBM Cloud 私有网络的源能够连接到您 Satellite 位置中的服务、服务器或应用。

开始之前,请确保您已备齐以下物品。

源客户机

可以访问 IBM Cloud 专用网络的服务,服务器或应用程序。 目标资源

在 Satellite 集群或连接到您所在位置的主机中运行的服务,服务器或应用程序。 有关如何创建 Satellite 集群的更多信息,请参阅 创建 Satellite 集群。 要使用主机,请 将主机连接到您的位置,但不要将主机分配给 Satellite 控制平面或 Satellite 集群。 分配主机将启动引导过程,以除去对主机的 SSH 访问权。

许可权

IBM Cloud Satellite中 链接 资源的 管理员 IBM Cloud IAM 平台角色。 有关更多信息,请参阅 检查用户许可权。

使用控制台创建位置端点

使用控制台创建一个端点,以便连接到 IBM Cloud 私有网络的源能够连接到您 Satellite 位置中的服务、服务器或应用。

  1. 从 Satellite 位置 仪表板 中,单击位置的名称。

  2. 从 概述 选项卡中,验证您所在位置是否处于 正常 状态。

  3. 从 链接端点 选项卡中,单击 创建端点。

  4. 选择 Satellite 位置 以在 Satellite 位置中为服务,服务器或应用程序创建端点。

  5. 输入端点名称,目标资源的标准域名 (FQDN) 或 IP 地址,以及目标资源侦听入局请求的端口。 FQDN 或 IP 地址必须从 Satellite 位置的控制平面主机解析并可从这些主机访问,或者从代理程序针对 Satellite 连接器运行的位置解析 FQDN 或 IP 地址。

  6. 选择源必须用于连接到目标 FQDN 或 IP 地址的协议。 此协议必须与目标资源的端口匹配。 有关更多信息,请参阅 端点协议。

    • 如果您选择了 TLS 或 HTTPS 协议,并且希望对目标证书进行服务器端身份验证,请选中 “验证目标证书”复选框。
    • 如果您选择了 TLS 或 HTTPS 协议,但目标资源仍处于开发阶段,您可以点击 “上传证书”以添加您的自签名证书文件。 此 ssl.crt 文件必须包含您资源主机名的公开证书( base-64 编码),且不得包含私有证书密钥( ssl.key )。 若要使用 OpenSSL, 创建用于测试目的的自签名证书,请参阅此 自签名 SSL 证书教程。
    • 如果您选择了 TLS 或 HTTPS 协议,并且希望允许在资源连接的 TLS 握手过程中提供单独的主机名,请输入服务器名称指示符(SNI)。
  7. 配置可选连接设置,例如设置不活动超时。 请选择1至600秒之间的数值。 默认值为 60 秒。

  8. 单击创建。 等待几分钟,以便 Satellite 链接连接器组件向端点分配端口。

  9. 在端点的表行中,复制 Satellite 链路隧道服务器的主机名以及 地址 字段中端点的端口。

  10. 从 IBM Cloud 专用网络中的源客户机,通过使用地址来测试与 Satellite 端点的连接。 例如,根据源客户机,您可以向端点发送 curl 请求:

    curl http://<linkserver_hostname>:<port>
    

使用 CLI 创建位置端点

使用命令行界面 (CLI) 创建一个端点,以便连接到“IBM Cloud”私有网络的源能够连接到您在“Satellite”位置中的服务、服务器或应用。

  1. 获取 Satellite 位置的标识,并验证您的位置是否具有 正常 状态。

    ibmcloud sat location ls
    

    示例输出

    Name               ID                     Status   Ready   Created       Hosts (used/total)   Managed From
    port-antwerp       brlono42051up3k4htu0   normal   yes     2 weeks ago   6 / 7                London
    
  2. 创建一个 location 端点。

    ibmcloud sat endpoint create --location <location_ID> --name <endpoint_name> --dest-type location --dest-hostname <FQDN_or_IP> --dest-port <port> [--dest-protocol <destination_protocol>] --source-protocol <source_protocol>
    
    了解 API 请求
    组件 描述
    --location <location_ID> 输入先前检索到的 Satellite 位置的标识。
    --name <endpoint_name> 输入 Satellite 端点的名称。
    --dest-type cloud 输入 cloud 以指示目标资源在该位置外部运行。
    --dest-hostname <FQDN_or_IP> 请输入您要连接的目标的完全合格域名 (FQDN) 或可从外部访问的 IP 地址。 对于位置端点,该值必须能够从控制平面主机解析出来,并且从控制平面主机可访问该位置(适用于 Satellite 位置),或者从代理运行的位置可访问(适用于 Satellite Connector)。
    --dest-port <port> 请输入目标资源用于监听传入请求的端口。 确保端口与目标协议匹配。
    --dest-protocol <destination-protocol> 可选: 输入目标资源的协议。 如果未指定此选项,那么将从源协议继承目标协议。 受支持的协议包括 tcp 和 tls。 有关更多信息,请参阅 端点协议。
    --source-protocol <source-protocol> 输入源必须用于连接到目标资源的协议。 受支持的协议包括 tcp,tls,http,https 和 http-tunnel。 有关更多信息,请参阅 端点协议。
    --sni <sni> 可选。 如果您指定了 tls 或 https 源协议,并且希望在 TLS 握手过程中添加一个单独的主机名,请包含服务器名称指示符。
  3. 等待几分钟,以便 Satellite 链接连接器组件向端点分配端口。

  4. 请确认您的端点已创建。 在输出中,复制 Satellite 链路隧道服务器的主机名以及 地址 字段中端点的端口。

    ibmcloud sat endpoint ls --location <location_ID>
    

    示例输出

    ID                           Name                                         Destination Type   Address
    c0mnbnkw0jl8si22djkg_cEomQ   openshift-api-c0mpnn4w0bv28oq2dks0           location           TCP  c-02.us-east.link.satellite.cloud.ibm.com:32823
    c0mnbnkw0jl8si22djkg_6UTZd   satellite-healthcheck-c0mnbnkw0jl8si22djkg   location           HTTP c-02.us-east.link.satellite.cloud.ibm.com:32822
    
  5. 从 IBM Cloud 专用网络中的源客户机,通过使用地址来测试与 Satellite 端点的连接。 例如,根据源客户机,您可以向端点发送 curl 请求。

    curl http://<linkserver_hostname>:<port>
    

设置访问控制列表以限制对端点的访问

通过为端点创建访问控制列表,控制哪些客户端可以访问目标资源。

如果未配置任何源,那么任何客户机都可以使用端点来连接到目标资源。 例如,对于位置端点,连接到 IBM Cloud 专用网络的任何客户机都可以使用该端点来连接到在 Satellite 位置中运行的目标资源。 您可以通过仅将特定客户机的 IP 地址或子网 CIDR 添加到端点的源列表来限制对目标资源的访问。

目前,只能为类型为 location 的端点创建源列表。 无法为类型为 cloud 的端点创建源列表。

使用控制台创建访问控制列表

完成以下步骤,从控制台为端点创建访问控制列表。

  1. 从 Satellite 位置 仪表板 中,单击位置的名称。
  2. 选择 访问控制列表选项卡,然后单击 创建规则。
  3. 在 ACL 规则页面上,请完成以下步骤。
    1. 输入规则名称。
    2. 输入允许连接到端点的客户端的 IP 地址。 此值可以是单个 IP 地址、CIDR 块或逗号分隔列表。 该值必须完全包含在以下 CIDR 中:10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12.
    3. 选择该规则应控制访问的端点(或多个端点)。 只有使用规则中指定范围内 IP 地址的客户端,才允许通过端点向目的地传输网络流量。 将阻止来自通过端点发送到目标资源的其他客户机的网络流量。
  4. 单击创建。
  5. 要修改现有 ACL 规则,请在规则右端的溢出菜单中选择 编辑,更新字段值,完成后按 保存。

使用 CLI 创建访问控制列表

完成以下步骤,从 CLI 为端点创建访问控制列表。

  1. 运行以下命令为一个或多个子网创建 ACL 规则,并可选择绑定到一个或多个端点。

    ibmcloud sat acl create --location LOCATION --name NAME --subnet SUBNET [--subnet SUBNET ...] [--endpoint ENDPOINT ...]
    
    --location LOCATION
    请输入您的 Satellite 位置的名称或ID。
    --name NAME
    请输入访问控制列表(ACL)的名称。
    --subnet SUBNET
    输入此 ACL 允许的 IP 或 CIDR 块。 值必须完全包含在以下 CIDR 中:10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12. 您可以重复此参数以提供多个值。
    --endpoint ENDPOINT
    可选择输入要为此 ACL 启用的端点名称或 ID。 您可以重复此参数以提供多个值。
  2. 请确认已创建访问控制列表(ACL)。

    ibmcloud sat acl ls --location LOCATION
    
  3. 您还可以为现有 ACL 添加或删除端点或子网。

     ibmcloud sat acl endpoint add --location LOCATION --acl-id ID --endpoint ENDPOINT [--endpoint ENDPOINT ...]
     ibmcloud sat acl endpoint rm --location LOCATION --acl-id ID --endpoint ENDPOINT [--endpoint ENDPOINT ...]
     ibmcloud sat acl subnet add --location LOCATION --acl-id ID --subnet SUBNET [--subnet SUBNET ...]
     ibmcloud sat acl subnet rm --location LOCATION --acl-id ID --subnet SUBNET [--subnet SUBNET ...]
    

启用和禁用端点

设置端点后,可以随时通过启用或禁用端点来控制通过端点的网络流量。

  1. 从 "位置" 仪表板中,选择创建 Satellite 端点的位置。
  2. 选择 链接端点 选项卡,并查找要启用或禁用的端点。
  3. 使用该开关来启用或禁用该端点。 禁用端点后,将阻止所有源的位置与目标服务器,服务或应用程序之间的网络流量。