總覽
K8S集群創(chuàng)建Pod時(shí),可以為其下的容器設(shè)置啟動(dòng)時(shí)要執(zhí)行的命令及其參數(shù)。設(shè)置命令,就填寫在配置文件的command字段下,如果要設(shè)置命令的參數(shù),就填寫在配置文件的args字段下。一旦Pod創(chuàng)建完成,該命令及其入?yún)o(wú)法再進(jìn)行更改。
配置文件中設(shè)置了容器啟動(dòng)時(shí)要執(zhí)行的命令及其參數(shù),那么容器鏡像中自帶的命令 與參數(shù)將會(huì)被覆蓋而不再執(zhí)行。如果配置文件中只是設(shè)置了入?yún)?,卻沒(méi)有設(shè)置其對(duì)應(yīng)的命令,那么容器鏡像中自帶的命令會(huì)使用該新參數(shù)作為其執(zhí)行時(shí)的參數(shù)。
Docker 與 Kubernetes中對(duì)應(yīng)的字段名稱。
容器運(yùn)行的命令
Entrypoint
command
傳遞給命令的參數(shù)集合
Cmd
args
規(guī)則
如果要覆蓋默認(rèn)的 Entrypoint 與 Cmd,需要遵循如下規(guī)則:
如果在容器配置中沒(méi)有設(shè)置command 或者 args,那么將使用Docker鏡像自帶的命 令及其入?yún)ⅰ?/p>
如果在容器配置中只設(shè)置了command但是沒(méi)有設(shè)置args,那么容器啟動(dòng)時(shí)只會(huì)執(zhí)行該 命令,Docker鏡像中自帶的命令及其入?yún)?huì)被忽略。
如果在容器配置中只設(shè)置了args,那么Docker鏡像中自帶的命令會(huì)使用該新入?yún)⒆鳛?其執(zhí)行時(shí)的入?yún)ⅰ?/p>
如果在容器配置中同時(shí)設(shè)置了command 與 args,那么Docker鏡像中自帶的命令及 其入?yún)?huì)被忽略。容器啟動(dòng)時(shí)只會(huì)執(zhí)行配置中設(shè)置的命令,并使用配置中設(shè)置的入?yún)⒆鳛?命令的入?yún)ⅰ?/p>
參考答案:
https://kubernetes.io/zh/docs/tasks/inject-data-application/define-command-argument-container/
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):m.ps-sw.cn