问题描述以及解决:
问题一 CrashLoopBackOff
如容器运行报如下错误:
且在describe和kubelet日志中没有明确记录原因,基本都是因为command命令不合法导致
如需要运行多条命令,使用;不要使用&&
如下示例:
command: ["/bin/sh"]
args: ["-c","/usr/local/bin/redis_start;while true;do echo hello;sleep 1;done"]
参考资料:
https://blog.csdn.net/iiiiher/article/details/72551638
https://docs.docker.com/engine/reference/commandline/run/
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
k8s的command对应如上docker命令的[COMMAND] [ARG…]
1. 但在k8里这样报错,top必须得有个参数
[python]
[root@node131 yaml]# cat centos.yaml
apiVersion: v1
kind: Pod
metadata:
name: centos
labels:
app: centos
spec:
containers:
- name: mycentos
image: centos
imagePullPolicy: IfNotPresent
command: ["top",]
报错是:env找不到…
2.给top加上参数
[python]
[root@node131 yaml]# cat centos.yaml
apiVersion: v1
kind: Pod
metadata:
name: centos
labels:
app: centos
spec:
containers:
- name: mycentos
image: centos
imagePullPolicy: IfNotPresent
command: ["top","-b"]
3.已可以这样写
[python]
apiVersion: v1
kind: Pod
metadata:
name: centos
labels:
app: centos
spec:
containers:
- name: mycentos
image: centos
imagePullPolicy: IfNotPresent
command: ["top"]
args: ["-b"]
4,使用shell命令.
[python]
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"]
5,也可以这样
[python]
[root@node131 yaml]# cat centos.yaml
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"]