本地 Kubernetes 中 Ingress 对象的类名称显示 <none>

Kor*_*ory 1 kubernetes

我正在尝试在本地 kubernetes (Docker-Desktop) 中部署一个简单的 nginx 入口对象,但我注意到当我这样做时,类名显示为“none”:

\n
\xe2\x9e\x9c  localk8 k get ingress\nNAME               CLASS    HOSTS   ADDRESS     PORTS   AGE\ningress-resource   none   *       localhost   80      15m\n
Run Code Online (Sandbox Code Playgroud)\n

我的入口定义文件定义为:

\n
apiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  name: ingress-resource\n  annotations:\n    kubernetes.io/ingress.class: nginx\n    nginx.ingress.kubernetes.io/ssl-redirect: "false"\nspec:\n  rules:\n  - http:\n      paths:\n      - path: /hello\n        pathType: Prefix\n        backend:\n          service:\n            name: hello-app\n            port:\n              number: 8080\n
Run Code Online (Sandbox Code Playgroud)\n

如果这有什么区别的话,我也在 M1 MacBook 上运行。感谢大家的帮助!

\n

abo*_*eep 8

我不确定您使用的 kubernetes 版本是什么,但该注释已在 1.18 中弃用

此外,您需要定义一个IngressClass描述该类的资源,然后使用新字段引用它ingressClassName

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: nginx
spec:
  controller: example.com/ingress-controller
Run Code Online (Sandbox Code Playgroud)

然后在您的入口资源中在spec下添加新字段并引用类名称:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  // use new field
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /hello
        pathType: Prefix
        backend:
          service:
            name: hello-app
            port:
              number: 8080
Run Code Online (Sandbox Code Playgroud)