Amazon web services Kubernetes:删除后复制控制器仍然存在
我管理一个K8s集群,由terraform管理:Amazon web services Kubernetes:删除后复制控制器仍然存在,amazon-web-services,kubernetes,kubectl,Amazon Web Services,Kubernetes,Kubectl,我管理一个K8s集群,由terraform管理: Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platf
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
我想删除一个堆栈;所以我删除了代码并应用了它。由于超时,它抛出了一个错误。我再试了一次,结果成功了
但现在,我仍然有两个复制控制器(都是空的):
没有更多的服务,没有更多的水平调度;但仍然是我的复制控制器
我试图移除它们:
$ kubectl delete rc portal-api
error: timed out waiting for "portal-api" to be synced
如果要强制删除,则相同:
$ kubectl delete rc portal-api --cascade=false --force=true
$
$ kubectl get rc
[...]
portal-api 0 0 0 2h
portal-app 0 0 0 2h
[...]
我还可以看到它的配置(填充了deletionTimestamp
):
有人能帮我吗?有什么想法吗
谢谢,使用
kubectl edit rc portal api
从资源中删除终结器
部分:
finalizers:
- orphan
这是关于如何删除某些曾经拥有所有者但不再拥有所有者的对象
删除对象时,可以指定是否也自动删除对象的从属项。自动删除依赖项称为级联删除。有两种级联删除模式:背景和前景
如果删除对象而不自动删除其从属对象,则这些从属对象称为孤立对象
您可以阅读有关前台级联删除和后台级联删除如何工作的文档
设置级联删除策略
要控制级联删除策略,请在删除对象时在deleteOptions
参数上设置propagationPolicy
字段。可能的值包括“孤立”、“前景”或“背景”
在Kubernetes 1.9之前,许多控制器资源的默认垃圾收集策略是孤立的。这包括ReplicationController、ReplicatSet、StatefulSet、守护程序集和部署。对于extensions/v1beta1
、apps/v1beta1
和apps/v1beta2
组版本中的种类,除非您另有指定,否则依赖对象默认为孤立对象。在Kubernetes 1.9中,对于apps/v1
组版本中的所有类型,默认情况下会删除从属对象
kubectl还支持级联删除。要使用kubectl自动删除依赖项,请将--cascade
设置为true。要孤立从属项,请将--cascade
设置为false。--cascade
的默认值为true
下面是一个孤立ReplicaSet的依赖项的示例:
kubectl delete replicset my repset--cascade=false
谢谢,它很管用!你能再解释一下吗?似乎我在其他资源方面也有类似的问题。。。我正在调查…
$ kubectl edit rc portal-api
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: ReplicationController
metadata:
creationTimestamp: 2018-12-05T14:00:15Z
deletionGracePeriodSeconds: 0
deletionTimestamp: 2018-12-05T15:22:00Z
finalizers:
- orphan
generation: 3
labels:
App: portal-api
name: portal-api
namespace: default
resourceVersion: "32590661"
selfLink: /api/v1/namespaces/default/replicationcontrollers/portal-api
uid: 171f605e-f896-11e8-b761-02d4b8553a0e
spec:
replicas: 0
selector:
App: portal-api
template:
metadata:
creationTimestamp: null
labels:
App: portal-api
spec:
automountServiceAccountToken: false
containers:
- env:
- name: AUTHORITY_MGR
value: http://system-authority-manager-service
image: gitlab.********************:4567/apps/portal/api:prd
imagePullPolicy: Always
name: portal-api
ports:
- containerPort: 3300
protocol: TCP
resources:
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: 500m
memory: 256Mi
terminationGracePeriodSeconds: 30
status:
replicas: 0
finalizers:
- orphan