我是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 |。 ..
我什至无法从搜索中获得任何信息。我不能只是创建部署。请问谁能理解并帮助我?
答案 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:
节中- containerPort
和spec.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 仍然打开。