Deployment部署
在早期版本使用Replication Controller对Pod副本数量进行管理,在新的版本中官方推荐使用Deployment来代替RC,Deployment相对RC有这些好处:
- Deployment拥有更加强大的升级、回滚功能,并且支持滚动更新
- 使用Deployment升级Pod只需要定义Pod的最终状态,k8s会为你执行必要的操作(RC要自己定义如何操作)
不管是RC还是Deployment,解决的主要问题是:每个Pod都运行给定应用程序的单个实例。如果您想水平扩展应用程序(例如:运行多个同样的实例),则应该使用多个Pod。如下所示:
> vim nginx-deployment.yaml
apiVersion: extensions/v1beta1 # K8s对应的API版本
kind: Deployment # 对应的类型
metadata:
name: nginx-deployment
labels:
name: nginx-deployment
spec:
replicas: 1 # 镜像副本数量
template:
metadata:
labels:
app: nginx # 容器的标签,可和service关联
spec:
containers:
- name: nginx # 容器名和镜像
image: nginx
imagePullPolicy: Always
> kubectl create -f nginx-deployment.yaml
> kubectl get pod
NAME