创建“ deployment.yaml”时出错:版本“ v1”中的部署不能作为部署处理

时间:2019-07-27 15:46:03

标签: docker deployment kubernetes

我是DevOps的新手。我为刚在Digital Oceans上创建的Kubernetes集群编写了一个deployment.yaml文件。创建部署会不断出现我目前无法解码的错误。这只是一个测试部署,为我公司的Web应用程序迁移到kubernetes做准备。

我尝试编辑部署的内容,使其看起来像我发现的常规示例。我什至无法得到这个简单的例子。您可以在下面找到Deployment.yaml内容。

---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: testit-01-deployment
spec:
  replicas: 4
  #number of replicas generated
  selector:
    #assigns labels to the pods for future selection
    matchLabels:
      app: testit
      version: v01
  template:
    metadata:
      Labels:
        app: testit
        version: v01
    spec:
      containers:
        -name: testit-container
        image: teejayfamo/testit
        ports:
          -containerPort: 80

我在文件夹容器中的cmd上运行了此行:

kubectl apply -f deployment.yaml --validate=false

  

来自服务器的错误(BadRequest):创建“ deployment.yaml”时出错:   版本“ v1”中的部署不能作为部署处理:   v1.Deployment.Spec:v1.DeploymentSpec.Template:   v1.PodTemplateSpec.Spec:v1.PodSpec.Containers:[] v1.Container:解码   slice:期望[或n,但找到{,在#10字节的错误中发现   ... | tainers“:{”-name“:” t | ...,更大的上下文   ... |:“ testit”,“版本”:“ v01”}},“ spec”:{“ containers”:{“-name”:“ testit-container”,“ image”:“ teejayfamo / tes |。 ..

我什至无法从搜索中获得任何信息。我不能只是创建部署。请问谁能理解并帮助我?

2 个答案:

答案 0 :(得分:1)

您的yaml文件中存在语法错误。

这应该有效。

---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: testit-01-deployment
spec:
  replicas: 4
  #number of replicas generated
  selector:
    #assigns labels to the pods for future selection
    matchLabels:
      app: testit
      version: v01
  template:
    metadata:
      labels:
        app: testit
        version: v01
    spec:
      containers:
      - name: testit-container
        image: teejayfamo/testit
        ports:
        - containerPort: 80

问题是:

  • Labels应该是labels
  • - name:节中- containerPortspec.containers的语法格式不正确。

希望这会有所帮助。

答案 1 :(得分:0)

由于这是搜索的最高结果,我想我应该在可能发生的情况下添加另一个案例。就我而言,它即将到来是因为数字 env 上没有双引号。变种Log 确实提供了一个微妙的提示,但不是很有帮助。

日志

..., bigger context ...|c-server-service"},{"name":"SERVER_PORT","value":80}]

Env 变量 - SERVER_PORT 的值需要用双引号括起来。

env:
  - name: SERVER_HOST
    value: grpc-server-service
  - name: SERVER_PORT
    value: "80"

Kubernetes issue 仍然打开。