kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。
如果你想重启某个 Pod,但是又不想使用删除的方式,可以使用以下命令:
kubectl rollout restart deployment/<deployment-name>
这个命令会重启指定的 Deployment 中的所有 Pod,而不是删除它们。Kubernetes 会逐个重启每个 Pod,确保在一个 Pod 完全启动之前,它的前一个版本已经被停止了。
如果你只想重启某个 Deployment 中的部分 Pod,可以使用以下命令:
kubectl delete pod <pod-name>
这个命令会删除指定的 Pod,然后 Kubernetes 会重新启动一个新的 Pod 来替代它。如果你的 Pod 是通过 Deployment 管理的,Kubernetes 会自动创建一个新的 Pod 来替代已经被删除的 Pod。
请注意,重启 Pod 可能会导致它中断正在进行的任务,因此请谨慎操作。
有yaml文件的重启方式:
kubectl replace --force -f xxx.yaml
使用 "-o yaml"参数导出Pod模板并重建模板(推荐)
kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -
Kubernetes 1.15开始才有
kubectl rollout restart deployment {pod} -n {namespace}