Kubernetes 得到一个我不知道的错误';我不懂k8s

Kubernetes 得到一个我不知道的错误';我不懂k8s,kubernetes,Kubernetes,我的yaml文件 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-service annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: rules: -http: paths: - path: /

我的yaml文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    -http:
      paths:
        - path: /?(.*)
          backend:
            serviceName: nginx-service
            servicePort: 80

这只是yaml模板错误,请使用

kubectl explain ingress.spec.rules
我想知道

入口规则中也缺少主机名,应该是

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    -host: {replace-me-with-hostname}
     http:
       paths:
        - path: /?(.*)
          backend:
            serviceName: nginx-service
            servicePort: 80 


这只是yaml模板错误,请使用

kubectl explain ingress.spec.rules
我想知道

入口规则中也缺少主机名,应该是

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    -host: {replace-me-with-hostname}
     http:
       paths:
        - path: /?(.*)
          backend:
            serviceName: nginx-service
            servicePort: 80 


问题在于“-http”(连字符和“h”字母之间没有空格字符)中的打字错误

上述YAML创建以下入口:

kubectl get ingress 

NAME           HOSTS                                     ADDRESS   PORTS   AGE
dual-ingress   your-hostname-1,your-hostname-2,bar.com             80      14s

kubectl get ingress -o wide 
NAME           HOSTS                ADDRESS   PORTS   AGE
mono-ingress   *                              80      10s
如果您未在YAML中指定主机,则所有流量将根据IngressRuleValue进行路由。 YAML示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mono-ingress
  annotations:
    <your-annotations-go-here>
spec:
  rules:
     - http:
        paths:
          - path: <path-1>
            backend:
              serviceName: <service1>
              servicePort: <service1-port>
          - path: <path-2>
            backend:
              serviceName: <service2>
              servicePort: <service2-port>
因此,总而言之,
规则:
字段应包含一个
数组
(并且在“-”和“http”之间缺少一个空格字符,因此它不被解析为
数组
,而是
映射


希望能有所帮助。

问题在于“-http”(连字符和“h”字母之间没有空格字符)中的打字错误

上述YAML创建以下入口:

kubectl get ingress 

NAME           HOSTS                                     ADDRESS   PORTS   AGE
dual-ingress   your-hostname-1,your-hostname-2,bar.com             80      14s

kubectl get ingress -o wide 
NAME           HOSTS                ADDRESS   PORTS   AGE
mono-ingress   *                              80      10s
如果您未在YAML中指定主机,则所有流量将根据IngressRuleValue进行路由。 YAML示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mono-ingress
  annotations:
    <your-annotations-go-here>
spec:
  rules:
     - http:
        paths:
          - path: <path-1>
            backend:
              serviceName: <service1>
              servicePort: <service1-port>
          - path: <path-2>
            backend:
              serviceName: <service2>
              servicePort: <service2-port>
因此,总而言之,
规则:
字段应包含一个
数组
(并且在“-”和“http”之间缺少一个空格字符,因此它不被解析为
数组
,而是
映射


希望能有所帮助。

谢谢!这对我来说很有效,没有主持人的名字。我猜它只是格式不正确。@tink3r,这个例子中的YAML和你原来的一样被破坏了。这是一个空格字符的问题。谢谢!这对我来说很有效,没有主持人的名字。我猜它只是格式不正确。@tink3r,这个例子中的YAML和你原来的一样被破坏了。这是一个空格字符的问题。