gpt4 book ai didi

deployment - 是否可以将正在运行的 Pod 从 ReplicationController 移动到 Deployment?

转载 作者:行者123 更新时间:2023-12-02 18:49:01 24 4
gpt4 key购买 nike

我们正在使用 RC 来运行我们的工作负载,并希望迁移到 Deployment。有没有办法做到这一点而不会对正在运行的工作负载造成任何影响。我的意思是,我们可以将这些正在运行的 Pod 移到 Deployment 下吗?

最佳答案

就像 @matthew-l-daniel 回答的那样,答案是肯定的。但我对此有超过80%的把握。因为我已经测试过

现在我们需要遵循什么流程

假设我有一个 ReplicationController。

apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

问题:我们可以将这些正在运行的 Pod 移动到“部署”下吗?

让我们按照以下步骤看看是否可以。

第 1 步:使用 --cascade=false 删除此 RC。这将留下 Pod。

第 2 步:先创建ReplicaSet,标签与ReplicationController相同

apiVersion: apps/v1beta2
kind: ReplicaSet
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
---

所以,现在这些 Pod 位于 ReplicaSet 下。

第 3 步:使用相同标签立即创建部署。

apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
----

Deployment 会发现已经存在一个 ReplicaSet,我们的工作就完成了。

现在我们可以检查增加的副本来看看它是否有效。

而且它有效。

哪种方式行不通

删除ReplicationController后,不要直接创建Deployment。这将不起作用。因为,Deployment 将找不到 ReplicaSet,并将创建一个带有附加标签的新 ReplicaSet,该标签与您现有的 Pod 不匹配

关于deployment - 是否可以将正在运行的 Pod 从 ReplicationController 移动到 Deployment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com