Kubernetes刪除資源卡在Terminating

資料來源:

整理一下,若遇到刪除不了,一定是有原因。以 Namespace 來說,通常是有些資源刪除不掉,這時候要花點耐心去找。

若不想等,就是加上 --grace-period=0 --force ,強制來做。

Pod 也是類似的作法。

若還是不行,可以把 finalizer 清掉,以下是 pod 的例子,但 namespace 也可以用。

kubectl patch pod <pod>-p '{"metadata":{"finalizers":null}}'

最後一招,終極的作法,是直接存取 etcd ,這個會看是用哪個容器平台而有不同的作法。像 OpenShift ,etcd 是以 pod 形式存在,所以需要進到 etcd 的 pod 裡,用 etcdctl 去查詢跟刪除。

雖然通常都是建議不要,但難免會遇到這種情況,就參考看看。

找昨天到現在有更動的檔案

需求是要找到從昨天到現在有變更的檔案,一時也想不出來怎麼做,利用 Google 找了一下,大多都是利用 find 的 -newer 參數。

find 的 -newer 參數要帶入的是一個檔案,表示會以這個檔案為基準來進行比對。

所以假設是要找 2023-11-11 之後的檔案,就先利用 touch 來建立一個基準檔案,其修改日期為 2023-11-11:

touch --date "2023-11-11" /tmp/base

然後再用

find . -newer /tmp/base -print

就可以找出在 /tmp/base 之後變更的檔案了。

find 也有一個 -newerXY 的參數,這個 XY 可以是以下內容

  1. a – 檔案的存取時間
  2. B – 檔案的建立時間
  3. c – 檔案 inode 的變更時間
  4. m – 檔案的修改時間
  5. t – 參數的內容是時間

那要找比 2023-11-11 要新的檔案,就用以下指令

find . -type f -newermt 2023-11-11

要找特定一天的,就用以下指令

find . -type f -newermt 2023-11-11 ! -newermt 2023-11-12

參考資料