2.3. 定义自动化网格节点类型
要扩展作业容量,请创建一个可以添加的独立 执行节点,与自动化控制器部署一起运行。这些执行节点不是自动化控制器 Kubernetes 集群的一部分。控制节点在集群连接中运行,并通过 Receptor 向执行节点提交工作。这些执行节点在自动化控制器中注册为类型 执行 实例,这意味着它们仅用于运行作业,而不是分配工作或作为控制节点处理 Web 请求。
跃点节点 可以添加到自动化控制器和独立执行节点的 control plane 之间。这些跃点节点不是 Kubernetes 集群的一部分,并在自动化控制器中注册,作为类型跃点( hop )的实例,这意味着它们只会处理不同或更严格的网络中的入站和出站流量。
以下流程演示了如何为主机设置节点类型。
流程
-
在导航面板中,选择
。 在 Instances 列表页面中,单击 。Create new Instance 窗口将打开。
实例需要以下属性:
主机名 :(必需)为您的实例输入完全限定域名(公共 DNS)或 IP 地址。此字段等同于基于安装程序部署
的主机名。注意如果实例使用无法从控制集群解析的私有 DNS,DNS 查找路由会失败,并且生成的 SSL 证书无效。改为使用 IP 地址。
- 可选: 描述 :输入实例的描述。
- Instance State :此字段已自动填充,表示它正在安装,且无法修改。
-
侦听器 端口 :此端口用于 receptor 侦听进入的连接。您可以将端口设置为适合您的配置的端口。此字段等同于 API 中的
listener_port。默认值为 27199,但您可以设置自己的端口值。 实例类型 :只能创建
execution和hop节点。基于 Operator 的部署不支持控制或混合节点。选项:
- 启用实例 :选中此框,使它可用于在执行节点上运行。
- 选中 Managed by Policy 复选框,以启用策略来确定如何分配实例。
从控制节点框中选中 Peers,以启用控制节点自动到此实例的对等点。对于连接到自动化控制器的节点,请选中 Peers from Control nodes 复选框,以在该节点和自动化控制器之间创建直接通信链接。对于所有其他节点:
- 如果您没有添加跃点节点,请确保 检查来自 Control 的 Peers。
- 如果要添加跃点节点,请确保没有 检查来自 Control 的 Peers。
- 对于与跃点节点通信的执行节点,请不要选中此框。
要将执行节点与跃点节点对等,点 Peers 字段旁边的
图标。
此时会显示 Select Peers 窗口。
将执行节点与跃点节点对等。
点击 。
要查看更新拓扑的图形表示,请参阅 Topology viewer。
注意从任何可通过 SSH 访问新创建的实例的计算机执行以下步骤。
点 Install Bundle 旁边的
图标下载包含这个新实例的 tar 文件,以及将创建的节点安装到自动化网格中所需的文件。
安装捆绑包包含 TLS 证书和密钥、证书颁发机构和正确的 Receptor 配置文件。
receptor-ca.crt work-public-key.pem receptor.key install_receptor.yml inventory.yml group_vars/all.yml requirements.yml从您下载的位置中提取下载的
tar.gzInstall Bundle。为确保这些文件位于远程机器上的正确位置,安装捆绑包包含install_receptor.ymlplaybook。playbook 需要 Receptor 集合。运行以下命令以下载集合:ansible-galaxy collection install -r requirements.yml在运行
ansible-playbook命令前,请编辑inventory.yml文件中的以下字段:all: hosts: remote-execution: ansible_host: 10.0.0.6 ansible_user: <username> # user provided ansible_ssh_private_key_file: ~/.ssh/<id_rsa>-
确保
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>这指示
install-receptor.ymlplaybook 使用 proxy 命令通过本地 DNS 节点连接到私有节点。- 配置属性后,单击 。所创建的实例的 Details 页面将打开。
- 保存文件以继续。
运行安装捆绑包的系统来设置远程节点并运行
ansible-playbook需要安装ansible.receptor集合:ansible-galaxy collection install ansible.receptoror
ansible-galaxy install -r requirements.yml-
从
requirements.yml文件安装 receptor 集合依赖项会持续检索指定的 receptor 版本。另外,它会检索将来可能需要的任何其他集合依赖项。 - 在运行 playbook 的所有节点上安装 receptor 集合,否则会出现错误。
-
从
如果定义了
receptor_listener_port,机器还需要一个可用的开放端口来建立入站 TCP 连接,例如 27199。运行以下命令,为 receptor 通讯打开端口 27199 :sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp注意可能是有些服务器没有侦听 receptor 端口(默认值为 27199)
假设您有一个带有节点 A、B、C、D 的 Control plane
RPM 安装程序使用最低特权方法在 control plane 节点之间创建高度连接的对等点,并仅在需要它的那些节点上打开 tcp 侦听器。所有 receptor 连接都是双向的,因此在创建连接后,receptor 可以在两个方向通信。
以下是三个控制器节点的对等设置示例:
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 ~]#在您要更新自动化网格的机器上运行以下 playbook:
ansible-playbook -i inventory.yml install_receptor.yml此 playbook 运行后,您的自动化网格会被配置。
要从网格中删除实例,请参阅 删除实例。