Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kubectl debugを試してみた / k8snovice8-kubectl-debug
Search
Naoki Oketani
February 08, 2021
Technology
0
2.2k
kubectl debugを試してみた / k8snovice8-kubectl-debug
Kubernetes Novice Tokyo #8
Naoki Oketani
February 08, 2021
Tweet
Share
More Decks by Naoki Oketani
See All by Naoki Oketani
Observe the Conference / observe-the-conference
okepy
0
480
最小権限を目指して / least privilege of service account
okepy
0
1.7k
security-profiles-operatorをさわってみた / try-security-profiles-operator
okepy
0
2.3k
Other Decks in Technology
See All in Technology
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
150
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
190
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
270
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
240
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
140
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
170
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.2k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
180
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
230
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Are puppies a ranking factor?
jonoalderson
1
2.7k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
The browser strikes back
jonoalderson
0
370
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Fireside Chat
paigeccino
41
3.8k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Transcript
Kubernetes Novice Tokyo #8 kubectl debug を試してみた February 9, 2021
Naoki Oketani
$ cat whoami.yaml social: github: oke-py twitter: ngoktanio job: role:
Cloud Native Security Architect keyword: [“NIST SP 800-190”, “Sysdig”]
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
distroless 使ってる?
攻撃ベクトルを小さくする centos distroless App App bash openssl “Minimal images lower
operational burden and reduce attack vectors.” [3][4]
デプロイを高速化する REPOSITORY TAG SIZE alpine latest 5.35MB ubuntu 18.04 56.7MB
centos 7 301MB gcr.io/distroless/base-debian10 latest 16.1MB “Smaller image size reduces resource usage and speeds deployments.” [3][4]
distrolessベースのコンテナを運用していた、ある日のこと
ん、おかしいな。デバッグしよう。
$ kubectl exec -it ephemeral-demo -- sh [2] OCI runtime
exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"sh\": executable file not found in $PATH": unknown あ、”sh”が入っていなくてトラブルシューティングできない・・・ ここで、エフェメラルコンテナとkubectl debugの出番
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
エフェメラルコンテナを利用する $ k run demo --image=k8s.gcr.io/pause:3.1 --restart=Never $ k debug
-it demo --image=busybox # ps aux PID USER TIME COMMAND 1 root 0:00 sh 7 root 0:00 ps aux プロセスをみることができない Pod: demo Container pause EphemeralContainer busybox
エフェメラルコンテナを利用する $ k run demo --image=k8s.gcr.io/pause:3.1 --restart=Never $ k debug
-it demo --image=busybox --target=demo # ps aux PID USER TIME COMMAND 1 root 0:00 /pause 8 root 0:00 sh 15 root 0:00 ps aux Pod: demo Container pause EphemeralContainer busybox
Podのコピーを利用する $ k run myapp --image=busybox --restart=Never -- sleep 1d
$ k debug myapp -it --image=ubuntu --share-processes \ --copy-to=myapp-debug $ k get pod NAME READY ... myapp 1/1 myapp-debug 2/2 Pod: myapp-debug Container busybox Container ubuntu Pod: myapp Container busybox
Nodeのデバッグをする $ k debug node/mynode -it --image=ubuntu “The container runs
in the host IPC, Network, and PID namespaces. The root filesystem of the Node will be mounted at /host.” [2] 強力すぎてセキュリティおじさんはヒヤヒヤしてしまう マルチテナントクラスターでは使えるとまずいかも?
目次 1. kubectl debugのユースケース 2. kubectl debugの使い方 3. まとめ
kubectl debugは強力、Minimal imagesを実現しよう centos distroless App App bash openssl “Minimal
images lower operational burden and reduce attack vectors.” [3][4]
GAしていないため変更の可能性あり エフェメラルコンテナ • v1.16 alpha • v1.21 beta [5] kubectl
debug • v1.18 alpha • v1.20 beta
kubectl debug 完全に理解した
reference [1] Ephemeral Containers https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/ [2] Debug Running Pods https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/
[3] KEP-277: Ephemeral Containers https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/277-ephemeral-containers [4] KEP-1441: kubectl debug https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug [5] Update Ephemeral Containers KEP for beta in 1.21 https://github.com/kubernetes/enhancements/pull/2244