删除了Kubernetes部署,但Node(docker)容器不断重新创建自身

时间:2018-10-19 21:45:27

标签: docker kubernetes docker-compose dockerfile

TLDR:某些东西不断使用我的Kubernetes主计算机上的映像重新创建容器,我无法弄清楚是什么!!!!?

我创建了一个部署(Web项目)和一个服务(HTTPS服务)。部署为我的应用程序“ webProject”创建了3个副本集。

我运行kubectl create -f webproject.yml之后,它把所有东西都旋转了,但是后来我的Docker映像在“ Rollout”期间卡住了。

因此,我kubectl删除了deployments / webproject,然后删除了我的部署。我还删除了https服务。

kubectl get pods
No resources found.

kubectl get deployments
No resources found.

kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   3h38m

kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
kubemaster100   Ready    master   3h37m   v1.12.1

如您所见,它说没有pod或worker节点。因此,当我连接到工作节点以对映像进行故障排除时,我注意到它仍然具有使用我的部署名称运行的容器。

我之后

docker stop 'container'
docker rm 'container'

docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS               NAMES
259a77058d24        39825e5b6bcd           "/usr/sbin/apache2ct…"   22 seconds ago      Up 20 seconds                           k8s_webServer_webServer-deployment-7696fdd44c-dcjjd_default_fcf8fde0-d0c6-11e8-9f67-bc305be7abdb_2

它们立即又被重新创建。为什么?

1 个答案:

答案 0 :(得分:1)

因此,如果您删除Kubernetes上的一个节点,它将仅从Kubernetes保持其状态的etcd中删除。但是,kubelet仍在您的节点上运行,并且可能拥有缓存(对此不是100%肯定)。我会尝试:

systemctl stop kubelet

pkill kubelet

验证未运行:

ps -Af | grep kubelet  # should not return anything.

然后像最初一样停止并移除容器。