温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

kubernetes中怎么验证deployment

发布时间:2021-12-31 09:11:42 来源:亿速云 阅读:189 作者:iii 栏目:云计算

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI