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文件中定义stdintty

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 感谢大屿山的指点。但是,就我而言,我正在考虑专门为工作做这件事。如果我将 ttystdin 字段放在作业 within 的 Pod 的 template 规范中,它们似乎没有任何效果。我实际上可以通过使用模型来理解这一点。 经过进一步的实验,ttystdin 即使在普通的旧 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.问题

使用kubectl create 和 kubectl apply创建资源对象的区别

kubectl 命令详解:edit

使用 kubectl 管理 kubeconfig 配置文件

kubectl管理多个k8s集群

《三》kubectl命令行管理工具YAML配置详解