温馨提示×

centos如何验证k8s安装成功

小樊
44
2025-10-01 00:57:24
栏目: 智能运维

CentOS验证K8s安装成功的核心步骤

在CentOS上安装Kubernetes(K8s)后,需通过组件状态检查节点就绪验证Pod与服务功能测试三大维度确认安装是否成功。以下是具体操作及说明:

1. 检查Kubernetes核心组件服务状态

确保kubelet(节点代理)、kube-apiserver(集群API入口)、etcd(分布式键值存储)等核心服务正在运行,这是K8s正常工作的基础。

systemctl status kubelet # 应显示"Active: active (running)" systemctl status kube-apiserver # 主节点需运行,显示"Active: active (running)" systemctl status etcd # 主节点需运行,显示"Active: active (running)" 

若服务未启动,可通过systemctl start <服务名>启动,并用journalctl -u <服务名>查看日志排查问题。

2. 验证节点状态(关键指标:Ready)

使用kubectl命令查看集群中所有节点的状态,所有节点必须显示为"Ready"(表示节点已成功加入集群并可接收工作负载)。

kubectl get nodes 

预期输出示例:

NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 10m v1.28.2 k8s-node1 Ready <none> 5m v1.28.2 

若节点状态为"NotReady",需检查节点间网络连通性、防火墙设置(需放行K8s默认端口,如6443、10250等)或kubelet日志(journalctl -u kubelet)。

3. 检查kube-system命名空间的Pod运行状态

kube-system命名空间包含K8s核心组件(如CoreDNS、kube-proxy、Calico等),这些Pod的正常运行是集群功能完整的前提。

kubectl get pods -n kube-system 

预期输出示例(所有Pod状态应为"Running"):

NAME READY STATUS RESTARTS AGE coredns-5dd5756b68-abcde 1/1 Running 0 8m kube-apiserver-k8s-master 1/1 Running 0 10m kube-controller-manager-k8s-master 1/1 Running 0 10m kube-proxy-xyz123 1/1 Running 0 8m kube-scheduler-k8s-master 1/1 Running 0 10m 

若有Pod处于"Pending"、"CrashLoopBackOff"等异常状态,需通过kubectl describe pod <pod名> -n kube-system查看详情,常见原因包括网络插件未安装、资源不足等。

4. 测试Pod部署与管理功能

创建一个简单的Nginx Pod,验证K8s是否能正常调度、启动容器:

kubectl run nginx --image=nginx --port=80 --restart=Never # 创建单次运行的Nginx Pod kubectl get pods # 检查Pod状态,应为"Running" 

预期输出:

NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 2m 

进一步验证Pod是否可访问:

kubectl port-forward nginx 8080:80 # 将Pod的80端口映射到本地的8080端口 curl http://localhost:8080 # 应返回Nginx默认页面的HTML内容 

若无法访问,需检查Pod的日志(kubectl logs nginx)或节点网络配置。

5. 测试Service的负载均衡功能(可选但推荐)

创建一个NodePort类型的Service,暴露Nginx服务到集群外部,验证Service是否能正确路由流量:

kubectl create deployment my-nginx --image=nginx --port=80 # 创建Deployment kubectl expose deployment my-nginx --type=NodePort --port=80 # 暴露为NodePort Service kubectl get svc # 查看Service的外部端口(如"30080:80/TCP") 

预期输出:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE my-nginx NodePort 10.96.123.45 <none> 80:30080/TCP 1m 

通过任意节点的IP和外部端口访问Nginx:

curl http://<节点IP>:30080 # 应返回Nginx默认页面 

若无法访问,需检查Service的Endpoints(kubectl describe svc my-nginx)是否包含正常运行的Pod IP。

通过以上步骤逐一验证,若所有检查项均符合预期(节点Ready、Pod运行正常、服务可访问),则说明CentOS上的K8s安装成功。

0