我有一个docker映像,并且正在使用以下命令运行它。
docker run -it -p 1976:1976 --name demo demo.docker.cloud.com/demo/runtime:latest
我想在Kubernetes中运行相同的代码。这是我当前的Yaml文件。
apiVersion: v1
kind: Deployment
metadata:
name: demo-deployment
labels:
app: demo
spec:
replicas: 1
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: demo
image: demo.docker.cloud.com/demo/runtime:latest
ports:
- containerPort: 1976
imagePullPolicy: Never
此yaml文件涵盖标志“ -it”以外的所有内容。我找不到它的Kubernetes等效项。这个你能帮我吗。谢谢
答案 0 :(得分:2)
从Container definition in the API reference看,等效选项是stdin: true
和tty: true
。
(我从事的所有应用程序都不需要这样做; stdin:
的文档讨论了“从容器中的stdin读取”以及您在Deployment中运行的典型服务器类型进程完全不读stdin。)
答案 1 :(得分:1)
我假设您正在尝试将外壳连接到正在运行的容器。遵循https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/上的指南-您将需要以下命令。要apply
进行上述配置,
创建窗格:kubectl apply -f ./demo-deployment.yaml
验证容器是否正在运行:kubectl get pod demo-deployment
获取正在运行的容器的外壳程序:kubectl exec -it demo-deployment -- /bin/bash