首页 > 解决方案 > “第 2 行:此上下文中不允许映射值” 创建 Ingress 资源时

问题描述

我正在尝试在 EKS (AWS Kubernetes) 上创建一个入口资源。

做的时候kubect get all我有:

NAME                                                       READY   STATUS    RESTARTS   AGE
pod/auth-demo-6dfb9b5d78-n8znm                             1/1     Running   0          36m
pod/mysql-79945f6847-8jsss                                 1/1     Running   0          4d
pod/ngnix-nginx-ingress-controller-54988f47d7-k4j5h        1/1     Running   0          64m
pod/ngnix-nginx-ingress-default-backend-77457bd5ff-dppwr   1/1     Running   0          64m

NAME                                          TYPE           CLUSTER-IP       EXTERNAL-IP                                                                      PORT(S)                      AGE
service/auth-demo                             NodePort       10.100.133.171   <none>                                                                           8080:32330/TCP               43h
service/kubernetes                            ClusterIP      10.100.0.1       <none>                                                                       443/TCP                      6d
service/mysql                                 ClusterIP      10.100.132.124   <none>                                                                       3306/TCP                     4d
service/ngnix-nginx-ingress-controller        LoadBalancer   10.100.187.138   ad7e991b46f3e11ea82750210ef3e95f-<ommited>.<ommited>.elb.amazonaws.com   80:32282/TCP,443:30047/TCP   64m
service/ngnix-nginx-ingress-default-backend   ClusterIP      10.100.89.32     <none>                                                                       80/TCP                       64m

NAME                                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/auth-demo                             1/1     1            1           43h
deployment.apps/mysql                                 1/1     1            1           4d
deployment.apps/ngnix-nginx-ingress-controller        1/1     1            1           64m
deployment.apps/ngnix-nginx-ingress-default-backend   1/1     1            1           64m

NAME                                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/auth-demo-6dfb9b5d78                             1         1         1       43h
replicaset.apps/mysql-79945f6847                                 1         1         1       4d
replicaset.apps/ngnix-nginx-ingress-controller-54988f47d7        1         1         1       64m
replicaset.apps/ngnix-nginx-ingress-default-backend-77457bd5ff   1         1         1       

64m

这是我的超级简单 YAML:

apiVersion: networking.k8s.io/v1beta1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
    name: <ommited>
    namespace: default
  spec:
    rules:
        http:
          paths:
            - backend:
                serviceName: auth-demo
                servicePort: 8080
              path: /

我得到:error: error parsing deployment.yaml: error converting YAML to JSON: yaml: line 2: mapping values are not allowed in this contextkubectl apply -f deployment.yaml

有人知道诊断方法吗?谢谢!

标签: amazon-web-serviceskuberneteskubernetes-ingressamazon-eks

解决方案


yaml 中存在缩进问题,以下应该可以工作。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
  namespace: default
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: auth-demo
          servicePort: 8080

推荐阅读