【问题标题】:Four different errors when using kubectl apply command使用 kubectl apply 命令时的四种不同错误
【发布时间】:2021-05-23 17:04:30
【问题描述】:

我的docker-compose文件如下:

version: '3'

services:
    nginx:
        build: .
        container_name: nginx
        ports:
            - '80:80'

还有我的Dockerfile

FROM nginx:alpine

我使用了kompose konvert,它创建了两个名为nginx-deployment.ymlnginx-service.yml 的文件,内容如下。

nginx-deployment.yml:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.22.0 (955b78124)
  creationTimestamp: null
  labels:
    io.kompose.service: nginx
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: nginx
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.22.0 (955b78124)
      creationTimestamp: null
      labels:
        io.kompose.service: nginx
    spec:
      containers:
        - image: nginx:alpine
          name: nginx
          ports:
            - containerPort: 80
          resources: {}
      restartPolicy: Always
status: {}

还有nginx-service.yml

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.22.0 (955b78124)
  creationTimestamp: null
  labels:
    io.kompose.service: nginx
  name: nginx
spec:
  ports:
    - name: "80"
      port: 80
      targetPort: 80
  selector:
    io.kompose.service: nginx
status:
  loadBalancer: {}

我的kustomization.yml

resources:
        - nginx-deployment.yml
        - nginx-service.yml

所有文件都在同一路径/home

我运行了这三个命令,但是对于每个命令,我都得到了不同的错误:

  1. kubectl apply -f kustomization.yml:
error: error validating "kustomization.yml": error validating data: [apiVersion not set, kind not set]; if you choose to ignore these errors, turn validation off with --validate=false
  1. kubectl apply -k .:
error: accumulating resources: accumulation err='accumulating resources from 'nginx-deployment.yml': evalsymlink failure on '/home/nginx-deployment.yml' : lstat /home/nginx-deployment.yml: no such file or directory': evalsymlink failure on '/home/nginx-deployment.yml' : lstat /home/nginx-deployment.yml: no such file or directory
  1. kubectl apply -f kustomization.yml --validate=false:
error: unable to decode "kustomization.yml": Object 'Kind' is missing in '{"resources":["nginx-deployment.yml","nginx-service.yml"]}'
  1. kubectl apply -k . --validate=false:
error: accumulating resources: accumulation err='accumulating resources from 'nginx-deployment.yml': evalsymlink failure on '/home/nginx-deployment.yml' : lstat /home/nginx-deployment.yml: no such file or directory': evalsymlink failure on '/home/nginx-deployment.yml' : lstat /home/nginx-deployment.yml: no such file or directory

kubernetes 是单个节点。

为什么会出现这些错误以及如何在这种环境中运行我的容器?

【问题讨论】:

  • 你不应该申请kustomization.yaml。您应该使用-k,但看起来您在运行命令时没有在同一目录中的文件?
  • @Jonas 从那时起我发现@Faheem 回答,自动生成的文件的扩展名是yaml 但我指向yml 文件,所以它说没有这样的文件或目录,这很漂亮正常:)

标签: kubernetes kubectl kustomize


【解决方案1】:

您的Kustomization.yml 文件有两个错误。 kompose 生成的文件具有 .yaml 扩展名,但您指的是 .yml 并且您缺少 kindapiVersion 行。

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - nginx-deployment.yaml
  - nginx-service.yaml
kubectl apply -k .

【讨论】:

  • 谢谢,关于扩展我没有注意到这一点,因为我没有运行ls 命令:)
猜你喜欢
  • 2019-01-03
  • 2019-07-25
  • 1970-01-01
  • 2021-01-12
  • 2019-06-03
  • 1970-01-01
  • 2017-03-20
  • 2019-11-18
  • 2019-01-03
相关资源
最近更新 更多