【kubernetes笔记】k8s_controller控制器(05)
Page content
这一篇整理了控制器controller(deployment)相关的内容。
1.控制器controller
集群中管理和运行容器的对象。
2.控制器controller和Pod关系
- Pod是通过Controller实现应用的运维(伸缩,滚动升级等等…)
- Pod和Controller之间通过Label标签建立联系(selector)
3.deployment的应用场景
- 部署无状态应用
- 管理Pod和ReplicaSet
- 部署,滚动升级等功能
- 应用在web服务,微服务等等…
4.使用deployment部署应用yaml
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
replicas: 1
selector:
matchLables:
app: web
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: web
... ...
第一步: 导出yaml文件
$kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml
第二步: 使用yaml部署应用
$kubectl create apply -f web.yaml
deployment.apps/web created
第三步: 对外发布(暴露对外端口号)
$kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml > web.yaml
$kubectl apply -f web1.yaml
5.应用升级回滚和弹性伸缩
5.1 应用升级
$kubectl set image deployment web nginx=nginx:1.15
deployment.apps/web image updated
#查看升级状态
$kubectl rollout status deployment web
deployment "web" successfully rolled out
#查看升级版本
$kubectl rollout history deployment web
5.2 回滚
回滚到上一个版本
$kubectl rollout undo deployment web
回滚都指定版本
$kubectl rollout undo deployment web --to-revision=2
5.3 弹性伸缩
$kubectl scale deployment web --replicas=10
欢迎大家的意见和交流
email: li_mingxie@163.com