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 版本,并关注官方更新的最佳实践,以确保你的集群安全、稳定地运行。

相关推荐
用户03284722207011 小时前
如何搭建本地yum源(上)
运维
武子康12 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦4 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw