kubernetes中怎么验证deployment

这篇文章主要讲解了“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这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页名称:kubernetes中怎么验证deployment
链接分享:http://cdiso.cn/article/pecihh.html

其他资讯