kubectl YAML 配置文件相当于“kubectl run ... -i --tty ...”
Posted
技术标签:
【中文标题】kubectl YAML 配置文件相当于“kubectl run ... -i --tty ...”【英文标题】:kubectl YAML config file equivalent of "kubectl run ... -i --tty ..." 【发布时间】:2016-09-30 07:01:38 【问题描述】:我一直在使用带有各种标志的“kubectl run”以交互方式运行作业,但最近我已经超出了我可以用这些标志做的事情,并且已经逐渐使用 YAML 配置文件来描述我的作业。
但是,我找不到与“-i”和“--tty”标志等效的标志来附加到我正在创建的作业。
是否有等效的 YAML 规范:
kubectl run myjob \
-i \
--tty \
--image=grc.io/myproj/myimg:mytag \
--restart=Never \
--rm \
-- \
my_command
或者这可能不是正确的方法?
【问题讨论】:
【参考方案1】:我认为您提到了这些领域。 https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/core/types.go#L2081-L2088
你可以在yaml文件中定义stdin
和tty
。
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: test
image: test
stdin: true
tty: true
【讨论】:
你能给出一个示例 yaml 文件来说明如何做到这一点吗?我发现从类型定义中并不清楚。 IIUC,只需将“stdin: true”和“tty: true”添加到您的容器规范中。例如:``` apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: test image: test stdin: true tty: true ``` 哎呀,我不能在评论中写多行的东西.希望你能理解,:P 感谢大屿山的指点。但是,就我而言,我正在考虑专门为工作做这件事。如果我将tty
和 stdin
字段放在作业 within 的 Pod 的 template
规范中,它们似乎没有任何效果。我实际上可以通过使用模型来理解这一点。
经过进一步的实验,tty
和 stdin
即使在普通的旧 Pod 规格中也没有我希望的效果,如 Lantao 的示例所示(至少在 k8s 1.2.4 上为目前部署在 GKE 上)。
要附加到 pod,我还必须向 kubectl attach 命令提供 -i
和 -t
,所以完整的命令是 kubectl attach POD [ -c CONTAINER ] -i -t
- 注意:-c CONTAINER 是可选的如果你只有一个容器 - 它只是默认的。以上是关于kubectl YAML 配置文件相当于“kubectl run ... -i --tty ...”的主要内容,如果未能解决你的问题,请参考以下文章
解决kubectl get pods时 No resources found.问题