【发布时间】:2019-07-19 02:58:52
【问题描述】:
我的 POD 中有两个容器。第一个容器是我的主要应用程序,第二个容器用作具有以下图像的边车容器,具有以下 Dockerfile。
FROM scratch
EXPOSE 8080
ADD my-binary /
ENV GOROOT=/usr/lib/go
ENTRYPOINT ["/my-binary"]
基本上它使用 scratch 并且 my-binary 是一个作为进程运行的 go 应用程序。所以我不能在这个边车容器上exec。我需要重新启动侧容器(my-binary),但主容器应该没有变化。不应以任何方式更改主容器。
有没有可能,我怎样才能做到这一点?
非常感谢您对此进行调查。
有人要求提供完整的 POD 详细信息,那么您可以考虑以下 pod 结构
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
app: my-deploy
spec:
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: main
image: my-main-app-image
ports:
- containerPort: 80
- name: my-go-binary
image: my-go-binary-image
请注意-
kubectl exec POD_NAME -c CONTAINER_NAME reboot
这不适用于第二个容器,因为它是临时图像。
【问题讨论】:
-
请提供更多细节。还提供您的 pod.yaml。
-
我不确定为什么整个 POD 结构在这里很重要,但我只是提供了一个示例以防万一。
标签: docker kubernetes containers