K8S日常运维手册

Kubernetes(简称 K8S)是一种广泛使用的容器编排平台,能够自动化部署、扩展和管理容器化应用。对于运维人员来说,掌握 Kubernetes 的日常运维技能是确保系统稳定运行的关键。本文将介绍一些 Kubernetes 日常运维的基本操作与技巧,帮助你更好地管理和维护你的 Kubernetes 集群。

1. 集群健康检查

1.1 查看节点状态

确保所有节点都正常运行是 Kubernetes 运维的基础。使用以下命令可以查看节点的状态:

复制代码
kubectl get nodes

输出示例:

sh

复制代码
NAME           STATUS   ROLES    AGE   VERSION
node1          Ready    master   10d   v1.20.2
node2          Ready    <none>   10d   v1.20.2
node3          Ready    <none>   10d   v1.20.2

1.2 检查系统组件状态

系统组件(如 kube-apiserverkube-scheduler 等)的健康状况也非常重要。可以通过以下命令查看:

复制代码
kubectl get componentstatuses

输出示例:

sh

复制代码
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}

2. 日志管理

2.1 查看 Pod 日志

当某个应用出现问题时,查看 Pod 的日志是定位问题的第一步。使用以下命令可以查看某个 Pod 的日志:

复制代码
kubectl logs <pod-name>

如果 Pod 有多个容器,可以指定容器名称:

复制代码
kubectl logs <pod-name> -c <container-name>

2.2 实时查看日志

可以使用 -f 选项实时查看日志输出:

复制代码
kubectl logs -f <pod-name>

3. 资源管理

3.1 扩展/缩减 Deployment

根据业务需求,可能需要动态调整应用的副本数。可以使用以下命令扩展或缩减 Deployment:

sh

复制代码
kubectl scale deployment <deployment-name> --replicas=<number>

3.2 更新镜像

当需要更新应用镜像时,可以使用以下命令:

sh

复制代码
kubectl set image deployment/<deployment-name> <container-name>=<new-image>

4. 备份与恢复

4.1 备份 ETCD 数据

ETCD 是 Kubernetes 的数据存储核心,定期备份 ETCD 数据是非常重要的。可以使用以下命令备份 ETCD 数据:

sh

复制代码
ETCDCTL_API=3 etcdctl snapshot save <backup-file>

4.2 恢复 ETCD 数据

如果出现数据丢失或损坏情况,可以使用以下命令恢复 ETCD 数据:

sh

复制代码
ETCDCTL_API=3 etcdctl snapshot restore <backup-file> --data-dir /var/lib/etcd

5. 安全管理

5.1 创建 RBAC 角色和绑定

Kubernetes 使用 RBAC(基于角色的访问控制)来管理权限。以下是创建一个新角色及其绑定的示例:

创建角色:

yaml

复制代码
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

创建角色绑定:

yaml

复制代码
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: "user1"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

应用配置:

sh

复制代码
kubectl apply -f role.yaml
kubectl apply -f rolebinding.yaml

结论

Kubernetes 日常运维涉及多个方面,从集群健康检查、日志管理、资源管理,到备份恢复和安全管理,每一个环节都至关重要。希望本文提供的操作指南能帮助你更高效地进行 Kubernetes 集群的日常运维工作。

记得定期更新你的 Kubernetes 版本,并关注官方更新的最佳实践,以确保你的集群安全、稳定地运行。

相关推荐
程序员阿伦2 分钟前
璋㈤鏈虹殑Java澶у巶闈㈣瘯璁帮細浠嶴pring Boot鍒癒ubernetes锛�3杞湡棰樺叏瑙f瀽锛�
spring boot·redis·kubernetes·aigc·java闈㈣瘯·寰湇鍔�·鐢靛晢绉掓潃
狼与自由1 小时前
K8S的架构
容器·架构·kubernetes
3DVisionary1 小时前
突破3C质检产能瓶颈:XTOM蓝光扫描仪配合自动化转台实现精密件批量检测
运维·人工智能·自动化·xtom扫描仪·自动化检测·消费电子质检·良率控制
Luke Ewin1 小时前
Linux中部署Qwen3.5大模型
linux·运维·服务器·ai·llm·qwen3.5
xin_yao_xin1 小时前
Windows 下 Docker Desktop 安装教程及常用命令(2026 最新)
运维·docker·容器
春日见1 小时前
云服务器开发与SSH
运维·服务器·人工智能·windows·git·自动驾驶·ssh
还是做不到嘛\.2 小时前
DVWA靶场-Brute Force
运维·服务器·数据库·学习
克莱因3582 小时前
linux主机名与Hosts映射 (顺带个DNS简介
linux·运维·服务器
XMAIPC_Robot2 小时前
基于RK3588 ARM+FPGA的电火花数控系统设计与测试(三)
运维·arm开发·人工智能·fpga开发·边缘计算