k8s 的容器command用法举例


问题描述以及解决:

问题一 CrashLoopBackOff

如容器运行报如下错误:

 

 

且在describe和kubelet日志中没有明确记录原因,基本都是因为command命令不合法导致

如需要运行多条命令,使用;不要使用&&

如下示例:

          command: ["/bin/sh"]

          args: ["-c","/usr/local/bin/redis_start;while true;do echo hello;sleep 1;done"]

 

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

k8s的command对应如上docker命令的[COMMAND] [ARG...]

1. 但在k8里这样报错,top必须得有个参数,错误写法:

apiVersion: v1    
kind: Pod    
metadata:    
  name: centos  
  labels:    
    app: centos    
spec:    
  containers:    
  - name: mycentos  
    image: centos  
    imagePullPolicy: IfNotPresent  
    command: ["top",]  

报错是:env找不到...

给top加上参数:

apiVersion: v1    
kind: Pod    
metadata:    
  name: centos  
  labels:    
    app: centos    
spec:    
  containers:    
  - name: mycentos  
    image: centos  
    imagePullPolicy: IfNotPresent  
    command: ["top","-b"]  

也可以这样写:

apiVersion: v1    
kind: Pod    
metadata:    
  name: centos  
  labels:    
    app: centos    
spec:    
  containers:    
  - name: mycentos  
    image: centos  
    imagePullPolicy: IfNotPresent  
    command: ["top"]  
    args: ["-b"]  

 

 

使用shell命令的写法:

apiVersion: v1    
kind: Pod    
metadata:    
  name: centos  
  labels:    
    app: centos    
spec:    
  containers:    
  - name: mycentos  
    image: centos  
    imagePullPolicy: IfNotPresent  
    command: ["/bin/sh"]  
    args: ["-c","while true;do echo hello;sleep 1;done"]  

或者这样:

apiVersion: v1      
kind: Pod      
metadata:      
  name: centos    
  labels:      
    app: centos      
spec:      
  containers:      
  - name: mycentos    
    image: centos    
    imagePullPolicy: IfNotPresent    
    command: ["/bin/sh","-c","while true;do echo hello;sleep 1;done"]  

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM