centos

centos如何验证k8s安装成功

小樊
38
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
看了该问题的人还看了