Kubernetes 配置Pod和容器(十三) 定義容器命令行和參數(shù)

定義容器命令行和參數(shù)

這個(gè)章節(jié)展示了當(dāng)運(yùn)行了容器在pod里面如何給容器定義命令行和參數(shù)。

創(chuàng)建Pod的時(shí)候定義命令行和參數(shù)

當(dāng)創(chuàng)建了一個(gè)pod,可以給運(yùn)行在pod里面的容器定義命令行和參數(shù)。定義命令行,配置文件里面包含一個(gè)command字段。給命令行定義參數(shù),配置文件里面包含一個(gè)args字段。當(dāng)pod創(chuàng)建以后定義的command和args不可以修改。如果定義了command和args在配置文件里面,將覆蓋鏡像默認(rèn)的command和args。如果只定義了args沒(méi)有定義command,默認(rèn)的的command將使用新的參數(shù)。

在本次試驗(yàn)中,創(chuàng)建運(yùn)行一個(gè)容器的Pod。這個(gè)pod的配置文件定義了一個(gè)command和兩個(gè)參數(shù)。

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"]

1.通過(guò)yaml文件創(chuàng)建pod:

kubectl create -f test.yaml

2.查看pod列表:

kubectl get pods

輸出展示自定義命令行和參數(shù)的容器已經(jīng)運(yùn)行

3.查看運(yùn)行command容器里面的輸出,查看pod的日志:

kubectl logs command-demo

輸出展示了HOSTNAME和KUBENETES_PORT環(huán)境變量的值:

 command-demo
 tcp://10.3.240.1:443

使用環(huán)境變量定義參數(shù)

在之前的例子,直接通過(guò)字符串定義參數(shù)。除了直接用字符串定義以外,可以使用環(huán)境變量定義參數(shù):

env:
- name: MESSAGE
  value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]

這意味這可以使用定義環(huán)境變量的任何技術(shù)來(lái)定義pod的參數(shù),包括ConfigMaps和Secrets。

這一:環(huán)境變量出現(xiàn)在括號(hào)$(VAR)中,這是在command或args中擴(kuò)展變量所必須的。

在shell里面運(yùn)行command

一些情況,需要在shell里面運(yùn)行command。例如,你的命令由多個(gè)命令組合在一起,也可能是一個(gè)shell腳本。要在shell里面運(yùn)行你的命令,可以這樣包裝:

command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容