项目的生命周期
Posted 敲击岁月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目的生命周期相关的知识,希望对你有一定的参考价值。
项目的生命周期:创建-发布-更新-回滚-删除
创建
#启动nginx实例,暴露容器端口80.设置副本数3
kubectl run nginx --image=nginx:1.14 --port=80 --replicas=3
kubectl get pod
kubectl get all
发布
将资源暴露为新的service
kubectl expose --help
#为deployment的nginx创建service,并通过service的80端口转发至容器的80端口上,service的名称为nginx-service,类型为nodeport
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
kubectl之所以需要service,一方面是因为pod的IP不是固定的(pod会重建),另一方面则是因为一组pod实例之间总会有负载均衡的需求
service的类型
ClusterIP(对内) | 提供一个集群内部的虚拟IP以供pod访问(service默认类型) |
---|---|
NodePort(对外) | 在每个node上打开一个端口以供外部访问,并且每个node上的端口号都是一致的,通过nodeIP:nodeport的方式使得k8s集群外部可以访问service 端口号为30000-32767 |
LoadBalancer | 通过外部的负载均衡器来访问,通常在云平台部署loadbalancer还需要额外的费用 |
更新
#查看当前nginx版本号
curl -I 192.168.146.10:31864
#将nginx版本更新为1.15版本
kubectl set image deployment/nginx nginx=nginx:1.15
#动态监听pod状态,由于使用的是滚动更新,会先生成一个新pod,再删除一个旧pod
kubectl get pod -w
回滚
#查看历史版本
kubectl rollout history deployment/nginx
#执行回滚到上个版本
kubectl rollout undo deployment/nginx
#执行回滚到指定版本
kubectl rollout undo deployment/nginx --to-revision=1
#检查回滚状态
kubectl rollout status deployment/nginx
删除
#删除副本控制器
kubectl delete deployment/nginx
#删除service
kubectl delete service/nginx-service
以上是关于项目的生命周期的主要内容,如果未能解决你的问题,请参考以下文章