k8s日常故障收集

案例:

error: failed to run Kubelet: cannot create certificate signing request: certificatesigningrequests.certificates.k8s.io is forbidden: User "kubelet-bootstrap" cannot create certificatesigningrequests.certificates.k8s.io at the cluster scope

原因是:kubelet-bootstrap并没有权限创建证书。所以要创建这个用户的权限并绑定到这个角色上。
解决方法是在master上执行

kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

案例一:

1.8版本之前.开启rbac后,apiserver默认绑定system:nodes组到system:node的clusterrole。v1.8之后,此绑定默认不存在,需要手工绑定,否则kubelet启动后会报认证错误,使用kubectl get nodes查看无法成为Ready状态

Unable to register node "192.168.122.3" with API server: nodes is forbidden: User "system:node:192.168.122.3" cannot create nodes at the cluster scope

解决方法:
使用命令kubectl get clusterrolebinding和kubectl get clusterrole可以查看系统中的角色与角色绑定

使用命令kubectl describe clusterrolebindings system:node查看system:node角色绑定的详细信息

创建角色绑定
在整个集群中授予 ClusterRole ,包括所有命名空间
kubectl create clusterrolebinding kubelet-node-clusterbinding --clusterrole=system:node --group=system:nodes
kubectl describe clusterrolebindings kubelet-node-clusterbinding

案例二:

解决kubernetes启动容器时,容器一直是ContainerCreating不能running

Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request.  details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"

解决方法:yum install python-rhsm-certificates

案例三:

以下问题为Kubernetes版本与docker版本不兼容导致cgroup功能失效

Failed to get system container stats for "/system.slice/kubelet.service": failed to get cgroup stats for "/system.slice/kubelet.service": failed to get container info for "/system.slice/kubelet.service": unknown container "/system.slice/kubelet.service"

解决方法: /usr/lib/systemd/system/kubelet.service新增2条参数
            --runtime-cgroups=/systemd/system.slice
            --kubelet-cgroups=/systemd/system.slice

案例四:

当指定镜像没有可运行的程序时,导致的pod无限重启

Aug 15 16:15:19 k8s-node31 kubelet: I0815 16:15:19.475703   12531 kuberuntime_manager.go:513] Container {Name:centos7 Image:172.23.210.31:5000/nginx_2 Command:[] Args:[] WorkingDir: Ports:[{Name: HostPort:0 ContainerPort:rces:{Limits:map[] Requests:map[]} VolumeMounts:[{Name:default-token-wstcp ReadOnly:true MountPath:/var/run/secrets/kubernetes.io/serviceaccount SubPath: MountPropagation:<nil>}] VolumeDevices:[] LivenessProbe:nil Readine/dev/termination-log TerminationMessagePolicy:File ImagePullPolicy:Always SecurityContext:nil Stdin:false StdinOnce:false TTY:false} is dead, but RestartPolicy says that we should restart it.
Aug 15 16:15:19 k8s-node31 kubelet: I0815 16:15:19.475788   12531 kuberuntime_manager.go:757] checking backoff for container "centos7" in pod "centos7-7b557486d9-26r84_default(57aba4ee-a063-11e8-966d-000c293dc062)"
Aug 15 16:15:19 k8s-node31 kubelet: I0815 16:15:19.475859   12531 kuberuntime_manager.go:767] Back-off 10s restarting failed container=centos7 pod=centos7-7b557486d9-26r84_default(57aba4ee-a063-11e8-966d-000c293dc062)
Aug 15 16:15:19 k8s-node31 kubelet: E0815 16:15:19.475885   12531 pod_workers.go:186] Error syncing pod 57aba4ee-a063-11e8-966d-000c293dc062 ("centos7-7b557486d9-26r84_default(57aba4ee-a063-11e8-966d-000c293dc062)"), skipth CrashLoopBackOff: "Back-off 10s restarting failed container=centos7 pod=centos7-7b557486d9-26r84_default(57aba4ee-a063-11e8-966d-000c293dc062)"

解决方法: 重新制作包含运行程序的镜像
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kubernetes (k8s)是一个用于容器编排和管理的开源平台,但在实际使用中可能会遇到一些常见的故障。以下是几个常见的k8s故障及其处理方法: 1. Pod无法启动或CrashLoopBackOff:这可能是由于应用程序错误、资源不足或配置问题引起的。您可以通过查看Pod的日志和事件来了解具体原因。修复方法可能包括修复应用程序错误、调整资源配额或修改配置文件。 2. 节点不可用:如果一个或多个节点无法正常工作,您可能会遇到服务中断的问题。您可以通过检查节点的状态、重启节点或替换故障节点来解决这个问题。另外,您可以使用副本控制器来确保Pod在其他可用节点上重新启动。 3. 网络问题:如果Pod无法相互通信或与外部服务通信,可能是由于网络配置错误、防火墙规则或网络故障引起的。您可以检查网络配置、检查防火墙规则并确保网络连接正常。 4. 存储问题:如果您使用了持久卷(Persistent Volume)并且无法访问存储,可能是由于存储配置错误、权限问题或存储故障引起的。您可以检查存储配置、修复权限问题或联系存储管理员来解决这个问题。 5. 资源耗尽:如果您的集群资源不足,可能会导致Pod无法启动或运行缓慢。您可以通过添加更多节点、调整资源配额或优化应用程序来解决这个问题。 这些只是一些常见的k8s故障和处理方法的示例。实际情况可能因您的环境和配置而异。在遇到故障时,建议您查看相关日志、事件和监控信息,以便更好地诊断和解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值