kubernetes-- 负载
k8s 多种负载的使用:
- deployment :无状态服务, 如微服务、提供多副本等功能
- StatusfulSet:有状态, 如redis提供稳定的存储、网络等功能
- DeamonSet:守护进程, 比如:日志收集组件,每台机器有且只有一份
- job/Cronjob: 定时任务, 如指定时间运行
Deployment
控制Pod,使Pod拥有多副本,自愈,扩缩容等能力
# 创建pod kubectl create deployment mytomcat --image=tomcat:8.5.68
多副本
kubectl create deployment mytomcat --image=nginx --replicas=3
查看
apiVersion: apps/v1 kind: Deployment metadata: labels: app: my-dep name: my-dep spec: replicas: 3 selector: matchLabels: app: my-dep template: metadata: labels: app: my-dep spec: containers: - image: nginx name: nginx
扩缩容能力
# 扩容2台 kubectl scale --replicas=5 deployment/my-dep # 缩容3台 kubectl scale --replicas=2 deployment/my-dep
自愈&故障转移
- 停机
- 删除pod
- 容器崩溃
- 节点机器宕机
- .......
滚动更新
# 热升级
kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record # 查看状态
kubectl rollout status deployment/my-dep
# 第二种热升级(修改yaml)
kubectl edit deployment/my-dep
版本回退
#历史记录 kubectl rollout history deployment/my-dep #查看某个历史详情 kubectl rollout history deployment/my-dep --revision=2 #回滚(回到上次) kubectl rollout undo deployment/my-dep #回滚(回到指定版本) kubectl rollout undo deployment/my-dep --to-revision=2
更多:
除了Deployment,k8s还有 StatefulSet
、DaemonSet
、Job
等 类型资源。我们都称为 工作负载
。
有状态应用使用 StatefulSet
部署,无状态应用使用 Deployment
部署
https://kubernetes.io/zh/docs/concepts/workloads/controllers/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!