如何检查centos k8s安装
导读:一、前置环境检查 在检查CentOS上Kubernetes(k8s)安装前,需确保基础环境配置正确,避免因环境问题导致集群异常: 系统版本:确认CentOS为7.x或8.x(需支持k8s版本要求); 网络连通性:所有节点(Master/W...
一、前置环境检查
在检查CentOS上Kubernetes(k8s)安装前,需确保基础环境配置正确,避免因环境问题导致集群异常:
- 系统版本:确认CentOS为7.x或8.x(需支持k8s版本要求);
- 网络连通性:所有节点(Master/Worker)之间能互相通信(可通过
ping或ssh测试); - 防火墙/SELinux:建议关闭防火墙(
systemctl stop firewalld & & systemctl disable firewalld)和SELinux(setenforce 0并修改/etc/selinux/config中SELINUX=disabled); - 交换分区:禁用交换分区(
swapoff -a并注释/etc/fstab中swap行),避免影响kubelet运行; - 时间同步:配置NTP服务(如
ntpdate ntp.aliyun.com),确保节点时间一致。
二、Kubernetes组件状态检查
Kubernetes核心组件(kubelet、kubeadm、kubectl)是集群运行的基础,需验证其安装及运行状态:
- 组件安装验证:通过
rpm -qa | grep kube命令检查kubelet、kubeadm、kubectl是否安装,或使用yum list installed | grep kube确认; - kubelet服务状态:在所有节点执行
systemctl status kubelet,确保服务处于active (running)状态(若未运行,执行systemctl start kubelet并排查日志journalctl -xeu kubelet); - 版本一致性:检查客户端与服务端版本是否匹配(
kubectl version --client查看客户端版本,kubelet --version查看节点服务端版本,kubeadm version查看初始化工具版本),避免因版本冲突导致问题。
三、集群整体状态检查
通过kubectl命令验证集群整体健康状态,覆盖控制平面、节点、Pod等核心组件:
- 控制平面组件状态:执行
kubectl get componentstatuses(或在v1.19+版本中使用kubectl get --raw /api/v1/componentstatuses),检查controller-manager、scheduler、etcd是否为Healthy(若为Unhealthy,需检查对应组件日志,如journalctl -xeu kube-controller-manager); - 节点状态:执行
kubectl get nodes -o wide,确认所有节点(Master/Worker)状态为Ready(若为NotReady,需检查节点kubelet服务、网络连通性或磁盘空间); - Pod运行状态:执行
kubectl get pods -A(-A表示所有命名空间),检查所有Pod是否为Running状态(若存在CrashLoopBackOff、ImagePullBackOff、Pending等异常,需进一步分析,如kubectl describe pod < pod-name> -n < namespace>查看详细事件)。
四、网络插件检查
网络插件(如Flannel、Calico)是Pod间通信的关键,需验证其是否正常运行:
- 插件部署状态:执行
kubectl get pods -n kube-system,过滤网络插件相关的Pod(如Flannel的kube-flannel-ds-*、Calico的calico-node-*),确认所有Pod状态为Running; - 网络连通性测试:部署一个测试Pod(如
kubectl run nginx --image=nginx --port=80 --restart=Never),创建NodePort服务(kubectl expose deployment nginx --type=NodePort --port=80),获取NodePort后,在任意节点用curl http://< node-ip> :< node-port>访问,若能返回Nginx默认页面,则网络插件工作正常。
五、核心服务功能验证
验证Kubernetes核心服务(如DNS、调度)是否正常:
- DNS解析测试:部署
busybox测试Pod(kubectl run -it --rm --image=busybox:1.28 busybox --restart=Never -- sh),在Pod内执行nslookup kubernetes.default,若能解析到Kubernetes服务的ClusterIP(通常为10.96.0.1),则CoreDNS/DNSmasq工作正常; - 调度功能测试:部署一个资源请求大于节点可用资源的Pod(如
kubectl run test-pod --image=nginx --requests=cpu=1000m,memory=10Gi --limit=cpu=1000m,memory=10Gi),若Pod状态为Pending,说明调度功能正常(需检查节点资源是否充足,如kubectl top nodes查看节点资源使用情况)。
六、日志与诊断工具使用
若上述检查发现问题,可通过以下工具深入排查:
- 查看kubelet日志:
journalctl -xeu kubelet,分析节点级别的错误(如容器运行时异常、网络插件问题); - 查看etcd健康状态:在Master节点执行
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint health,确认etcd集群健康(etcd是控制平面的数据存储,其异常会导致集群不可用); - 导出诊断信息:
kubectl cluster-info dump > dump.json,将集群配置、事件、Pod日志等信息导出,便于提交给社区或进一步分析。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何检查centos k8s安装
本文地址: https://pptw.com/jishu/734217.html
