问题-具有多个活动副本集的Kubernetes部署

问题描述 投票:0回答:2

我有一个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
kubernetes kubernetes-helm
2个回答
0
投票

我尝试更新部署,并且仅更新了新的副本集。旧的保持不变。

在这种情况下,问题是您有2个不同的部署。您正在编辑的一个(以便更新一个RS)和另一个以其他方式创建的(“旧”)。

通常,您不能轻易删除ReplicaSet,因为它是由另一个实体控制的。

在Kubernetes中,可以通过以下方式删除RS:

  • kubectl get replicaset -n kube-system查找“旧” RS的名称。
  • 查找“旧” RS由以下对象控制的对象:kubectl describe <rs-name>
  • 删除该RS的父对象。

此设置由Helm管理。

P.S。等待您对Helm版本的回答。想与Helm检查相同。收到您的来信后,将编辑此答案。

让我知道是否有帮助。


-1
投票

您取消部署并重新部署了吗?

遵循步骤

  1. 取消发布版本
  2. 验证吊舱,复制品和部署对象是否已删除完成。如果不是,则将其强行删除
  3. 运行全新部署

它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.