kubernetes - Netshoot Sidecar 容器 CrashLoopBackOff
问题描述
我试图在同一个 pod 上使用 netshoot 图像和 Nginx 服务器图像。
如果我没有在 netshoot 容器中包含 sleep 参数,
args:
- sleep
- '9999999999999999999'
pod 状态始终变为 CrashLoopBackOff。我不明白为什么我必须将 sleep 参数放在 netshoot 容器中的 sleep 当前线程中。容器是否必须包含应用程序服务器或运行的 jar 才能保持运行状态?我想我错过了关于容器运行机制的基本点。谢谢。
apiVersion: apps/v1
kind: Deployment
metadata:
# Define the Deployment Name
name: nginx-deployment
labels:
app: nginx
spec:
# Define the Number of Pods
replicas: 1
# Define the Selector
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers: # Container Details
- name: nginx
image: nginx:latest # Image
ports:
- containerPort: 80
- name: netshoot
image: nicolaka/netshoot:latest
args:
- sleep
- '9999999999999999999'
解决方案
容器是一个命令的包装器,它们一直运行到该命令退出。netshoot 的默认命令是zsh
. 与其他 shell 一样,它们一直运行到到达退出命令、信号中断它们或它们处理的输入返回 EOF。如果没有定义任何标准输入,容器将立即到达该 EOF。
顺便说一句,容器的常见 noop 命令是tail -f /dev/null
.
推荐阅读
- javascript - 在将元素附加到 DOM 之后调用 getBoundingClientRect()
- python - 如何绘制轴对象?
- azure - 在 azure 消费使用详情 api 中,metric 类型 actualcost、usagecost 和 amortizedcost 有什么区别?
- sql - 连接表以获取空行
- javascript - Javascript 等价于 Jquerys :first / :last
- android - 我可以在 dumpState 中看到未确认通知
- asp.net-core - 在 ASP.NET Core 3.1 或 5.0 中配置 AppContextSwitchOverrides
- python - 我有一个“pywhatkit”python 模块属性错误。你能帮帮我吗?
- docker - “部署排序器到 Docker”
- c# - 用户控件 Windows 窗体中的简单注入器属性注入