这篇文章主要讲解了“kubernetes中怎么验证deployment”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“kubernetes中怎么验证deployment”吧!
k8s通常不会直接创建pod,而是通过controller来管理pod,以达到副本管理、滚动升级和集群级别的自愈能力。controller包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等
1.kubectl run创建的pod没有自愈功能,因为该pod没有被controller所管理。
2.Deployment是最常用的部署无状态服务的controller,用于管理replicaset和更新pod
3.创建Deployment后,Deployment contorller将立即创建一个ReplicaSet副本集,并由ReplicaSet创建所需要的pod。更新deployment时,deployment控制器将为deployment创建一个新的ReplicaSet副本集,并逐步在新的副本集中创建pod;在旧的的副本集中删除pod,达到滚动更新的效果。
4.当且仅当Deployment的Pod template字段的内容发生变更时,Depoyment的发布更新才会触发。
创建deployment
#命令行直接运行
kubectl create deployment nginx --image=nginx
#通过配置文件yaml创建
kubectl create deployment nginx --image=nginx --dry-run='client' -o yaml > dep.yaml
kubectl apply -f dep.yaml
#删除deployment
kubectl delete deployment nginx
kubectl delete -f dep.yaml
#验证deployment管理的pod具有自愈性
kubectl run起一个pod, kubectl create deployment起一个controller管理的pod
kubectl get pods -o wide 检查pod分布的node
kubectl drain node2 将分布到node2上的pod驱逐
kubectl get pods -o wide 可看到node2被禁止调度,且controller管理的pod迁移到node1上运行了,而kubectl run的pod已被删除
kubectl get rs 可看到对应的replicaset controller
#查看deployment的具体配置
kubectl edit deployment nginx
#将pod扩展为2
kubectl scale deployment nginx --replicas=2
#查看deployment nginx的滚动更新状态
kubectl rollout status deployment nginx
#查看deployments
kubectl get deployments
#查看replicasets
kubectl get rs -w
#查看deployment的events
kubectl describe deployment
#查看更新历史
kubectl rollout history deployment nginx
#回滚到前一个版本,不能回滚(rollback)一个已暂停的 Deployment,除非您继续(resume)该 Deployment
kubectl rollout undo deployment nginx
kubectl rollout undo deployment nginx --to-revision=2
#暂停更新
kubectl rollout pause deployment nginx
#恢复更新
kubectl rollout resume deployment nginx
#导出deployment的配置文件
kubectl get deployment deploy_name -o yaml > deployment.yaml
#删除 ReplicaSet 时,将不删除其从属对象
kubectl delete replicaset my-repset --cascade=false
用service暴露pod服务
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看service
kubectl get svc
# 查看service对应的endpoint
kubectl get endpoints
#验证
curl http://service-clusterIP
curl http://nodeIP:32038
以上命令行运行的nginx,可用以下配置文件来云
vi nginx-dep-service.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-nginx
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
----------------------
apiVersion: v1
kind: Service
metadata:
name: web-nginx
labels:
apps: nginx
spec:
selector:
app: nginx
ports:
- name: web-nginx
protocol: TCP
port: 80
nodePort: 32600
targetPort: 80
type: NodePort
kubectl apply -f nginx-dep-service.yaml
感谢各位的阅读,以上就是“kubernetes中怎么验证deployment”的内容了,经过本文的学习后,相信大家对kubernetes中怎么验证deployment这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。