You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

k3s集群中AWX无法访问自身REST API,求助hostAliases配置位置

问题解决:AWX作业模板域名解析失败及hostAliases配置位置

问题背景

在k3s集群通过awx-operator运行AWX时,创建的update_host_group角色调用AWX REST API出现解析错误:

fatal: [localhost]: FAILED! => {"changed": false, "elapsed": 0, "msg": "Status code was -1 and not [201]: Request failed: <urlopen error [Errno -2] Name or service not known>", "redirected": false, "status": -1, "url": "https://awx.example.com"}

核心原因是执行作业的Pod无法解析AWX的域名,需要通过hostAliases手动指定域名映射。

正确配置位置:AWX Custom Resource(CR)

awx-operator通过AWX CR资源管理整个部署,需在CR的spec字段下添加task_pod_template配置段,用于定制作业执行Pod的模板参数。

配置示例

假设你的AWX CR配置文件名为awx-deploy.yaml,修改后内容如下:

apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx  # 替换为你的AWX实例名称
spec:
  # 保留原有配置(如service_type、hostname等)
  task_pod_template:
    hostAliases:
    - ip: "10.43.xx.xx"  # 替换为AWX服务的ClusterIP或外部可访问IP
      hostnames:
      - "awx.your-real-domain.com"  # 替换为你的真实AWX域名

应用配置

执行命令更新AWX部署:

kubectl apply -f awx-deploy.yaml -n awx  # 替换为你的AWX所在命名空间

awx-operator会自动重新生成作业Pod模板,后续启动的作业Pod都会在/etc/hosts中添加指定的域名解析记录。

替代方案:使用Kubernetes内部服务名

如果无需依赖外部域名,可直接在Playbook中使用AWX的Kubernetes内部服务名,跳过hostAliases配置:
将Playbook中的URL修改为:

url: https://<awx-service-name>.<awx-namespace>.svc.cluster.local/api/v2/groups/36/hosts

例如,AWX默认服务名为awx-service、命名空间为awx时,URL为:

url: https://awx-service.awx.svc.cluster.local/api/v2/groups/36/hosts

内容的提问来源于stack exchange,提问作者Red Cricket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:43:16