Satellite 连接器端到端示例
建立隧道后,您可以在机器上运行应用程序容器,并从 IBM Cloud访问其端点。
要配置 Satellite 连接器,您必须对 IAM 访问策略中的 Satellite 服务具有管理员访问权。
在此示例中,使用简单的 Nginx 容器。
创建 Docker 容器
- 创建以下目录。
~/agent/nginx/etc/nginx ~/agent/nginx/www/data - 使用以下值在
~/agent/nginx/www/data中创建名为index.html的文件。Hello from ngnix running at my location. - 使用以下值在
~/agent/nginx/etc/nginx中创建名为nginx.conf的文件。events { worker_connections 1024; } http { server { listen 80; root /www/data; location / { } } } - 运行 Nginx 容器。
您现在具有正在运行的 Nginx 容器。docker run -d -p 80:80 -v ~/agent/nginx/etc/nginx:/etc/nginx:ro -v ~/agent/nginx/www/data:/www/data:ro nginx
创建链接端点
-
在 IBM Cloud上的 Satellite 连接器中创建位置链接端点。
- 从 Satellite 控制台中,选择连接器。
- 在“用户端点”选项卡中,单击 创建端点。
- 在 端点名称 字段中,输入
MyNginx。 - 在 目标 FQDN 或 IP 字段中,输入 Nginx 容器的 IP 地址,例如
172.17.0.3。 要查找 Nginx IP 地址,请运行docker inspect <nginx container id> | grep IPAddress。 - 在 目标端口 字段中,输入
80。 - 单击下一步。
- 在 源协议 字段中,选择
TCP。 - 将其余字段留空。
- 单击下一步。
- (可选) 选择 ACL 规则或创建新的 ACL 规则以控制哪些客户机可以访问位置端点资源。 如果未选择 ACL 规则,那么连接到 IBM Cloud 专用网络的任何客户机都可以使用端点来连接到在您所在位置运行的目标资源。
- 单击下一步。
- 将连接设置保留为其缺省值。
- 单击 创建端点。
-
在端点详细信息中,您可以看到引用了可从 IBM Cloud 网络中访问的 CSE 端点的 端点地址。 如果运行 VSI 实例或使用 VPC VPN,那么可以对 Nginx 端点进行 curl。 例如:
curl http://c-02.private.us-east.link.satellite.cloud.ibm.com:<port> Hello from ngnix running at my location.
添加 TLS 支持
本部分修改先前示例以将对 TLS 的支持添加到 Nginx。
-
创建以下目录。
~/agent/nginx/etc/nginx/ssl/certs ~/agent/nginx/etc/nginx/ssl/private -
创建自签名证书。 当系统提示您输入 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 -
编辑
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 / { } } } -
重新启动 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 -
创建另一个位置类型链接端点,如您在使用以下设置的先前部分中所做的那样。
- 请使用其他名称,例如
MyNginx-ssl。 - 对于目标端口,请指定
443。 - 将 源协议 保留为
TCP,因为 SSL 终止是在 nginx 服务器上完成的。
- 请使用其他名称,例如
-
现在,如果选择此端点,那么您将看到一个端点地址,该端点地址引用可在 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 地址可能会更改。 如果发生这种情况,那么必须更新链接端点目标地址。