deployment也是用来保证pod高可用的方式。在实际生产环境中,主要用的是deployment,很少用rc。
rc在滚动升级之后标签改变,svc的ip地址就不存在了,在短时间就访问不了
滚动升级后,pod标签是myweb2,svc标签还是myweb导致svc后端没有节点
创建一个deployment
vim nginx_deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.13
ports:
- containerPort: 80
创建deployment
kubectl create -f nginx_deployment.yaml
关联service
kubectl expose deployment nginx-deployment --port=80 --type=NodePort
此时查看资源状态。多出一个svc,端口是32327,访问端口发现正常连接
若想升级版本,可直接编辑deployment文件
kubectl edit deployment nginx-deployment
也可以进行回滚
kubectl rollout undo deployment nginx-deployment(默认回滚到上一个版本)