当前位置:网站首页>kubernetes资源对象介绍及常用命令(二)
kubernetes资源对象介绍及常用命令(二)
2022-07-01 07:24:00 【傻啦猫@[email protected]】
Deployment
Deployment顾名思义,就是部署的意思。Deploymen用于控制Pod,使Pod拥有多副本,自愈,扩缩容等能力。
多副本
副本,可以理解为Pod的数量。这些Pod会被随机分配到集群中的任意节点。
创建一次名叫my-app的部署,使用镜像为nginx。副本数为3。
命令行方式
kubectl create deploy my-app --image=nginx --replicas=3
yaml方式,my-app.yml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-app
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx
name: nginx
kubectl apply -f my-app.yml

扩缩容
扩缩容是将原有的副本数进行扩大或缩小。流量大的时候可以扩容,流量高峰过后可以进行缩容,资源利用最大化。
命令行方式
kubectl scale --replicas=5 deployment/my-app
副本数由3个变成5个。
修改yaml方式
kubectl edit deployment my-app
将replicas修改成自己想要的数量,保存退出即可进行扩缩容。

自愈&故障转移
使用Deployment部署的应用始终和设定的副本数保持一致,当pod出现异常或者服务器宕机,亦或者删除pod,会在正常的节点重新拉起副本,以满足我们设定的副本数量。
我们模拟将k8s-worker1节点宕机。
发现k8s-worker1节点的两个pod状态为Terminating。在k8s-worker2多了两个Running状态的pod。实现了故障转移。
扩展:
查看集群内pod信息。
kubectl get pod -owide
监控集群内pod情况,打印详细信息。
kubectl get pod -w

阈值:pod出现了异常状况,k8s并不会立即杀死pod进行重启,而是超过了阈值才进行相应的重启操作,以防止因短暂网络问题等故障导致的频繁启动pod。
滚动更新
传统的更新升级需要将服务停止在做升级操作。k8s不用停止服务,会将pod依次替换成最新的,即启动一个新pod,杀死一个旧pod,直至全部更新完为止。
将nginx镜像更新为1.16.1版本。
命令行方式
kubectl set image deployment/my-app nginx=nginx:1.16.1 --record
修改yaml方式
kubectl edit deployment/my-app
将images修改为1.16.1中,保存退出即可。

扩展:
查看某次部署的yaml。
kubectl get deployment [my-app] -oyaml
版本回退
将版本回退到历史的某一次。
查看历史记录
[[email protected] ~]# kubectl rollout history deployment/my-app
deployment.apps/my-app
REVISION CHANGE-CAUSE
1 <none>
2 kubectl set image deployment/my-app nginx=nginx:1.16.1 --record=true
[[email protected] ~]#
查看某个历史详情
[[email protected] ~]# kubectl rollout history deployment/my-app --revision=2
deployment.apps/my-app with revision #2
Pod Template:
Labels: app=my-app
pod-template-hash=5ff664f457
Annotations: kubernetes.io/change-cause: kubectl set image deployment/my-app nginx=nginx:1.16.1 --record=true
Containers:
nginx:
Image: nginx:1.16.1
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
[[email protected] ~]#
回滚(回到上次)
[[email protected] ~]# kubectl rollout undo deployment/my-app
deployment.apps/my-app rolled back
[[email protected] ~]#
回滚(回到指定版本)
[[email protected] ~]# kubectl rollout undo deployment/my-app --to-revision=2
deployment.apps/my-app rolled back
[[email protected] ~]#
回滚的版本需要按照自己需要的填写。
小结:

除了Deployment,k8s还有 StatefulSet 、DaemonSet 、Job 等 类型资源。我们都称为 工作负载。 有状态应用使用 StatefulSet 部署,无状态应用使用 Deployment 部署 https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/
本文由 mdnice 多平台发布
版权声明
本文为[傻啦猫@[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45842494/article/details/125550761
边栏推荐
- [target detection] yolov5, the shoulder of target detection (detailed principle + Training Guide)
- 2022广东省安全员A证第三批(主要负责人)特种作业证考试题库模拟考试平台操作
- Cadence OrCAD capture "network name" is the same, but it is not connected or connected incorrectly. The usage of nodeName of liberation scheme
- Pourquoi tant de gens sont - ils devenus des gestionnaires de produits? Quelles sont les perspectives de développement des gestionnaires de produits?
- Understanding of Turing test and Chinese Room
- 运维管理有什么实用的技巧吗
- [lingo] solve quadratic programming
- 2022制冷与空调设备运行操作国家题库模拟考试平台操作
- 【深圳IO】精确食品称(汇编语言的一些理解)
- [recommendation system] breakthrough and imagination of deep location interactive network dpin for meituan takeout recommendation scenario
猜你喜欢

运维面临挑战?智能运维管理系统来帮您

【编程强训】删除公共字符(哈希映射)+组队竞赛(贪心)

1286_ Implementation analysis of task priority setting in FreeRTOS

How to create an exclusive vs Code theme

LeetCode+ 71 - 75

The programmer of Beipiao posted a post for help late at night: I am lonely when my girlfriend is gone

Unity2021-Scene视图中物体无法直接选中的解决办法

微软宣布开源 (GODEL) 语言模型聊天机器人

C语言实现【扫雷游戏】完整版(实现源码)

Microsoft announces open source (Godel) language model chat robot
随机推荐
Custom events of components ①
[recommendation system] breakthrough and imagination of deep location interactive network dpin for meituan takeout recommendation scenario
Servlet 和 JSP 中的分页
2022广东省安全员A证第三批(主要负责人)特种作业证考试题库模拟考试平台操作
论文学习——水文时间序列相似性查询的分析与研究
C语言实现【三子棋游戏】(步骤分析和实现源码)
【深圳IO】精确食品称(汇编语言的一些理解)
浏览器本地存储
Why are so many people turning to product managers? What is the development prospect of product manager?
Redisson uses the complete solution - redisson official documents + Notes (Part 1)
[lingo] solve quadratic programming
组件的自定义事件②
【图像处理】图像直方图均衡化系统含GUI界面
Stepsister becomes stepmother, son breaks off relationship with himself, and musk, the world's richest man, why is it so miserable?
[network planning] (I) hub, bridge, switch, router and other concepts
Inventory the six second level capabilities of Huawei cloud gaussdb (for redis)
C# Newtonsoft. Use of job in JSON
华泰证券开户是安全可靠的么?怎么开华泰证券账户
Paging in servlets and JSPS
运维管理有什么实用的技巧吗