什么是Deployment?
Deployment提供了运行Pod能力,并且为Pod提供滚动升级、伸缩、副本等功能,一般用于运行无状态的应用。目前建议使用Deployment来代替RelicaSet及ReplicationController的使用。
什么是无状态应用?
无状态应用是不将数据或应用程序状态存储到容器中,这将使无状态应用程序更具可伸缩性。例如前端应用是无状态的,可以部署多个副本以提高其可用性并在需求低时进行缩减,并且这些副本不需要唯一的标识。
Deployment操作
创建Deployment
kubectl create deployment nginx-deployment --image=nginx:1.16
通过yaml文件操作
kubectl apply -f nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.16
查看Deployment列表
kubectl get deployment
查看Deployment描述信息
kubectl describe deployment
Deployment 手动伸缩Pod数量
方式1. 通过kubectl set image
kubectl scale deployment nginx-deployment --replicas 5
方式2. 通过YAML资源定义清单
kubectl apply -f nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 5
selector:
matchLabels:
app: nginx
template