Awx-operator: minikube v1.19.0 проблемы с веб-перехватчиком для проверки ingress-nginx.

Созданный на 12 апр. 2021  ·  15Комментарии  ·  Источник: ansible/awx-operator

Minikube v1.19.0 обновил ingress-nginx до v0.44.0. По какой-либо причине (все еще пытаясь понять это), я получаю следующую ошибку при просмотре журналов в контейнере awx-operator:

(item=tower_ingress) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"error\": 500, \"item\": \"tower_ingress\", \"msg\": \"Failed to apply object: b'{\\\"kind\\\":\\\"Status\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"metadata\\\":{},\\\"status\\\":\\\"Failure\\\",\\\"message\\\":\\\"Internal error occurred: failed calling webhook \\\\\\\\\\\"validate.nginx.ingress.kubernetes.io\\\\\\\\\\\": an error on the server (\\\\\\\\\\\"\\\\\\\\\\\") has prevented the request from succeeding\\\",\\\"reason\\\":\\\"InternalError\\\",\\\"details\\\":{\\\"causes\\\":[{\\\"message\\\":\\\"failed calling webhook \\\\\\\\\\\"validate.nginx.ingress.kubernetes.io\\\\\\\\\\\": an error on the server (\\\\\\\\\\\"\\\\\\\\\\\") has prevented the request from succeeding\\\"}]},\\\"code\\\":500}\\\\n'\", \"reason\": \"Internal Server Error\", \"status\": 500}

Это может быть связано с: https://github.com/kubernetes/ingress-nginx/issues/5401

Мне удалось обойти проблему, выполнив:

$ kubectl get validatingwebhookconfigurations
$ kubectl delete -A ValidatingWebhookConfiguration [configuration-name]

где в моем случае с minikube [configuration-name] - это ingress-nginx-admission .

Если я вернусь к minikube v1.18.1, все будет нормально работать как с 0.8.0, так и с разработкой awx-оператора.

Для воспроизведения (macos):

$ minikube config set vm-driver hyperkit
$ minikube start --cpus=4 --memory=8192
$ minikube addons configure ingress
$ minikube addons enable ingress
$ minikube addons enable metrics-server
$ minikube addons enable dashboard
$ kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/devel/deploy/awx-operator.yaml
$ kubectl apply -f awx-deploy.yml

awx-deploy.yml:

---
apiVersion: v1
kind: Namespace
metadata:
  name: awx
  labels:
    name: awx
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
  namespace: awx
  labels:
    name: awx
spec:
  tower_ingress_type: Ingress
  tower_hostname: awx-service.awx.svc.cluster.local
---
apiVersion: v1
kind: Secret
metadata:
  name: awx-admin-password
  namespace: awx
  labels:
    name: awx
stringData:
  password: changeme

Работает: Minikube v1.18.1
Неудачи: Minikube v1.19.0

help wanted

Самый полезный комментарий

Выпущен minikube v1.20.0.
https://github.com/kubernetes/minikube/releases/tag/v1.20.0

Эта версия включает исправление этой входящей проблемы (network.k8s.io/v1).
Спасибо.

Все 15 Комментарий

Та же проблема, спасибо @bhundven за обходной путь

Та же проблема и здесь, спасибо большое, @bhundven потратил час на поиск проблемы, и вы, вероятно, сэкономили мне еще 2.

Такая же проблема здесь, отлично работает с minikube v1.18.1 и разработкой awx-оператора.

А я думал, что делаю что-то не так, на прошлой неделе все работало нормально.
Спасибо за обходной путь, надеюсь, команда Ansible решит эту проблему как можно скорее. 👍🏽

Попытка вернуться к версии 1.18.1 под Mac OS с использованием brew, но с помощью brew удален переключатель, и minikube не имеет версии в соответствии с пониманием brew управления версиями. Так как же вам, ребята, вернуться к qinikube 1.18.1, чтобы работать, оплакивая это? brew теперь поддерживает только последнюю поддерживаемую версию программного пакета pkg ...

извините за эту проблему, мы знаем об этой ошибке, мы представили https://github.com/kubernetes/minikube/pull/10879, который, к сожалению, не был обнаружен нашими интеграционными тестами, applogize за все неудобства, это будет приоритетным будет исправлено в следующей версии, пожалуйста, следите за обновлениями

Привет, разработчики и пользователи awx-операторов!
Извините за эту проблему. Мы добавим обходной путь через PR https://github.com/kubernetes/minikube/pull/11189, чтобы можно было создать входящий ресурс.
И мы добавим шаблон интеграционного теста, чтобы проверить, можно ли создать входной ресурс.

Кажется, что awx-оператор использует старую версию входа (extension / v1beta1), но я думаю, что https://github.com/kubernetes/minikube/pull/11189 решит эту проблему в этой версии (я уже тестировал в своем локальном) .
https://github.com/ansible/awx-operator/blob/ee9800c258feaae24fd9bd606caa7076c9781c51/roles/installer/templates/tower_ingress.yaml.j2#L3 -L5

Следите за обновлениями в kubernetes / minikube # 11121 и https://github.com/kubernetes/minikube/pull/11189 .
Спасибо,

Привет, @govargo, спасибо, что

FWIW, я попытался обновить наш объект Ingress чтобы использовать networking.k8s.io/v1 , но все еще вижу ту же ошибку. Я постараюсь протестировать патч, который вы связали, если смогу выяснить, как самому собрать миникуб. В противном случае я просто дождусь выхода следующей версии.

@govargo Теперь установщик проходит ту часть, где произошел сбой, но когда я пытаюсь получить URL-адрес службы из minikube, я вижу:

$ minikube service awx-service --url
😿  service default/awx-service has no node port

Игнорируйте мой последний комментарий. Похоже, что с нашей стороны что-то сломалось. Спасибо за помощь @govargo

Просто чтобы все сжать: это будет исправлено в следующей версии minikube.

Привет shanemcd

Я постараюсь протестировать патч, который вы связали, если смогу выяснить, как самому собрать миникуб.

Если вы хотите попробовать пропатченный миникуб, вы можете сделать это следующими способами.

Method1: Build latest application
$ mkdir -p $GOPATH/src/k8s.io/
$ cd $GOPATH/src/k8s.io/
$ git clone https://github.com/kubernetes/minikube.git
$ cd minikube
# output file will be generated to ./out directory(e.g. out/minikube)
$ make
Method2: Use built binary
# built binaries are put in object storage
# http://storage.googleapis.com/minikube-builds/11189/minikube-linux-amd64
# http://storage.googleapis.com/minikube-builds/11189/minikube-darwin-amd64
# http://storage.googleapis.com/minikube-builds/11189/minikube-windows-amd64.exe

# in case of macOS, use minikube-darwin-amd64
$ curl -LO http://storage.googleapis.com/minikube-builds/11189/minikube-darwin-amd64
$ chmod +x minikube-darwin-amd64
$ sudo mv minikube-darwin-amd64 /usr/local/bin/minikube

Просто чтобы все сжать: это будет исправлено в следующей версии minikube.

Да, следующий выпуск версии исправит эту проблему.

Спасибо.

на свежем t4g.medium с Ubuntu 20.04.2 LTS и minikube_1.18.1-0_arm64.deb и minikube_1.20.0.beta.0-0_arm64.deb я получаю немедленный сбой standard_init_linux.go:219: exec user process caused: exec format error после minikube kubectl apply , Я, наверное, просто пытаюсь запустить неправильную / запутанную арку или что-то в этом роде.

Очень ванильное воспроизведение

$ sudo apt update
$ sudo apt upgrade -y
$ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
$ sudo usermod -aG docker ubuntu ; newgrp docker
$ curl -LO https://github.com/kubernetes/minikube/releases/download/v1.20.0-beta.0/minikube_1.20.0.beta.0-0_arm64.deb
$ sudo dpkg -i minikube_1.20.0.beta.0-0_arm64.deb 
$ minikube start
😄  minikube v1.20.0-beta.0 on Ubuntu 20.04 (arm64)
✨  Automatically selected the docker driver. Other choices: none, ssh
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.20.2 preload ...
    > preloaded-images-k8s-v10-v1...: 514.95 MiB / 514.95 MiB  100.00% 126.56 M
    > gcr.io/k8s-minikube/kicbase...: 327.13 MiB / 327.13 MiB  100.00% 48.85 Mi
    > gcr.io/k8s-minikube/kicbase...: 327.13 MiB / 327.13 MiB  100.00% 16.23 Mi
🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
🐳  Preparing Kubernetes v1.20.2 on Docker 20.10.6 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

$ minikube kubectl -- apply -f https://raw.githubusercontent.com/ansible/awx-operator/0.9.0/deploy/awx-operator.yaml
$ minikube kubectl get pods
awx-operator-5595d6fc57-tlw8p   0/1     CrashLoopBackOff   1          15s

Выпущен minikube v1.20.0.
https://github.com/kubernetes/minikube/releases/tag/v1.20.0

Эта версия включает исправление этой входящей проблемы (network.k8s.io/v1).
Спасибо.

Я все еще пытаюсь получить # 245, в котором можно будет установить apiVersion для входа, но пока он все еще использует extensions/v1beta1 и у меня возникают другие проблемы.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги