startupProbeを使ってbashを取り除く

CKSコースで、コンテナをイミュータブルにするための強制方法の一つとして、starupProbeを使ってbashを取り除く方法が紹介されていたのでメモ。

そもそもstartupProbeを知らなかったが、1.18でベータ、1.20でGAしている。livenessProbe、readinessProbeに続く3つめのプローブ機能。

例えば以下のようにマニフェストを書いてあげればよい。削除しなくても実行権限を取り除くだけでもよさそう。

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1
spec:
  containers:
  - image: httpd
    name: pod1
    resources: {}
    startupProbe:
      exec:
        command:
        - rm
        - /bin/bash
      initialDelaySeconds: 1
      periodSeconds: 5
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

ただし、実行ユーザーがrootでないとrmできなそうなので、実際にはこのままは使えないかも知れない。