Awx-operator: AWX Operator 安装 AWX 容器/实例失败

创建于 2021-05-05  ·  13评论  ·  资料来源: ansible/awx-operator

问题类型

AWX Operator 无法执行安装。

概括

有一个 17.0.1 的实例正在运行,也不关心数据是否仍然存在。

按照数据迁移说明执行数据迁移。

按照INSTALL.md执行 AWX Operator 的安装

  • minikube v1.18.1 在此期间通过 INSTALL.md 的链接安装
环境
  • AWX 版本:19.1.0
  • 运营商版本:0.9.0
  • Kubernetes 版本:1.20.2
  • AWX 安装方法:操作员
重现步骤

按照INSTALL.md

预期成绩

预计会看到 pods/AWX 实例

实际结果

minikube kubectl apply -- -f myawx.yml

30 分钟后,只有协调器在运行,拖尾日志显示循环错误。

附加信息
xxx<strong i="31">@yyy</strong>:~$ minikube kubectl get pods
NAME                            READY   STATUS    RESTARTS   AGE
awx-operator-5595d6fc57-hdj9d   1/1     Running   0          29m
xxx<strong i="34">@yyy</strong>:~$ minikube version
minikube version: v1.18.1
AWX 操作员日志
{
  "level": "error",
  "ts": 1620223136.6924627,
  "logger": "logging_event_handler",
  "msg": "",
  "name": "custom.name.awx", 
  "namespace": "default",
  "gvk": "awx.ansible.com/v1beta1,Kind=AWX",
  "event_type": "runner_on_failed",
  "job": "2601737961087659062",
  "EventData.Task": "Create Database if no database is specified",
  "EventData.TaskArgs": "",
  "EventData.FailedTaskPath": "/opt/ansible/roles/installer/tasks/database_configuration.yml:68",
  "error": "[playbook task failed]",
  "stacktrace": "github.com/go-logr/zapr.(*zapLogger).Error\n\tpkg/mod/github.com/go-logr/[email protected]/zapr.go:128\ngithub.com/operator-framework/operator-sdk/pkg/ansible/events.loggingEventHandler.Handle\n\tsrc/github.com/operator-framework/operator-sdk/pkg/ansible/events/log_events.go:87"
}
needs_info worked_for_me

最有用的评论

这是我看到的错误片段,我认为它与@bandwiches错误完全一样。

{"level":"error","ts":1620310325.2259731,"logger":"controller-runtime.controller","msg":"协调器错误","controller":"awx-controller","re​​quest": "default/awx","error":"event runner on failed","stacktrace":"github.com/go-logr/zapr.( zapLogger).Error\n\tpkg/mod/github.com/go- LOGR / [email protected]/zapr.go :128 \ nsigs.k8s.io/controller-runtime/pkg/internal/controller(控制器).reconcileHandler \ n \ tpkg / MOD / sigs.k8s.io /控权[email protected]/pkg/internal/controller/controller.go :258\nsigs.k8s.io/controller-runtime/pkg/internal/controller.( Controller).processNextWorkItem\n\tpkg/mod/sigs.k8s。 io/ [email protected]/pkg/internal/controller/controller.go :232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.( Controller).worker\n\tpkg/mod/ sigs.k8s.io/ [email protected]/pkg/internal/controller/controller.go :211 \ nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 \ n \ tpkg / MOD / K8S。 io/ [email protected]/pkg/util/wait/wait.go :155\nk8s.io/apimachinery/pkg/util/wait.Back offUntil\n\tpkg/mod/k8s.io/ [email protected]/pkg/util/wait/wait.go :156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\tpkg/mod/ k8s.io/ [email protected]/pkg/util/wait/wait.go :133\nk8s.io/apimachinery/pkg/util/wait.Until\n\tpkg/mod/k8s.io/apimachinery@v0 . 18.2/pkg/util/wait/wait.go :90"}
{"level":"info","ts":1620310327.3738635,"logger":"logging_event_handler","msg":"[playbook task]","name":"awx","namespace":"default", "gvk":"awx.ansible.com/v1beta1, Kind=AWX","event_type":"playbook_on_task_start","job":"261049867304784443","EventData.Name":"安装程序:将标签修补到 AWX 种类"}

所有13条评论

把整个事情吹走,重新开始。 服务 Pod 卡在 0/4 挂起状态。 现在又过了 45 分钟。

这是一个准确的任务,它不断地失败,没有真正的输出/日志。

TASK [installer : Apply deployment resources] **********************************
task path: /opt/ansible/roles/installer/tasks/resources_configuration.yml:34

输出

{
    "level":"error",
    "ts":1620229749.932002,
    "logger":"controller-runtime.controller",
    "msg":"Reconciler error",
    "controller":"awx-controller",
    "request":"default/awx",
    "error":"event runner on failed",
    "stacktrace": 
        "github.com/go-logr/zapr.(*zapLogger).Error
            pkg/mod/github.com/go-logr/[email protected]/zapr.go:128
        sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
            pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:258
        sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
            pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:232
        sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker
            pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:211
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1
            pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:155
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil
            pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:156
        k8s.io/apimachinery/pkg/util/wait.JitterUntil
            pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:133
        k8s.io/apimachinery/pkg/util/wait.Until
            pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:90"
}

日志
awx-web :带有以下两行的陈旧图像

[INFO] SIGTERM: Shutting down servers then terminating
[INFO] plugin/health: Going into lameduck mode for 5s

redis :图像下载后过时
awx-task :没有
awx-ee :没有

@bandwiches我们需要更多信息来了解正在发生的事情。
请向我们发送以下信息:

kubectl get awx -o yaml awx

kubectl describe deployment awx

kubectl describe statefulset awx-postgres

kubectl get pods 

kubectl get events

谢谢!

我在 minikube 中看到了同样的事情。 这是我的输出。 在 centos7 上的 kubernetes 中也看到了同样的错误。 使用所有最新的二进制文件进行全新安装。

描述_awx.txt
describe_stateful.txt
事件.txt
get_awx.txt
豆荚.txt

@bandwiches我们需要更多信息来了解正在发生的事情。
请向我们发送以下信息:

kubectl get awx -o yaml awx

kubectl describe deployment awx

kubectl describe statefulset awx-postgres

kubectl get pods 

kubectl get events

谢谢!

为了清楚起见,我觉得我应该声明我正在使用 minikube,因为它是 AWX 安装指南推荐的。

get_awx.txt
describe_deployment_awx.txt
describe_statefulset.txt
get_pods.txt
获取事件.txt

(编辑)我看到 AWX pod 的 CPU 警告(CPU 不足)。 我不得不说,这是一个带有 2 个 CPU 和 2GB RAM 的专用 VM。 此 VM 在运行 AWX v15 和 v17 时没有问题。 v19新引入的安装方式突然报错资源? 可以理解,这可能会因版本而异,但既然这是一个问题,那么了解最低系统要求会很好。

这是我看到的错误片段,我认为它与@bandwiches错误完全一样。

{"level":"error","ts":1620310325.2259731,"logger":"controller-runtime.controller","msg":"协调器错误","controller":"awx-controller","re​​quest": "default/awx","error":"event runner on failed","stacktrace":"github.com/go-logr/zapr.( zapLogger).Error\n\tpkg/mod/github.com/go- LOGR / [email protected]/zapr.go :128 \ nsigs.k8s.io/controller-runtime/pkg/internal/controller(控制器).reconcileHandler \ n \ tpkg / MOD / sigs.k8s.io /控权[email protected]/pkg/internal/controller/controller.go :258\nsigs.k8s.io/controller-runtime/pkg/internal/controller.( Controller).processNextWorkItem\n\tpkg/mod/sigs.k8s。 io/ [email protected]/pkg/internal/controller/controller.go :232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.( Controller).worker\n\tpkg/mod/ sigs.k8s.io/ [email protected]/pkg/internal/controller/controller.go :211 \ nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 \ n \ tpkg / MOD / K8S。 io/ [email protected]/pkg/util/wait/wait.go :155\nk8s.io/apimachinery/pkg/util/wait.Back offUntil\n\tpkg/mod/k8s.io/ [email protected]/pkg/util/wait/wait.go :156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\tpkg/mod/ k8s.io/ [email protected]/pkg/util/wait/wait.go :133\nk8s.io/apimachinery/pkg/util/wait.Until\n\tpkg/mod/k8s.io/apimachinery@v0 . 18.2/pkg/util/wait/wait.go :90"}
{"level":"info","ts":1620310327.3738635,"logger":"logging_event_handler","msg":"[playbook task]","name":"awx","namespace":"default", "gvk":"awx.ansible.com/v1beta1, Kind=AWX","event_type":"playbook_on_task_start","job":"261049867304784443","EventData.Name":"安装程序:将标签修补到 AWX 种类"}

@exodusprime1337

发现。

我有完全相同的错误,但在裸机 kubernetes 集群上:
AWX 版本:19.1.0
运营商版本:0.9.0
Kubernetes 版本:v1.21.0 和 containerd 1.4.4
AWX 安装方法:操作员

@bandwiches我们需要更多信息来了解正在发生的事情。
请向我们发送以下信息:

kubectl get awx -o yaml awx

kubectl describe deployment awx

kubectl describe statefulset awx-postgres

kubectl get pods 

kubectl get events

谢谢!

为了清楚起见,我觉得我应该声明我正在使用 minikube,因为它是 AWX 安装指南推荐的。

get_awx.txt
describe_deployment_awx.txt
describe_statefulset.txt
get_pods.txt
获取事件.txt

(编辑)我看到 AWX pod 的 CPU 警告(CPU 不足)。 我不得不说,这是一个带有 2 个 CPU 和 2GB RAM 的专用 VM。 此 VM 在运行 AWX v15 和 v17 时没有问题。 v19新引入的安装方式突然报错资源? 可以理解,这可能会因版本而异,但既然这是一个问题,那么了解最低系统要求会很好。

对于您的情况,看起来问题与 CPU 有关(如您所提到的)

NAME                            READY   STATUS    RESTARTS   AGE
awx-5b58db49c-9gslf             0/4     Pending   0          7m3s
awx-operator-5595d6fc57-92txg   1/1     Running   0          10m
awx-postgres-0                  1/1     Running   0          7m14s

LAST SEEN   TYPE      REASON                    OBJECT                                          MESSAGE
87s         Warning   FailedScheduling          pod/awx-5b58db49c-9gslf                         0/1 nodes are available: 1 Insufficient cpu.

查看您的部署,我们可以看到它使用默认的resource限制:

   awx-web:
    Image:      quay.io/ansible/awx:19.1.0
    Port:       8052/TCP
    Host Port:  0/TCP
    Requests:
      cpu:     1
      memory:  2Gi

....

   awx-task:
    Image:      quay.io/ansible/awx:19.1.0
    Port:       <none>
    Host Port:  <none>
    Args:
      /usr/bin/launch_awx_task.sh
    Requests:
      cpu:     500m
      memory:  1Gi

....

请注意建议的值(内存和 cpu)仍然相同(请参阅 https://github.com/ansible/awx-operator/pull/93/files),您可以覆盖它以满足您的需求。 那应该适合你。 请告诉我们。

我在 minikube 中看到了同样的事情。 这是我的输出。 在 centos7 上的 kubernetes 中也看到了同样的错误。 使用所有最新的二进制文件进行全新安装。

描述_awx.txt
describe_stateful.txt
事件.txt
get_awx.txt
豆荚.txt

同样的事情在这里@exodusprime1337

LAST SEEN   TYPE      REASON                    OBJECT                                          MESSAGE
2s          Warning   FailedScheduling          pod/awx-5b58db49c-bfwnt                         0/1 nodes are available: 1 Insufficient memory.
21m         Normal    SuccessfulCreate          replicaset/awx-5b58db49c                        Created pod: awx-5b58db49c-bfwnt

   awx-web:
    Image:      quay.io/ansible/awx:19.1.0
    Port:       8052/TCP
    Host Port:  0/TCP
    Requests:
      cpu:     1
      memory:  2Gi

    Requests:
      cpu:     500m
      memory:  1Gi

如果您运行kubectl get nodes <NODE_NAME> -o yaml ,您将看到节点的内存量:

  allocatable:
    cpu: 7800m
    ephemeral-storage: "222240964241"
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 31547268Ki
    pods: "250"
  capacity:
    cpu: "8"
    ephemeral-storage: 235495Mi
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 32173956Ki
    pods: "250"


> kubectl top nodes                                                                                                                                                                                                                                                                       
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%     
p70      763m         9%     12685Mi         41%         

@tchellomello感谢那里的更新。 我正在关注您,但我非常关注 AWX 安装教程,因为它提供了最低限度的配置并导致了这个结果。 也许两个包之间应该有更多的交叉通信,以确保最小配置实际上是最低配置? 安装文档中从未提及这些设置。

编辑 -
根据您的链接,我注意到了这两个。
awx_v1beta1_molecule.yml (cpu: 500m, memory: 128M // cpu: 500m, memory: 128M)
installer\defaults\main.yml (cpu: 1000m, memory: 1Gi // cpu: 500m, memory: 2Gi)

一个问题是 AWX INSTALL.md没有提到最低要求,因此从 v17 到 v19 的过渡更加困难,因为以前有效,可能不再作为“默认”工作。 虽然我知道需求可能会改变,但知道最低要求/默认值已经改变也会很好。

@bandwiches我听到你了,我同意文档有

关于https://github.com/ansible/awx-operator/blob/devel/deploy/crds/awx_v1beta1_molecule.yaml ,这里用于molecule测试 -> https://github .com/ansible/awx-operator/blob/devel/molecule/test-local/converge.yml#L31所以这是完全不同的场景并且不一定是一致的,因为对于这个测试我们不需要分配那个安装内存和CPU。

@bandwiches我听到你了,我同意文档有

我很乐意,除非我认为awx回购超过了awx-operator并且无法解决不一致的问题。

关于您对系统设置的回应 - 理解,这是公平的,对此没有任何疑虑。

一旦我能够解决资源问题,我就遇到了另一个问题,我觉得它在这里仍然合适。 默认情况下, awx-service无法从外部访问(无论是 Ingress 还是 NodePort)。 该问题实际上与 IPTABLES 未添加规则以允许服务的目标端口有关。

minikube service awx-service --url返回 IP:PORT,但该 PORT 永远不允许通过 iptables。 添加规则到DOCKER链上的dport跳跃到ACCEPT解决了这个问题。

第二个问题 - minikube 服务 IP。 我没有看到任何可以配置的地方,但是我承认我可能会忽略它,因为我今天必须访问多少个不同的存储库。 这实际上存在 2 个问题 (1) 现在我们需要首先路由到主机以进行底层子网访问,以及 (2) 如果该子网已在使用,则不考虑组织重叠。 我相信默认的底层网络是192.168.49.0/24 ,这对于桥接/传输网络来说是巨大的,并且增加了重叠的风险。

嗨,三明治
非常感谢您的提示,我有同样的问题在虚拟机中的 k3s 集群上部署 ansible awx,并且不知道会发生什么以及如何排除故障,关于您的帖子,最后我增加了我的 ansible awx VM 主机内存和 CPU 内核,问题得到解决。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

daenney picture daenney  ·  6评论

nicolaibaralmueller picture nicolaibaralmueller  ·  4评论

tylerauerbeck picture tylerauerbeck  ·  6评论

flisak-robert picture flisak-robert  ·  8评论

daenney picture daenney  ·  8评论