IBM Cloud Docs
Satellite 连接器端到端示例

Satellite 连接器端到端示例

建立隧道后,您可以在机器上运行应用程序容器,并从 IBM Cloud访问其端点。

要配置 Satellite 连接器,您必须对 IAM 访问策略中的 Satellite 服务具有管理员访问权。

在此示例中,使用简单的 Nginx 容器。

创建 Docker 容器

  1. 创建以下目录。
    ~/agent/nginx/etc/nginx
    ~/agent/nginx/www/data
    
  2. 使用以下值在 ~/agent/nginx/www/data 中创建名为 index.html 的文件。
    Hello from ngnix running at my location.
    
  3. 使用以下值在 ~/agent/nginx/etc/nginx 中创建名为 nginx.conf 的文件。
    events {
    worker_connections  1024;
    }
    
    http {
    server {
        listen 80;
        root /www/data;
    
        location / {
        }
      }
    }
    
  4. 运行 Nginx 容器。
    docker run -d -p 80:80 -v ~/agent/nginx/etc/nginx:/etc/nginx:ro -v ~/agent/nginx/www/data:/www/data:ro nginx
    
    您现在具有正在运行的 Nginx 容器。

添加 TLS 支持

本部分修改先前示例以将对 TLS 的支持添加到 Nginx。

  1. 创建以下目录。

    ~/agent/nginx/etc/nginx/ssl/certs
    ~/agent/nginx/etc/nginx/ssl/private
    
  2. 创建自签名证书。 当系统提示您输入 DN 时,请输入第一个字段的值,并将其余值保留为缺省值。

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/agent/nginx/etc/nginx/ssl/private/nginx-selfsigned.key -out ~/agent/nginx/etc/nginx/ssl/certs/nginx-selfsigned.crt
    
  3. 编辑 nginx.conf 文件 ~/agent/nginx/etc/nginx 以添加 SSL 设置。 该文件类似于以下示例。

    events {
    worker_connections  1024;
    }
    
    http {
    server {
        listen 80;
        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/certs/nginx-selfsigned.crt;
        ssl_certificate_key /etc/nginx/ssl/private/nginx-selfsigned.key;
        root /www/data;
    
        location / {
        }
      }
    }
    
  4. 重新启动 Nginx 容器并包含 expose 选项。 如果存在当前正在运行的实例,请先停止该实例,然后重新启动。

    docker stop <nginx container id>
    docker run -d --expose=443 -v ~/agent/nginx/etc/nginx:/etc/nginx:ro -v ~/agent/nginx/www/data:/www/data:ro nginx
    
  5. 创建另一个位置类型链接端点,如您在使用以下设置的先前部分中所做的那样。

    • 请使用其他名称,例如 MyNginx-ssl
    • 对于目标端口,请指定 443
    • 源协议 保留为 TCP,因为 SSL 终止是在 nginx 服务器上完成的。
  6. 现在,如果选择此端点,那么您将看到一个端点地址,该端点地址引用可在 IBM Cloud 网络中访问的 CSE 端点。 因此,如果运行 VSI 实例或使用 VPC VPN,那么可以对 Nginx 端点进行 curl 操作。 由于目标端点正在使用 SSL,因此请确保在 curl 命令中指定 https。 此外,由于使用自签名证书,因此请指定 -k 选项。 例如:

    curl -k https://c-02.private.us-east.link.satellite.cloud.ibm.com:<port>
    Hello from ngnix running at my location.
    

重新启动 Nginx 容器时,Nginx 容器 IP 地址可能会更改。 如果发生这种情况,那么必须更新链接端点目标地址。