当前位置: 首页 > 知识库问答 >
问题:

Nginx入口控制器-调用Webhook失败

岳永思
2023-03-14

我在Ubuntu虚拟机上使用kubeadm(V1.18)建立了一个k8s集群。现在我需要添加一个入口控制器。我决定使用nginx(但我对其他解决方案持开放态度)。我根据文档中的“裸机”部分安装了它:

Kubectl apply-f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.31.1/deploy/statist/provider/baremetal/deploy.yaml

安装在我看来很好:

Kubectl get all-n入口-nginx

NAME                                            READY   STATUS      RESTARTS   AGE
pod/ingress-nginx-admission-create-b8smg        0/1     Completed   0          8m21s
pod/ingress-nginx-admission-patch-6nbjb         0/1     Completed   1          8m21s
pod/ingress-nginx-controller-78f6c57f64-m89n8   1/1     Running     0          8m31s

NAME                                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/ingress-nginx-controller             NodePort    10.107.152.204   <none>        80:32367/TCP,443:31480/TCP   8m31s
service/ingress-nginx-controller-admission   ClusterIP   10.110.191.169   <none>        443/TCP                      8m31s

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ingress-nginx-controller   1/1     1            1           8m31s

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/ingress-nginx-controller-78f6c57f64   1         1         1       8m31s

NAME                                       COMPLETIONS   DURATION   AGE
job.batch/ingress-nginx-admission-create   1/1           2s         8m31s
job.batch/ingress-nginx-admission-patch    1/1           3s         8m31s

我怀疑是DNS,但其他NodePort服务正按预期工作,而DNS在集群内工作。

我唯一能看到的是,我没有default-http-backend,这里的文档中提到了这个default-http-backend。然而,根据这条线程,在我的情况下,这似乎很正常。

最后但并非最不重要的是,我还尝试了用清单安装(在从以前的安装中删除ingress-nginx命名空间后)和通过Helm Chart安装。它有同样的结果。

MyingRess.yaml的含量

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /someroute/fittingmyneeds
        pathType: Prefix
        backend:
          serviceName: some-service
          servicePort: 5000

共有1个答案

古明煦
2023-03-14

另一个选择是完全删除验证Webhook:

Kubectl delete-a ValidatingWebhookConfiguration入口-nginx-accomment

我发现我不得不在另一个问题上这样做,但变通方法/解决方案在这里也有效。

这不是最好的答案;最好的答案是弄清楚为什么这不起作用。但在某些时候,你会有变通办法。

我在Mac的Docker上安装,所以我使用了Cloud而不是BareMetal版本:

Kubectl apply-f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/statist/provider/cloud/deploy.yaml

 类似资料:
  • 我正在尝试设置我的第一个Kubernetes集群,它似乎已经设置好,直到nginx-ingress控制器。以下是我的集群信息:节点:三个RHEL7和一个RHEL8节点,主服务器运行在RHEL7Kubernetes服务器版本:1.19.1网络使用:Frannel coredns运行良好。在所有节点上禁用selinux和防火墙 然后,我按照以下页面中的说明安装了nginx入口控制器:https://d

  • 操作系统:RHEL7|k8s版本:1.12/13|kubes祈祷|裸机 我部署了一个标准的kubespray裸机集群,我正在尝试了解部署nginx ingress controller的最简单推荐方法是什么,它将允许我部署简单的服务。没有提供负载平衡器。我希望我的主公共IP作为我的服务的endpoint。 Github k8s ingress nginx建议将节点端口服务作为“强制”步骤,这似乎不

  • 我在RedHat EC2实例上安装了Minikube v1.3.1以进行一些测试。 由于nginx-ingress-控制器默认使用的端口已经在使用中,我正在尝试在部署中更改它们,但没有结果。有人能建议如何做吗? 如何知道端口已在使用? 当我使用命令kubectl-n kube system get deployment | grep nginx列出系统吊舱时,我得到: nginx入口控制器0/1

  • 我试图创建一个入口控制器,它指向我通过Nodeport公开的服务。 以下是入口控制器的yaml文件(摘自https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

  • 我基本上希望通过URL从外部访问Nginx hello页面。我已经为运行kubernetes和Nginx ingress:vps的v服务器的子域创建了一个(工作)a记录。我的域名。通用域名格式 我使用以下教程在CoreOS上通过kubeadm将Kubernetes安装为单节点集群:https://kubernetes.io/docs/setup/independent/install-kubead

  • 我正在AWS EKS上设置NGINX入口控制器。 我浏览了k8s入口资源,它非常有助于理解我们将LB端口映射到k8s服务端口,例如file Def。我安装了nginx控制器,直到必要的步骤。然后教程指示我创建一个入口资源。 我错过了什么?