可以做私募股权投资的网站,怎么做百度联盟网站,做视频网站需要流媒体吗,软件公司招聘网站一 为什么使用控制器 pod控制器
作用#xff1a;1.pod类型资源删除#xff0c;不会重建 2.控制器可以帮助用户监控#xff0c;并保证节点上运行定义好的pod副本数 3.pod超过或低于用户期望#xff0c;控制器会创建、删除pod副本数量
控制器类型1.pod类型资源删除不会重建 2.控制器可以帮助用户监控并保证节点上运行定义好的pod副本数 3.pod超过或低于用户期望控制器会创建、删除pod副本数量
控制器类型
RS控制器:按照用户期望的副本数量创建pod, 用户写yaml定义RS控制器去定义pod模板pod按照这个模板去运行deployment控制器DaemonSet
二 详解rs控制器原理
RS控制器原理副本数保障、标签选择器
2.1 创建RS控制器
[rootk8s-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: 80kubectl create -f rs-nginx.yml
kubectl -n lxy get rs -owide
kubectl -n lxy get pods -l appnginx -owide 2.2 删除Pod,查看rs如何保障副本数
删掉一个pod,但是会马上创建一个 2.3 pod和rs关系
kubectl -n lxy describe rs nginx-rs 2.4 修改RS控制器
1.对yaml修改副本数修改资源配置kubectl apply -f rs-nginx.yml
2.编辑RS控制器kubectl -n lxy edit rs nginx-rs (有些是无法修改)
三 Deploy控制器与弹性扩缩容
kubectl scale --help
kubectl -n lxy scale --replicasX rs nginx-rs
rootk8s-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
[rootk8s-master ~]# kubectl -n lxy scale --replicas4 rs nginx-rs
replicaset.apps/nginx-rs scaled
[rootk8s-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
[rootk8s-master ~]# kubectl -n lxy scale --replicas2 rs nginx-rs
replicaset.apps/nginx-rs scaled
[rootk8s-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获取当前rs资源的Yaml: kubectl -n lxy get rs nginx-rs -oyaml
四 Deploy与rs原理
Deployments | Kubernetes
kubectl -n kube-system get deploy coredns -o yaml
[rootk8s-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[rootk8s-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 appnginx
[rootk8s-master ~]# kubectl get rs -n lxy
NAME DESIRED CURRENT READY AGE
nginx-deployment-58df99679c 2 2 2 115s
nginx-rs 2 2 2 8h
[rootk8s-master ~]# kubectl get pods -l appnginx -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 8hpod和rs和deployment关系 kubectl describe pods nginx-deployment-AAA-XX kubectl describe rs nginx-deployment-AAA 五 滚动更新详解原理
蓝绿更新起一个新的Pod删除一个旧pod,接替就是滚动更新
六 更新镜像版本其他玩法
1.kubectl edit rs资源 2.kubectl scale --replicasxxx rs rs名 3.edit 编辑deployment资源 4.deployment提供了 修改镜像版本 参数 kubectl set image
七 版本更新与回滚详解
因为rs控制器还在数据还在 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 nginxnginx:1.14.1
#这时候在查看是1.14.1使用命令回归后恢复成1.14.2
kubectl rollout undo deployment nginx-deployment -n lxy
八 详解版本记录号玩法
1.kubectl create -f last-deploy-nginx.yml --record ----创建的时候记录版本号
2.查看deploy版本信息
kubectl rollout history deployment last-nginx-deployment
kubectl rollout status deployment last-nginx-deployment
kubectl rollout history deployment last-nginx-deployment --revision2指定那个版本的镜像信息
3.指定回滚到哪个版本
kubectl rollout undo deployment last-nginx-deployment --to-revision1