当前位置:网站首页>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
边栏推荐
- [classification model] Q-type cluster analysis
- iNFTnews | 从《雪崩》到百度“希壤”,元宇宙30年的16件大事
- C# 读写自定义的Config文件
- Summary of the concept and advantages of 5g massive MIMO
- Challenges faced by operation and maintenance? Intelligent operation and maintenance management system to help you
- C# Newtonsoft.Json中JObject的使用
- 2022年茶艺师(中级)复训题库及答案
- 運維管理系統,人性化操作體驗
- [chapter 72 of the flutter problem series] a solution to the problem that pictures taken in the flutter using the camera plug-in are stretched
- Redisson utilise la solution complète - redisson Documents officiels + commentaires (Partie 1)
猜你喜欢
The programmer of Beipiao posted a post for help late at night: I am lonely when my girlfriend is gone
Autosar 学习记录(1) – EcuM_Init
Fix the problem that the AI video intelligent platform easycvr device video cannot be played
Redisson uses the complete solution - redisson official documents + Notes (Part 1)
如何制作专属的VS Code主题
Huawei modelarts training alexnet model
We found a huge hole in MySQL: do not judge the number of rows affected by update!!!
运维管理有什么实用的技巧吗
华为ModelArts训练Alexnet模型
【推荐系统】美团外卖推荐场景的深度位置交互网络DPIN的突破与畅想
随机推荐
【技能】创建.bat快速打开网页
1286_ Implementation analysis of task priority setting in FreeRTOS
C语言实现【三子棋游戏】(步骤分析和实现源码)
C# Newtonsoft. Use of job in JSON
Cadence OrCAD capture "network name" is the same, but it is not connected or connected incorrectly. The usage of nodeName of liberation scheme
Stepsister becomes stepmother, son breaks off relationship with himself, and musk, the world's richest man, why is it so miserable?
Understanding of Turing test and Chinese Room
DC-4 target
Oracle创建自增id
ctfshow-web351(SSRF)
Todolist classic case ①
5G Massive MIMO的概念和优点总结
redisson看门狗机制,redisson看门狗性能问题,redisson源码解析
How to enter the Internet industry and become a product manager? How to become a product manager without project experience?
【LINGO】求解二次规划
Is it safe to buy funds on the brokerage account
MySQL and redis consistency solution
ctfshow-web354(SSRF)
C# Newtonsoft.Json中JObject的使用
Microsoft announces open source (Godel) language model chat robot