我有一个Kubernetes部署,它是两个具有不同配置的ACTIVE ReplicaSet的所有者/父母。
此设置由Helm管理。
我已经尝试制作revisionHistory: 0
。由于ReplicaSet处于非活动状态,因此无法使用。由于节点上的资源限制,这个旧的ReplicaSet尝试启动一个pod,并使其处于挂起状态。
我尝试更新部署,并且仅更新了新的副本集。旧的保持不变。
我也无法删除此ReplicaSet。这给我造成了很多麻烦。
有人可以帮我解决这个问题吗?
头盔部署模板-
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
namespace: kube-system
spec:
selector:
matchLabels:
k8s-app: example
replicas: 1
template:
metadata:
labels:
k8s-app: example
spec:
serviceAccountName: example
nodeSelector:
node-role: example-node
containers:
- name: example
image: example-image:vX.X.X
resources:
requests:
cpu: 100m
ports:
- name: example-port
containerPort: XXXX
- name: example-port-1
containerPort: XXXX
readinessProbe:
httpGet:
path: /example
port: XXXX
initialDelaySeconds: 5
timeoutSeconds: 5
- name: example-sidecar
image: example-image-sidecar:vX.X.X
resources:
limits:
memory: 400Mi
requests:
cpu: 100m
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
command:
- command
- --container=example
- --cpu=200m
- --extra-cpu=10m
- --memory=300Mi
- --extra-memory=2Mi
- --threshold=5
- --deployment=example
我尝试更新部署,并且仅更新了新的副本集。旧的保持不变。
在这种情况下,问题是您有2个不同的部署。您正在编辑的一个(以便更新一个RS)和另一个以其他方式创建的(“旧”)。
通常,您不能轻易删除ReplicaSet,因为它是由另一个实体控制的。
在Kubernetes中,可以通过以下方式删除RS:
kubectl get replicaset -n kube-system
查找“旧” RS的名称。 kubectl describe <rs-name>
此设置由Helm管理。
P.S。等待您对Helm版本的回答。想与Helm检查相同。收到您的来信后,将编辑此答案。
让我知道是否有帮助。
您取消部署并重新部署了吗?
遵循步骤
它应该工作。