一級(jí)a做爰片免費(fèi)無碼網(wǎng)站網(wǎng)絡(luò)流量分析工具
一 為什么使用控制器
pod控制器
作用:1.pod類型資源刪除,不會(huì)重建
? ? ? ? ? ?2.控制器可以幫助用戶監(jiān)控,并保證節(jié)點(diǎn)上運(yùn)行定義好的pod副本數(shù)
? ? ? ? ? ?3.pod超過或低于用戶期望,控制器會(huì)創(chuàng)建、刪除pod副本數(shù)量
控制器類型:
- RS控制器:按照用戶期望的副本數(shù)量,創(chuàng)建pod,?用戶寫yaml,定義RS控制器,去定義pod模板,pod按照這個(gè)模板去運(yùn)行
- deployment控制器
- DaemonSet
二 詳解rs控制器原理
RS控制器原理:副本數(shù)保障、標(biāo)簽選擇器
2.1 創(chuàng)建RS控制器
[root@k8s-master ~]# cat rs-nginx.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: nginx-rsnamespace: lxyspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:name: nginx-podlabels:app: nginxspec:containers:- name: nginx-containersimage: nginx:1.14.0imagePullPolicy: IfNotPresentports:- name: httpcontainerPort: 80
kubectl create -f rs-nginx.yml
kubectl -n lxy get rs -owide
kubectl -n lxy get pods -l app=nginx -owide
?
2.2 刪除Pod,查看rs如何保障副本數(shù)?
刪掉一個(gè)pod,但是會(huì)馬上創(chuàng)建一個(gè)
2.3 pod和rs關(guān)系?
kubectl -n lxy describe rs nginx-rs?
2.4 修改RS控制器
1.對(duì)yaml修改副本數(shù),修改資源配置:kubectl apply -f rs-nginx.yml
2.編輯RS控制器:kubectl -n lxy edit rs nginx-rs? (有些是無法修改)
三 Deploy控制器與彈性擴(kuò)縮容
kubectl scale --help
kubectl -n lxy scale --replicas=X?rs nginx-rs?
root@k8s-master ~]# kubectl -n lxy get pods -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-2 1/1 Running 2 5d17h 10.2.20.143 k8s-node13 <none> <none>
nginx-rs-2zhzn 1/1 Running 0 7h25m 10.2.231.96 k8s-node12 <none> <none>
nginx-rs-7p64w 1/1 Running 0 7h25m 10.2.20.146 k8s-node13 <none> <none>
[root@k8s-master ~]# kubectl -n lxy scale --replicas=4 rs nginx-rs
replicaset.apps/nginx-rs scaled
[root@k8s-master ~]# kubectl -n lxy get pods -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-2 1/1 Running 2 5d17h 10.2.20.143 k8s-node13 <none> <none>
nginx-rs-2zhzn 1/1 Running 0 7h34m 10.2.231.96 k8s-node12 <none> <none>
nginx-rs-7p64w 1/1 Running 0 7h34m 10.2.20.146 k8s-node13 <none> <none>
nginx-rs-8jf8p 1/1 Running 0 4s 10.2.20.150 k8s-node13 <none> <none>
nginx-rs-k9dvr 1/1 Running 0 4s 10.2.20.149 k8s-node13 <none> <none>
[root@k8s-master ~]# kubectl -n lxy scale --replicas=2 rs nginx-rs
replicaset.apps/nginx-rs scaled
[root@k8s-master ~]# kubectl -n lxy get pods -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-2 1/1 Running 2 5d17h 10.2.20.143 k8s-node13 <none> <none>
nginx-rs-2zhzn 1/1 Running 0 7h34m 10.2.231.96 k8s-node12 <none> <none>
nginx-rs-7p64w 1/1 Running 0 7h34m 10.2.20.146 k8s-node13 <none> <none>
nginx-rs-8jf8p 0/1 Terminating 0 12s 10.2.20.150 k8s-node13 <none> <none>
nginx-rs-k9dvr 0/1 Terminating 0 12s 10.2.20.149 k8s-node13 <none> <none>
獲取當(dāng)前rs資源的Yaml:?kubectl -n lxy get rs nginx-rs -oyaml
四 Deploy與rs原理
Deployments | Kubernetes
kubectl -n kube-system get deploy coredns -o yaml
[root@k8s-master ~]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentnamespace: lxy
spec:replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80resources:limits:cpu: 100mmemory: 200Mirequests:cpu: 100mmemory: 200Mi
[root@k8s-master ~]# kubectl get deployments.apps -owide -n lxy
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx-deployment 2/2 2 2 110s nginx nginx:1.14.2 app=nginx
[root@k8s-master ~]# kubectl get rs -n lxy
NAME DESIRED CURRENT READY AGE
nginx-deployment-58df99679c 2 2 2 115s
nginx-rs 2 2 2 8h
[root@k8s-master ~]# kubectl get pods -l app=nginx -n lxy
NAME READY STATUS RESTARTS AGE
nginx-deployment-58df99679c-tqxps 1/1 Running 0 119s
nginx-deployment-58df99679c-zhvcj 1/1 Running 0 119s
nginx-rs-2zhzn 1/1 Running 0 8h
nginx-rs-7p64w 1/1 Running 0 8h
pod和rs和deployment關(guān)系
kubectl describe pods nginx-deployment-AAA-XX
kubectl describe rs nginx-deployment-AAA?
五 滾動(dòng)更新詳解原理
藍(lán)綠更新:起一個(gè)新的Pod+刪除一個(gè)舊pod,接替就是滾動(dòng)更新
六 更新鏡像版本其他玩法
1.kubectl edit rs資源
2.kubectl ?scale ?--replicas=xxx ? rs ?rs名
3.edit 編輯deployment資源
4.deployment提供了 修改鏡像版本 參數(shù) ? kubectl ?set image
七 版本更新與回滾詳解
因?yàn)閞s控制器還在,數(shù)據(jù)還在?kubectl get rs -owide -w /?kubectl get rs -owide -n lxy
#查看版本是1.14.2
kubectl get deployments.apps -n lxy -owide
#修改版本為1.14.1
kubectl -n lxy set image deployment nginx-deployment nginx=nginx:1.14.1
#這時(shí)候在查看是1.14.1,使用命令回歸后,恢復(fù)成1.14.2
kubectl rollout undo deployment nginx-deployment -n lxy
八 詳解版本記錄號(hào)玩法
1.kubectl create -f last-deploy-nginx.yml --record? ? ----創(chuàng)建的時(shí)候,記錄版本號(hào)
2.查看deploy版本信息
kubectl rollout history deployment ?last-nginx-deployment?
kubectl rollout status ?deployment ?last-nginx-deployment?
kubectl rollout history deployment last-nginx-deployment --revision=2(指定那個(gè)版本的鏡像信息)
3.指定回滾到哪個(gè)版本
kubectl rollout undo ?deployment last-nginx-deployment --to-revision=1