k8s解决Http delete rc的时候未删除pod的问题
来源:互联网 发布:wps描述型数据 编辑:程序博客网 时间:2024/06/08 08:43
1.先删除Rc,再遍历pod后删除指定pod
之前用的比较笨的方法,先删除rc,完了遍历所有pod,取出属于本rc的pod,然后一一删除,
(因为pod的label是清楚的自己设置的,打上了rcName这个标签。所以可以取出指定rc所属pod。)
结果问题一大堆,因为删除rc只是发一条命令,什么时候k8s真正删除并不知道,所以存在重启pod的情况,久而久之,就会存在垃圾pod。
然后我又加了逻辑,删完rc后去get rc,直到返回Not Found我再去遍历pod删除对应的pod。这下基本上没问题了,但是跑久了还是偶有垃圾pod。
2.官方做法:先put rc副本数为0,再删除rc
佩服我身边这个牛人啊,看源码,抓包。轻松进行各种源码的深度分析。现在才发现抓包这个技能真NB!得找个时间学学了。
在服务器上执行kubectl delete rc就能删除rc及其pod.当时没想太多。就用restful api来删除了。
现在回过头来看一开始就应该把这个命令调用了什么API搞清楚的。
官方的做法是put rc即更新rc的副本数为0,然后再删除pod。
我改了之后也就搞定了,put rc的json
{ "kind": "Scale", "apiVersion": "extensions/v1beta1", "metadata": { "name": "${rcName}", "namespace":"default" }, "spec": { "replicas": ${replicas?c} }}
try { //把副本数变为0 String deletePodJson = ToMetadata.toScaleJson(finalStackName, 0); String scaleRcToZero = RequestK8S.scale(finalStackName, deletePodJson, finalClusterUuid); logger.info(finalStackName + " : scale replicas to 0 = " + scaleRcToZero); String rcResult = RequestK8S.get(K8STypeEnum.RC, finalStackName, finalClusterUuid); JSONObject rcJson = JSONObject.parseObject(rcResult); while (true) { if (rcJson.getJSONObject("status").getString("replicas").equals("0")) { break; } Thread.sleep(2000);//2秒后再查 } //删除RC String apiServerUrl = xxxxxxx""; String deleteRcResult = HttpUtil.delete(apiServerUrl + "/api/v1/namespaces/default/replicationcontrollers/" + finalStackName); logger.info(finalStackName + " : deleteRcResult = " + deleteRcResult); } catch (Exception e) { e.printStackTrace(); }
至此,问题解决
0 0
- k8s解决Http delete rc的时候未删除pod的问题
- 完整删除pod,解决某些无法解决的问题
- 解决pod创建成功但未正常启动的问题:pod-infrastructure镜像下载失败
- k8s如何管理Pod(rc、rs、deployment)
- 未解决的问题:log4j总是在加载的时候
- kubenetes无法创建pod/创建RC时无法自动创建pod的问题
- 解决 CocoaPods pod install/pod update 更新慢的问题
- 解决CocoaPods pod install/pod update更新慢的问题
- pod command not found问题的解决
- cocoapods在pod search的时候出现的问题
- 未解决的问题
- 未解决的问题。
- 未解决的问题
- 未解决的问题
- 未解决的问题
- 未解决的问题
- 未解决的问题
- 未解决的问题
- Calendar.set方法设定日和add方法设偏离值
- 构造方法
- mark
- 天啊,这样的抗日遗物你见过么?——罗衍宗
- symbol(s) not found for architecture x86_64
- k8s解决Http delete rc的时候未删除pod的问题
- Spring初学者,快速理解Spring中的专业术语
- python学习笔记(面向对象)
- 设置居中
- HDU 1864最大报销额(01背包)
- 自定义UISearchBar外观
- POJ-2226
- 分享下android 一个Listview下拉刷新的二次封装(第一次修订)
- Java 中正确使用 hashCode 和 equals 方法