1.资源创建冲突
报错信息:
[root@master261 pods]# kubectl create -f 01-pods-rms.yaml
Error from server (AlreadyExists): error when creating “01-pods-rms.yaml”: pods “rmsedu-rms-v1” already exists
[root@master261 pods]#
问题原因:
同一个名称空间下,同一种类型资源不能同名。
解决方案:
- 1.修改资源的名称;
- 2.删除原有的资源再创建;
2.资源名称命名不规范
报错信息:
[root@master261 pods]# kubectl create -f 02-pods-rms-hostNetwork.yaml
The Pod “rmsedu-rms-hostNetwork” is invalid: metadata.name: Invalid value: “rmsedu-rms-hostNetwork”: a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, ‘-‘ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘example.com’, regex used for validation is ‘a-z0-9?(.a-z0-9?)*’)
[root@master261 pods]#
问题原因:
对于资源名称,不能出现汉字,大写字母,等特殊符号,有效的值为小写字母,数字,横杠(-),点(.)。
解决方案:
- 1.修改名称为合法的字符即可。
a-z0-9?(.a-z0-9?)*
3.资源清单字段写错
报错信息:
[root@master261 pods]# kubectl create -f 02-pods-rms-hostNetwork.yaml
error: error validating “02-pods-rms-hostNetwork.yaml”: error validating data: ValidationError(Pod.spec): unknown field “hostnetwork” in io.k8s.api.core.v1.PodSpec; if you choose to ignore these errors, turn validation off with –validate=false
[root@master261 pods]#
问题原因:
资源清单的字段名称写错导致的报错,在’unknown field “hostnetwork”‘,表示”hostnetwork”写的有问题,请检查资源清单。
解决方案:
根据报错信息提示找到报错字段解决即可。
4.镜像名称无效
报错信息:
[root@master261 pods]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rmsedu-rms-env 0/1 InvalidImageName 0 11s 10.0.0.263 worker263
[root@master261 pods]#
[root@master261 pods]#
[root@master261 pods]# kubectl describe pod rmsedu-rms-env
Name: rmsedu-rms-env
…
Events:
Type Reason Age From Message
Normal Scheduled 31s default-scheduler Successfully assigned default/rmsedu-rms-env to worker263
Warning InspectFailed 3s (x4 over 31s) kubelet Failed to apply default image tag “registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/APPS:v1”: couldn’t parse image reference “registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/APPS:v1”: invalid reference format: repository name must be lowercase
Warning Failed 3s (x4 over 31s) kubelet Error: InvalidImageName
[root@master261 pods]#
问题原因:
镜像名称写错导致。
解决方案:
检查镜像名称是否正确,修改正确的即可,最近的解决方案就是使用docker pull手动测下。
5.镜像拉取出错
报错信息:
[root@master261 pods]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rmsedu-rms-env 0/1 ErrImagePull 0 9s 10.0.0.263 worker263
[root@master261 pods]#
[root@master261 pods]#
[root@master261 pods]# kubectl describe -f 03-pods-rms-env.yaml
Name: rmsedu-rms-env
…
Events:
Type Reason Age From Message
Normal Scheduled 37s default-scheduler Successfully assigned default/rmsedu-rms-env to worker263
Normal Pulling 22s (x2 over 37s) kubelet Pulling image “registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/app:v11”
Warning Failed 21s (x2 over 37s) kubelet Failed to pull image “registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/app:v11”: rpc error: code = Unknown desc = Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/app, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
Warning Failed 21s (x2 over 37s) kubelet Error: ErrImagePull
Normal BackOff 9s (x2 over 36s) kubelet Back-off pulling image “registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/app:v11”
Warning Failed 9s (x2 over 36s) kubelet Error: ImagePullBackOff
[root@master261 pods]#
问题原因:
镜像名称格式正确但是无法拉取到镜像。
解决方案:
- 1.有可能是镜像的名称写错,远程仓库没有该镜像;
- 2.可能项目是一个私有的,你无法访问,需要登录,而登录凭证出错也会报该错误;
6.容器无法启动导致重启
报错信息:
[root@master261 pods]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rmsedu-rms-env 0/1 CrashLoopBackOff 2 (28s ago) 51s 10.0.0.263 worker263
rmsedu-rms-hostnetwork 1/1 Running 0 102s 10.0.0.263 worker263
[root@master261 pods]#
[root@master261 pods]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rmsedu-rms-env 0/1 Error 3 (34s ago) 57s 10.0.0.263 worker263
rmsedu-rms-hostnetwork 1/1 Running 0 108s 10.0.0.263 worker263
[root@master261 pods]#
[root@master261 pods]# kubectl describe pod rmsedu-rms-env
Name: rmsedu-rms-env
…
Events:
Type Reason Age From Message
Normal Scheduled 70s default-scheduler Successfully assigned default/rmsedu-rms-env to worker263
Normal Pulled 19s (x4 over 70s) kubelet Container image “registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1” already present on machine
Normal Created 19s (x4 over 70s) kubelet Created container c1
Normal Started 19s (x4 over 70s) kubelet Started container c1
Warning BackOff 15s (x4 over 64s) kubelet Back-off restarting failed container
[root@master261 pods]#
问题原因:
可能是启动出错,也可能是端口冲突等问题。
解决方案:
- 1.手动使用docker命令启动镜像,观察是否能够正常启动,若不能启动,则可能启动存在问题;
- 2.如果使用docker可以正常启动该容器,则需要检查是否和已有的Pod存在端口冲突的问题?
- 3.如果非要强行启动容器,可以尝试使用command来修改容器的启动命令来解决端口冲突问题;