💭
kindでエフェメラルコンテナを有効化する設定
はじめに
kindクラスターでエフェメラルコンテナがうまく動きませんでした。原因はよくわかりませんが、回避策を見つけたため共有します。
TL;DR
config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
EphemeralContainers: true
$ kind create cluster --config config.yaml
環境
$ kind version
kind v0.11.1 go1.16.4 darwin/arm64
NG例
『Kubernetes完全ガイド 第2版』P.37 リスト 3.2を利用しました。
config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
kubeadmConfigPatches:
- |-
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
metadata:
name: config
apiServer:
extraArgs:
"feature-gates": "EphemeralContainers=true"
Debugging with an ephemeral debug containerを試してみます。
$ kubectl run ephemeral-demo --image=k8s.gcr.io/pause:3.1 --restart=Never
$ kubectl debug -it ephemeral-demo --image=busybox --target=ephemeral-demo
Defaulting debug container name to debugger-8xzrl.
ここから進まず、エフェメラルコンテナに接続できませんでした。
OK例
調べているとEphemeral containers using kubectl-debug does not seem to workというIssueに行き着きました。コメントで設定例が提示されていました。
config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
EphemeralContainers: true
再度、Debugging with an ephemeral debug containerを試してみます。
$ kubectl run ephemeral-demo --image=k8s.gcr.io/pause:3.1 --restart=Never
$ kubectl debug -it ephemeral-demo --image=busybox --target=ephemeral-demo
Defaulting debug container name to debugger-dls8z.
If you don't see a command prompt, try pressing enter.
/ #
おわりに
エフェメラルコンテナを利用できるようになって万々歳。と思いきや、エフェメラルコンテナからアプリケーションコンテナのファイルを見る方法がわからず、本来やりたかったことはできませんでした。quay.io/prometheus/prometheus:v2.26.0のPrometheus設定ファイルを更新して動作確認したかったのですが・・・
Discussion