19.4. 管理实例
要扩展作业容量,请创建一个可以添加的独立 执行节点,与自动化控制器部署一起运行。这些执行节点不是自动化控制器 Kubernetes 集群的一部分。
控制节点在集群连接中运行,并通过 Receptor 向执行节点提交工作。
这些执行节点在自动化控制器中注册为类型 执行
实例,这意味着它们仅用于运行作业,而不是分配工作或作为控制节点处理 Web 请求。
跃点节点 可以添加到自动化控制器和独立执行节点的 control plane 之间。这些跃点节点不是 Kubernetes 集群的一部分,并在自动化控制器中注册,作为类型跃点( hop
)的实例,这意味着它们只会处理不同或更严格的网络中的入站和出站流量。
以下流程演示了如何为主机设置节点类型。
流程
-
在导航面板中,选择
。 在 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 或者
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