k8s部署redis报错:MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

编程入门 行业动态 更新时间:2024-10-25 14:24:23

k8s部署redis<a href=https://www.elefans.com/category/jswz/34/1771188.html style=报错:MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable"/>

k8s部署redis报错:MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

在k8s集群中部署redis时报错:

The Deployment "redis" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"redis"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

报错原因:
在同一个命名空间已经部署一个相同name的deployment,之前部署的redis的它deployment名字和这次部署的redis的deployment名字相同,但选择器的标签不同。

已部署的gitlab-redis.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: redisnamespace: kube-opslabels:name: redis
spec:selector:matchLabels:name: redistemplate:metadata:labels:name: redisspec:containers:- name: redisimage: sameersbn/redisimagePullPolicy: IfNotPresentports:- name: rediscontainerPort: 6379volumeMounts:- mountPath: /var/lib/redisname: datalivenessProbe:exec:command:- redis-cli- pinginitialDelaySeconds: 30timeoutSeconds: 5readinessProbe:exec:command:- redis-cli- pinginitialDelaySeconds: 5timeoutSeconds: 1volumes:- name: dataemptyDir: {}---
apiVersion: v1
kind: Service
metadata:name: redisnamespace: kube-opslabels:name: redis
spec:ports:- name: redisport: 6379targetPort: redisselector:name: redis

即将部署的prome-redis.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:name: redisnamespace: kube-ops
spec:selector:matchLabels:app: redistemplate:metadata:annotations:prometheus.io/scrape: "true"prometheus.io/port: "9121"labels:app: redisspec:containers:- name: redisimage: redis:4resources:requests:cpu: 100mmemory: 100Miports:- containerPort: 6379- name: redis-exporterimage: oliver006/redis_exporter:latestresources:requests:cpu: 100mmemory: 100Miports:- containerPort: 9121
---
kind: Service
apiVersion: v1
metadata:name: redisnamespace: kube-ops
spec:selector:app: redisports:- name: redisport: 6379targetPort: 6379- name: promport: 9121targetPort: 9121

那么我们需要对prome-redis.yaml 的name进行修改

apiVersion: apps/v1
kind: Deployment
metadata:name: prome-redisnamespace: kube-ops
spec:selector:matchLabels:app: redistemplate:metadata:annotations:prometheus.io/scrape: "true"prometheus.io/port: "9121"labels:app: redis1spec:containers:- name: prome-redisimage: redis:4resources:requests:cpu: 100mmemory: 100Miports:- containerPort: 6379- name: redis-exporterimage: oliver006/redis_exporter:latestresources:requests:cpu: 100mmemory: 100Miports:- containerPort: 9121
---
kind: Service
apiVersion: v1
metadata:name: prome-redisnamespace: kube-ops
spec:selector:app: redisports:- name: redisport: 6379targetPort: 6379- name: promport: 9121targetPort: 9121

修改配置文件后,重新执行

root@ub001:~/k8s/devops/prometheus# kubectl apply -f prome-redis.yaml 
deployment.apps/prome-redis created
service/prome-redis created

如果该篇文章对您有一点点帮助,请点个赞👍吧!

更多推荐

k8s部署redis报错:MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immu

本文发布于:2024-02-11 05:56:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679507.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   MatchExpressions   k8s   redis   field

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!