2.3. 定义自动化网格节点类型
要扩展作业容量,请创建一个可以添加的独立 执行节点,与自动化控制器部署一起运行。这些执行节点不是自动化控制器 Kubernetes 集群的一部分。
控制节点在集群连接中运行,并通过 Receptor 向执行节点提交工作。
这些执行节点在自动化控制器中注册为类型 执行
实例,这意味着它们仅用于运行作业,而不是分配工作或作为控制节点处理 Web 请求。
跃点节点 可以添加到自动化控制器和独立执行节点的 control plane 之间。这些跃点节点不是 Kubernetes 集群的一部分,并在自动化控制器中注册,作为类型跃点( hop
)的实例,这意味着它们只会处理不同或更严格的网络中的入站和出站流量。
以下流程演示了如何为主机设置节点类型。
默认情况下,Red Hat Ansible Automation Platform Service on AWS 包括两个可以对等执行节点的跃点节点。
流程
-
在导航面板中,选择
。 在 Instances 列表页面中,单击 。此时会打开 Add Instance 窗口。
实例需要以下属性:
主机名 :(必需)为您的实例输入完全限定域名(公共 DNS)或 IP 地址。此字段等同于基于安装程序部署
的主机名
。注意如果实例使用无法从控制集群解析的私有 DNS,DNS 查找路由会失败,并且生成的 SSL 证书无效。改为使用 IP 地址。
- 可选: 描述 :输入实例的描述。
- 实例状态 :此字段是自动填充的,表示它正在安装,且无法修改。
-
监听器端口 :此端口用于 receptor 侦听进入的连接。您可以将端口设置为适合您的配置的端口。此字段等同于 API 中的
listener_port
。默认值为 27199,但您可以设置自己的端口值。 实例类型 :只能创建
execution
和hop
节点。基于 Operator 的部署不支持控制或混合节点。选项:
- 启用实例 :选中此框,使它可用于在执行节点上运行。
- 选中 Managed by policy 复选框,以启用策略来确定如何分配实例。
来自控制节点的对等点 :
如果要配置跃点节点:
- 如果跃点节点需要直接从自动化控制器推送请求,请选中 Peers from Control 复选框。
- 如果跃点节点与另一个跃点节点对等,则确保未 检查来自 Control 的 Peers。
如果要配置执行节点:
- 如果执行节点需要直接从自动化控制器推送请求,请选中 Peers from Control 复选框。
- 如果执行节点与跃点节点对等,则确保未 检查来自 Control 的 Peers。
- 单击 。
要验证对等配置和流量的方向,您可以使用拓扑视图查看更新的拓扑的图形表示。这有助于确定可能需要更新防火墙规则的位置。如需更多信息,请参阅 Topology 视图。
注意从任何可通过 SSH 访问新创建的实例的计算机完成以下步骤。
点 Download Bundle 旁边的
图标下载包含这个新实例的 tar 文件,以及将创建的节点安装到自动化网格所需的文件。
安装捆绑包具有 TLS 证书和密钥、证书颁发机构和正确的 Receptor 配置文件。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
从您下载的位置中提取下载的
tar.gz
Install Bundle。为确保这些文件位于远程机器上的正确位置,安装捆绑包包含install_receptor.yml
playbook。 在运行
ansible-playbook
命令前,请编辑inventory.yml
文件中的以下字段:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
确保
ansible_host
设置为节点的 IP 地址或 DNS。 -
将
ansible_user
设置为运行安装的用户名。 -
将
ansible_ssh_private_key_file
设置为包含用于连接实例的私钥的文件名。 -
inventory.yml
文件的内容充当模板,其中包含在网格拓扑中安装和配置 receptor 节点期间应用的角色的变量。您可以修改一些其他字段,或者在高级场景中完全替换该文件。如需更多信息,请参阅 角色变量。
-
确保
对于使用私有 DNS 的节点,请将以下行添加到
inventory.yml
中:ansible_ssh_common_args: <your ssh ProxyCommand setting>
ansible_ssh_common_args: <your ssh ProxyCommand setting>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这指示
install-receptor.yml
playbook 使用 proxy 命令通过本地 DNS 节点连接到私有节点。- 配置属性后,单击 Details 页面将打开。 。所创建的实例的
- 保存文件以继续。
运行安装捆绑包的系统来设置远程节点并运行
ansible-playbook
需要安装ansible.receptor
集合:ansible-galaxy collection install ansible.receptor
ansible-galaxy collection install ansible.receptor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow or
ansible-galaxy install -r requirements.yml
ansible-galaxy install -r requirements.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
从
requirements.yml
文件安装 receptor 集合依赖项会持续检索指定的 receptor 版本。另外,它会检索将来可能需要的任何其他集合依赖项。 - 在运行 playbook 的所有节点上安装 receptor 集合,否则会出现错误。
-
从
如果定义了
receptor_listener_port
,机器还需要一个可用的开放端口来建立入站 TCP 连接,例如 27199。运行以下命令,为 receptor 通信打开端口 27199 (确保您在防火墙中打开端口 27199):sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在您要更新自动化网格的机器上运行以下 playbook:
ansible-playbook -i inventory.yml install_receptor.yml
ansible-playbook -i inventory.yml install_receptor.yml
+
此 playbook 需要 openssl。您可以运行以下命令来安装它:
openssl -v
openssl -v
如果返回,则会安装版本 OpenSSL。否则,您需要使用以下内容安装 OpenSSL:
sudo dnf install -y openssl
sudo dnf install -y openssl
+ 此 playbook 运行后,您的自动化网格会被配置。
可能是有些服务器没有侦听 receptor 端口(默认为 27199)
假设您有一个带有节点 A、B 和 C 的 Control plane
以下是三个控制器节点的对等设置:
Controller 节点 A -→ Controller 节点 B
Controller 节点 A -→ Controller 节点 C
Controller 节点 B -→ Controller 节点 C
您可以通过设置强制监听程序
receptor_listener=True
但是,连接 Controller B -→ A 可能会被拒绝,因为连接已存在。
这意味着没有连接到 Controller A,因为 Controller A 会创建与其他节点的连接,以下命令不会在 Controller A 上返回任何内容:
[root@controller1 ~]# ss -ntlp | grep 27199 [root@controller1 ~]#
RPM 安装程序使用最低特权方法在 control plane 节点之间创建高度连接的对等点,并仅在需要它的那些节点上打开 tcp 侦听器。所有 receptor 连接都是双向的,因此在创建连接后,receptor 可以在两个方向通信。
要从网格中删除实例,请参阅 删除实例。
r