在前一章介绍完ReplicaSet,再来会介绍建立Deployment。
前一章有提到,基本上都是会用Deployment去控制ReplicaSet,下面的教学就可以看出建立Deployment跟ReplicaSet有何关系。
首先建立一个nginx-example.yaml,并将下面内容复制进去。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
并在该yaml档所在的目录执行 apply
kubectl apply -f nginx-example.yaml
这样就可以建立Deployment,如果要确认有没有建立成功,则可以使用get deployments
kubectl get deployments
可以看到下图有成功建立,如果你这时get pods的话,可以看到有三个pod正在建立。
并且透过下图可知,在建立完Deployment前,是没有ReplicaSet的,但是建立之後,就会出现名为nginx-deployment-7848d4b86f的ReplicaSet。
并且看到DESIRED跟CURRENT都是3,代表他期望有三个pod且当前有三个pod,不过由於READY是0,代表pod都还没准备好,等一下再做get rs,就可以发现READY变成3了,代表pod都已经准备好可以运作了。
透过下面的指令,可以更新Deployment内image,以这个范例来说,可以将pod内的image从1.14.2改成1.16.1
kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 --record
这样可以将image更新,这时去get pods可以看到pods有重启,但是Deployment并没有重启。
如果已经不再需要Deployment,则可以用下面的指令删除Deployment。
kubectl delete deployment nginx-deployment
由於前面的metadata.name为nginx-deployment,所以这边删除要指定删nginx-deployment。
删除後就会像下面这样:
在这章可以看出Deployment跟ReplicaSet是互相依靠的,就算当下没有ReplicaSet,产生Deployment时也会顺便产生一份。
在上面有示范更新Deployment内image,会看到他先建立新的pod,再把旧的pod给下掉,这种方式跟你使用哪种strategy有关,因此下一章会介绍Deployment所使用的不同strategy。
<<: 让按钮来个酷动态! 操纵DOM事件:CSS 篇 (一)
引言 昨天的题目让大家知道可以做反组译这件事, 其实这是一个大主题,归在逆向工程中, 该分类会大量...
就是在某天,得到一题关於组字串的练习题,对於小弱弱如我的来说 =.=a 需要绞尽脑汁的狂烧脑去解这一...
前一篇文章中,我们介绍了 State Flow 以及它的使用方式,本篇将继续讨论 State Flo...
大家好,本系列文章探讨经典 Design Patterns 在现代语言 Golang 的演变。虽然...
今日题目 题目连结:88. Merge Sorted Array 题目主题:Array、Two Po...