创建deployment
服务编排-Deployment
Deployment
也叫部署集
;
deployment.Spec.Selector
与deployment.Spec.Template.Labels
一致
Deployment工作负载均衡器介绍
Deployment
是最常用的k8s工作负载控制器
,部署
和管理pod
;
其他控制器还有DaemonSet
,StatefulSet
等.
Deployment的主要功能
- 管理
Pod
和ReplicaSet
- 具有
上线部署
,副本设定
,滚动更新
,回滚
等功能 - 提供
声明式更新
,例如只更新
一个新的Image
Deployment的应用场景
- 网站
- API
- 微服务
创建一个deployment
命令行创建deployment
# 使用命令行部署
# 使用Department控制器部署镜像
kubectl create deployment 应用名 --image=镜像名 --replicas=副本数量
# 使用lizhenliang/java-demo镜像创建一个名为tomcatdemo的deployment
kubectl create deployment tomcatdemo --image=lizhenliang/java-demo
yaml创建deployment
## --dry-run是试运行看是否有错误
kubectl create deployment 应用名 --image=nginx:1.16 -o yaml --dry-run=client > my-deploy.yaml
apply资源清单
# apply这个deployment
kubectl apply -f my-deploy.yaml
查看Deployment和pod的状态
# 查看Deployment和pod的状态
kubectl get deployment,pods
# 每秒钟查看一次
watch -n 1 kubectl get deployment,pods
扩缩容
# 查看原来的副本数量
kubectl get deploy/gost
# 将副本数量调整为2个
kubectl scale deploy 应用名 --replicas=2
## 或者修改对应yamal文件中的replicas值,apply一下即可
# 查看修改后的副本数量
kubectl get deploy/gost
deploy中指定env
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image
resources:
limits:
memory: "25Mi"
cpu: "10m"
# 为每个pod指定变量
env:
- name: 变量名
value: 变量值
- name: DB_HOST
value: my-database.example.com