kubernetes - 延迟容器启动,直到 pod 中的其他容器启动
问题描述
我正在研究一个用例,其中边车容器在更改主容器的目录权限时连续运行 shell 脚本。我只想在 pod 中的 Main Container 准备好后启动侧容器。
我正在查看 Init Containers,我可以看到,当我们具有 Pod 间依赖关系时,init 容器是很好的候选者(Pod A 仅在 Pod B 启动/健康后启动)。
在我的情况下,我需要容器 B 仅在容器 A 在同一个 Pod 中启动后才能启动。
Deployment.yaml 供参考
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
- name: container2
image: some-repo
imagePullPolicy: {{ .Values.image.pullPolicy }}
解决方案
我不知道任何满足您描述的用例的 K8s 原生功能或钩子。
我会这样解决它:
在与常规容器相同的 Pod 中运行 Sidecar 容器,并让它执行一个脚本,在继续检查目录权限之前 ping 应用程序容器的就绪端点。
推荐阅读
- javascript - JavaScript — 数组中充满了一堆“未定义”
- reactjs - 反应:将令牌传递给本地存储后,导航栏没有改变
- r - 如何转换中间有多余字符的日期
- go - MergeSort algorithm with goroutines questions
- c++ - Failed to connect to a SMTP server
- python - python在lua中有类似于_ENV的东西吗?
- java - Android Caused by: java.lang.RuntimeException
- c# - How to mock a method returning IEnumerable
in unit test method? - javascript - 开玩笑,测试异步 JS 代码总是失败
- c# - 如何在 Xamarin Forms 中创建隐藏溢出