AWX Operator 无法执行安装。
有一个 17.0.1 的实例正在运行,也不关心数据是否仍然存在。
按照数据迁移说明执行数据迁移。
按照INSTALL.md执行 AWX Operator 的安装
预计会看到 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
{
"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"
}
把整个事情吹走,重新开始。 服务 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 中也看到了同样的错误。 使用所有最新的二进制文件进行全新安装。
@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","request": "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 中也看到了同样的错误。 使用所有最新的二进制文件进行全新安装。
同样的事情在这里@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 内核,问题得到解决。
最有用的评论
这是我看到的错误片段,我认为它与@bandwiches错误完全一样。
{"level":"error","ts":1620310325.2259731,"logger":"controller-runtime.controller","msg":"协调器错误","controller":"awx-controller","request": "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 种类"}