Kubernetes 使用“更新部署标签”;“kubectl补丁”;不起作用
我正在尝试使用kubectl更新标签 当我使用Kubernetes 使用“更新部署标签”;“kubectl补丁”;不起作用,kubernetes,kubectl,minikube,Kubernetes,Kubectl,Minikube,我正在尝试使用kubectl更新标签 当我使用apply时,它可以工作,但在执行修补程序时它不能工作 我尝试了kubectl补丁部署nginx部署--patch“$(cat nginx.yaml)”;它返回无更改,我希望在这里返回标签更改 这些是我的yaml上唯一的变化 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: testLab spec: replica
apply
时,它可以工作,但在执行修补程序时它不能工作
我尝试了kubectl补丁部署nginx部署--patch“$(cat nginx.yaml)”
;它返回无更改
,我希望在这里返回标签更改
这些是我的yaml上唯一的变化
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: testLab
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.8
ports:
- containerPort: 80
对什么补丁更新有限制吗?或者我做错了什么
我还尝试指定--type strategic
和其他类型,但似乎都不起作用。您的元数据中应该有这样的内容:
metadata:
name: nginx-deployment
labels:
label: testLabel2
在第二个文件(更改标签的位置)上执行命令kubectl patch后,您应该会看到以下错误:
Error from server: cannot restore map from string
在此文件上执行命令kubectl apply后,您应该会得到以下错误:
error: error validating "nginx.yaml": error validating data: ValidationError(Deployment.metadata): unknown field "label" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta; if you choose to ignore these errors, turn validation off with --validate=false
您的部署文件应如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: helloWorld
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.8
ports:
- containerPort: 8
你没有在应用程序标签后添加空格
添加空间,然后再次执行命令kubectl patch deployment nginx deployment--patch“$(cat nginx.yaml)”
以下是有用的文档:,。对于部署
资源,在元数据
下没有键标签
。见和。有一个标签
键(复数)。当我尝试应用与您显示的内容相匹配的资源时,我在验证数据时遇到一个错误:ValidationError(ConfigMap.metadata):io.k8s.APIMERGENERATION.pkg.API.meta.v1.ObjectMeta中的未知字段“label”代码>。你能更新你的问题吗?我的错,我实际上在用标签。我只是打错了。复制并粘贴了yaml im现在使用的。你能显示kubectl版本--short
?客户端版本:v1.13.1FYI:在这种情况下,标签仍然没有更新,这就是你的回答,正是我以前问问题时尝试过的。我只是在上面的问题中粘贴yaml时出现了一个拼写错误,所以我一看到就纠正了它。关键是更新部署标签时修补程序不起作用。因此,这个答案并不能真正解决问题。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: helloWorld
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.8
ports:
- containerPort: 8