Kubernetes相当于'docker run -it'

时间:2019-05-30 03:49:51

标签: docker kubernetes kubectl

我有一个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等效项。这个你能帮我吗。谢谢

2 个答案:

答案 0 :(得分:2)

Container definition in the API reference看,等效选项是stdin: truetty: 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