欢迎大家进群,一起探讨学习
微信公众号
博主技术文档地址
博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star
运行容器化应用是Kubernetes最重要的核心功能。为满足不同的业务需要,Kubernetes提供了多种Controller,主要包括Deployment、DaemonSet、Job、CronJob等。
1、创建资源的两种方式
创建资源主要有通过命令行配置参数和通过配置文件这两种方式。
通过命令行主要是使用kubectl命令来进行创建,主要可能用到的是kubectl run和kubectl create,具体的用法我们可以在命令后面加上–-help参数来查看帮助文档。
这种方式的好处就是简单快捷,部署的速度比较快,但是遇到要求比较复杂多样的资源部署,后面就要附带一大串参数,容易出错,所以这种方式一般来说比较适用于小规模的简单资源部署或者是上线前的简单测试
通过配置文件则主要是json格式或yaml格式的文件,好处是可以详细配置各种参数,保留的配置文件还可以用到其他的集群上进行大规模的部署操作,缺点就是部署比较麻烦,并且需要一定的门槛
2.弹性收缩,升级回滚
nginx.yaml
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nginx name: nginx spec:
#副本数 replicas: 3 selector: matchLabels: app: nginx strategy: {} template: metadata: creationTimestamp: null labels: app: nginx spec: containers: - image: nginx:1.14 name: nginx resources: {} status: {}
执行
kubectlapply -f nginx.yaml
应用升级(采用一个一个的进行升级,方便其它服务不会中断)
kubectlset image deploy nginx nginx=nginx:1.15
查询应用是否升级成功
kubectl rollout status deploy nginx
查看升级历史版本
kubectl rollouthistory deploy nginx
应用回滚上一个版本
kubectl rollout undo deploy nginx
应用回滚指定版本
kubectl rollout undodeploy nginx --to-revision=2
弹性伸缩
kubectl scaledeploy nginx --replicas=10
3.无状态应用
4.守护进程
5.一次任务和定时任务
6.进入到pod容器中
kubectl exec -it nginx-764b95f4c5-bw5zw bash;