K8S核心概念Deployment

控制Pod,使Pod拥有多副本,自愈,扩缩容等能力。

自愈能力

用deployment创建的pod,pod删除后,会自动重新拉起新的pod

实验:

  1. 创建一个deployment,如

    kubectl create deployment mytomcat --image=tomcat:8.5.68
    

    K8S核心概念Deployment_第1张图片
    从截图中可以看出,我们通过deployment创建的pod,删除之后,会重新拉起一个新的pod,这就是服务的自愈能力。

    如果要想真正删除pod,需要删除当前deployment

    kubectl delete deployment mytomcat
    

扩缩容

多副本
kubectl create deployment my-dep --image=nginx --replicas=3

创建一个deployment,使用镜像nginx,一共创建3个pod,即3副本。注意 --replicas特性,要求的最低k8s版本是v1.19,如果低于该版本,就不会有–replicas特性,但是我们可以使用扩容命令:

kubectl scale -n default deployment my-dep --replicas=4

或者,可以通过dashboard页面,将当前的deployment进行扩缩容
K8S核心概念Deployment_第2张图片

通过dashboard创建deployment

K8S核心概念Deployment_第3张图片

故障转移

当有机器宕机的情况下,k8s为了保证应用的副本数。在原来机器上运行的pod,由于不能再提供服务。此时,会在其他机器上创建pod,并启动应用。保证应用的副本数与我们预期的一致。

滚动跟新

kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
kubectl rollout status deployment/my-dep

跟新就是将旧的image替换成新的image,k8s提供的是滚动更新。就是在新的pod启动完成后,会杀手旧的pod。每次都启动一个新pod,杀死老的pod。直到所有pod都更新完成。

版本回退

#历史记录
kubectl rollout history deployment/my-dep


#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2

#回滚(回到上次)
kubectl rollout undo deployment/my-dep

#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2

你可能感兴趣的:(Kubernetes,docker,运维,java)