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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 空调被烟熏黑了怎么办 牙被烟熏黑了怎么办 尖头鞋把尖折了怎么办 腰椎固定手术钢钉断了怎么办 脚被钢钉扎了怎么办 皮帘子有胶了怎么办 12v插口没有电怎么办 吃了一颗聚乙烯醇怎么办 立式注塑机产品粘膜怎么办 被小松鼠咬了怎么办 被宠物松鼠咬了怎么办 手被松鼠咬出血怎么办 银联认证码失败怎么办 国际汇款触发合规查询怎么办 外面的网线断了怎么办 网线被别的车挂断了怎么办 施工挖断军用光缆怎么办 不小心挖断光缆怎么办 家里的光纤断了怎么办 车被树枝刮花了怎么办 货车撞断了树枝怎么办? 把光缆挖断了怎么办 光缆有外伤断了怎么办 不小心挖断移动光缆怎么办 派克服内胆掉毛怎么办 汉王电纸书怎么无法开机怎么办? 压力喷水壶坏了怎么办 行车记录仪后摄像头不清楚怎么办 蓝牙听歌声音小怎么办 对讲机时灵时不灵怎么办 黑凉粉煮稀了怎么办 轮速传感器坏了怎么办 黑魂3被入侵了怎么办 轮胎螺丝滑牙了怎么办 gta5ol寻宝任务退出了怎么办 gta5线上模式买房子之后怎么办 开摩托车忘记带安全头盔怎么办 gta不想要车了怎么办 空气滤芯进水会怎么办 车胎扎了个钉子怎么办 德罗索没导弹了怎么办