kubernetes创建的ingress规则不生效

kubernetes创建的ingress规则不生效

解决方法一:

给创建ingress的yaml文件添加ingressClassName参数:

​ 查看ingressclass

[root@k8s-master01 2-4]# kubectl get ingressclass
NAME    CONTROLLER             PARAMETERS   AGE
nginx   k8s.io/ingress-nginx   <none>       22h

​ 根据实际情况添加ingressClassName参数

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx
spec:
  ingressClassName: nginx
  rules:
  - host: nginx.test.com
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: my-nginx
            port:
              number: 80

解决方法二:

设置默认的 IngressClass 。

​ 集群中,我们可以设定一个默认的 Ingress Class,以便处理所有没有指定 Ingress Class 的 Ingress 资源。

​ 在 IngressClass 资源上,我们可以通过将 ingressclass.kubernetes.io/is-default-class 注解的值设定为 true,来使没有设置 ingressClassName 的 Ingress 使用此默认的 IngressClass。

​ 添加ingressclass.kubernetes.io/is-default-class: "true"参数在annotations下

[root@k8s-master01 2-4]# kubectl edit ingressclass nginx

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  annotations:
    ingressclass.kubernetes.io/is-default-class: "true"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"networking.k8s.io/v1","kind":"IngressClass","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"controller","app.kubernetes.io/instance":"ingress-nginx","app.kubernetes.io/name":"ingress-nginx","app.kubernetes.io/part-of":"ingress-nginx","app.kubernetes.io/version":"1.8.1"},"name":"nginx"},"spec":{"controller":"k8s.io/ingress-nginx"}}
  creationTimestamp: "2024-02-19T08:52:53Z"
  generation: 1
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.8.1
  name: nginx
  resourceVersion: "263096"
  uid: f636091a-c014-44b5-8c99-54a40d68f228
spec:
  controller: k8s.io/ingress-nginx

posted @ 2024-02-20 15:32  wangyetao  阅读(511)  评论(0)    收藏  举报