12.3. 配置检查和通知脚本
keepalived 通过定期运行可选用户提供的检查脚本来监控应用程序的健康状况。例如,该脚本可以通过发出请求并验证响应来测试 Web 服务器。作为集群管理员,您可以提供一个可选的 notify 脚本,该脚本会在状态发生变化时调用。
				检查和通知在 IP 故障转移容器集中运行的脚本,并使用容器集文件系统,而不是主机文件系统。但是,IP 故障转移 pod 使主机文件系统在 /hosts 挂载路径下可用。在配置检查或通知脚本时,您必须提供脚本的完整路径。提供脚本的建议方法是使用 ConfigMap 对象。
			
				检查和通知脚本的完整路径名称添加到 Keepalived 配置文件 _/etc/keepalived/keepalived.conf 中,该文件会在 Keepalived 每次启动时加载。可以使用 ConfigMap 对象将脚本添加到 pod,如以下方法所述。
			
检查脚本
				不提供检查脚本时,将运行一个简单的默认脚本来测试 TCP 连接。当监控端口为 0 时,禁止此默认测试。
			
				每个 IP 故障转移 pod 管理一个 Keepalived 守护进程,在运行 pod 的节点上管理一个或多个虚拟 IP (VIP)地址。Keepalived 守护进程为该节点保留每个 VIP 的状态。特定节点上的特定 VIP 可能处于 master、backup 或 fault 状态。
			
				如果检查脚本返回非零,节点会进入 backup 状态,并且它拥有的任何 VIP 被重新分配。
			
notify 脚本
keepalived 将以下三个参数传递给 notify 脚本:
- 
						$1-group或instance
- 
						$2-group或instance的名称
- 
						$3- 新状态:master、backup或fault
先决条件
- 
						已安装 OpenShift CLI(oc)。
- 
						使用具有 cluster-admin权限的用户登陆到集群。
流程
- 创建所需脚本,并创建 - ConfigMap对象来容纳它。脚本没有输入参数,并且必须返回- 0(- OK)和- 1(- fail)。- 检查脚本, - mycheckscript.sh:- #!/bin/bash # Whatever tests are needed # E.g., send request and verify response exit 0- #!/bin/bash # Whatever tests are needed # E.g., send request and verify response exit 0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建 - ConfigMap对象:- oc create configmap mycustomcheck --from-file=mycheckscript.sh - $ oc create configmap mycustomcheck --from-file=mycheckscript.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将脚本添加到容器集。挂载的 - ConfigMap对象的- defaultMode必须能够使用- oc命令或编辑部署配置来运行。值通常为- 0755、- 493(十进制):- oc set env deploy/ipfailover-keepalived \ OPENSHIFT_HA_CHECK_SCRIPT=/etc/keepalive/mycheckscript.sh- $ oc set env deploy/ipfailover-keepalived \ OPENSHIFT_HA_CHECK_SCRIPT=/etc/keepalive/mycheckscript.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - oc set volume deploy/ipfailover-keepalived --add --overwrite \ --name=config-volume \ --mount-path=/etc/keepalive \ --source='{"configMap": { "name": "mycustomcheck", "defaultMode": 493}}'- $ oc set volume deploy/ipfailover-keepalived --add --overwrite \ --name=config-volume \ --mount-path=/etc/keepalive \ --source='{"configMap": { "name": "mycustomcheck", "defaultMode": 493}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- oc set env命令对空格敏感。- =符号的两侧不能有空格。提示- 您还可以编辑 - ipfailover-keepalived部署配置:- oc edit deploy ipfailover-keepalived - $ oc edit deploy ipfailover-keepalived- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 保存更改并退出编辑器。这会重启 - ipfailover-keepalived。