CentOS上Kubernetes集群管理指南
kubeadm join命令将Worker节点加入集群(需提前在Master节点获取Join命令);使用kubectl get nodes查看节点状态,kubectl drain <node-name>安全排空节点(用于维护或升级),kubectl uncordon <node-name>重新启用节点。kubectl get pods -n kube-system);确保kubelet服务正常运行(systemctl status kubelet),日志通过journalctl -u kubelet查看。kube-state-metrics暴露Kubernetes资源状态(如Deployment副本数、PersistentVolume使用量),cAdvisor收集容器级资源数据。kubectl logs <pod-name>查看单Pod日志,journalctl -u kubelet查看Kubernetes组件日志。Role(命名空间级权限)或ClusterRole(集群级权限)定义权限,结合RoleBinding或ClusterRoleBinding绑定用户/组;例如创建“pod-reader”角色允许查看指定命名空间的Pod。kubectl apply -f nginx-deployment.yaml创建Deployment;滚动更新时修改镜像版本(kubectl set image deployment/nginx-deployment nginx=nginx:1.25),kubectl rollout status deployment/nginx-deployment查看更新状态,kubectl rollout undo deployment/nginx-deployment回滚到上一版本。kubectl scale deployment/nginx-deployment --replicas=5手动扩缩容,或配置Horizontal Pod Autoscaler(HPA)根据CPU/内存使用率自动调整Pod数量(如kubectl autoscale deployment/nginx-deployment --cpu-percent=80 --min=2 --max=10)。kubectl expose deployment/nginx-deployment --type=LoadBalancer --port=80。etcdctl snapshot save /var/lib/etcd/backup.db创建快照(需进入etcd容器执行);备份文件需存储在安全位置(如异地存储、对象存储)。rsync或云厂商快照功能);灾难恢复时,恢复etcd快照并重新部署应用,挂载备份的PV。kubectl是核心命令行工具,支持集群管理(kubectl create/delete)、资源查询(kubectl get/describe)、日志查看(kubectl logs)等;常用技巧:kubectl alias创建别名(如alias kgp='kubectl get pods'),kubectl explain查看资源定义。:p查看Pod日志、d删除资源)快速管理集群,适合习惯终端的用户。resources.requests(请求资源)和resources.limits(限制资源),避免Pod占用过多资源导致节点不稳定;例如resources.requests.cpu="500m", resources.limits.cpu="1"。affinity(亲和性)将Pod调度到指定节点(如靠近数据节点),anti-affinity(反亲和性)将Pod分散到不同节点(提高可用性);例如spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key="disktype", spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].operator="In", spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].values=["ssd"]。