您的位置:首页 > 其它

Kubernetes 1.5 实践 给Pod中的容器定义命令和参数

2017-02-09 10:34 489 查看

Kubernetes 1.5 实践 给Pod中的容器定义命令和参数

defining a Command and Arguments for a Container

给容器定义一个命令和参数。

This page shows how to define commands and arguments when you run a container in a Kubernetes Pod.

这篇文章展示当运行kubernetes pod的时候,如何给容器定义命令和参数。

When you create a Pod, you can define a command and arguments for the containers that run in the Pod. To define a command, include the command field in the configuration file. To define arguments for the command, include the args field in the configuration file. The command and arguments that you define cannot be changed after the Pod is created.

当创建Pod的时候,我们可以给这个Pod中的容器定义命令和参数。 定义命令,需要在配置文件中加入command标签。为这个命令定义参数,需要加入args标签。当Pod创建好了以后,定义好的命令和参数不可以被变更和修改。

The command and arguments that you define in the configuration file override the default command and arguments provided by the container image. If you define args, but do not define a command, the default command is used with your new arguments. For more information, see Commands and Capabilities.

如果在容器的镜像中定义了命令和参数,那么如果在配置文件中再次定义,则镜像中定义的命令和参数会被覆盖。如果只定义了参数,没有定义命令,那么默认的命令会使用新定义的参数。更多的信息,查看Commands和Capabilities.

In this exercise, you create a Pod that runs one container. The configuration file for the Pod defines a command and two arguments:

在这个练习中,会创建一个运行了一个容器的Pod。在配置文件中配置的Pod定义了一个命令和两个参数:

commands.yaml

apiVersion: v1
kind: Pod
metadata:
name: command-demo
labels:
purpose: demonstrate-command
spec:
containers:
- name: command-demo-container
image: debian
command: ["printenv"]
args: ["HOSTNAME", "KUBERNETES_PORT"]


Create a Pod based on the YAML configuration file:
通过yaml配置文件创建Pod:


kubectl create -f http://k8s.io/docs/tasks/configure-pod-container/commands.yaml[/code] 
List the running Pods:
查看运行的Pods:


kubectl get pods


The output shows that the container that ran in the command-demo Pod has completed.
输出可以查看到容器已经在command-demo pod中已经完成。

To see the output of the command that ran in the container, view the logs from the Pod:
查看容器的输出结果,输出Pod的日志:


kubectl logs command-demo


The output shows the values of the HOSTNAME and KUBERNETES_PORT environment variables:
输出显示出HOSTNAME和KUBERNETES_PORT两个环境变量的值


command-demo
tcp://10.3.240.1:443


Using environment variables to define arguments

使用环境变量来定义参数

In the preceding example, you defined the arguments directly by providing strings. As an alternative to providing strings directly, you can define arguments by using environment variables:

env:

- name: MESSAGE

value: “hello world”

command: [“/bin/echo”]

args: [“$(MESSAGE)”]

This means you can define an argument for a Pod using any of the techniques available for defining environment variables, including ConfigMaps and Secrets.

NOTE: The environment variable appears in parentheses, “$(VAR)”. This is required for the variable to be expanded in the command or args field.

Running a command in a shell

In some cases, you need your command to run in a shell. For example, your command might consist of several commands piped together, or it might be a shell script. To run your command in a shell, wrap it like this:

command: [“/bin/sh”]

args: [“-c”, “while true; do echo hello; sleep 10;done”]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐