欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

AI工程部署(三):K8S【Kubernetes;Docker集群管理工具】【作用:容器管理、服务编排、资源调度、集群管理】

时间:2023-06-28

手动docker run创建容器只是个toy,在企业里,往往会使用k8s平台管理容器;

k8s是一个容器管理、服务编排、资源调度、集群管理的工具,由谷歌开源,在国内已成为主流;

我们开发的服务,最终都将运行在k8s上;

一、K8S集群作用

容器管理:容器的创建、监控、销毁等生命周期管理服务编排:一个复杂的产品往往是由几十个、甚至几百个微服务协同组成,服务之间的集成、交互等;资源调度:一个服务需要多少cpu mem、gpu资源,当前服务应该被调度到哪台机器;集群管理:k8s可以将几十、几百台机器管理起来,屏蔽了机器的概念,可以将集群视为一个巨大的cpu mem gpu资源池 二、K8S集群部署优势

1、故障迁移:当某一个node节点关机或挂掉后,node节点上的服务会自动转移到另一个node节点上,这个过程所有服务不中断。这是docker或普通云主机是不能做到的;2、资源调度:当node节点上的cpu、内存不够用的时候,可以扩充node节点,新建的pod就会被kube-schedule调度到新扩充的node节点上3、资源隔离:创建开发、运维、测试三个命名空间,切换上下文后,开发人员就只能看到开发命名空间的所有pod,看不到运维命名空间的pod,这样就不会造成影响,互不干扰4、快速伸缩容自动负载均衡:资源不够,一行扩容;原生内部负载均衡,多分片不再需要单独配置nginx5、资源池:集群即资源池,主机透明(不需要知道哪台机器)、机器资源共享(之前的服务部署是机器独占) 三、CI/CD & K8S

CI/CD可以通过流水线中的deploy_stage这一个步骤,将镜像更新到k8s集群,触发服务在集群上的部署;

集群的搭建、k8s的维护,是运维工程师的工作

开发同学要做到:

知道最终服务会运行在k8s上;会去k8s平台监控服务、排查log; 四、K8S集群配置文件

一个服务(Docker)对应一个deployment文件,deployment文件主要用来:

声明服务名、分片数、镜像版本、端口;声明调度策略,比如调度到gpu机器;声明环境变量、资源需求;

一般不需要开发同学自己写,开发提需求就行

五、dashboard 1、通过k8s提供的dashboard网站,查看所有服务状况; 2、通过dashboard,查看某个服务的所有pod(容器实例);


访问整个服务时,k8s会自动对所有pod做负载均衡;

3、通过dashboard,exec到单个pod(容器)里面,排查一些问题;


集群下只能这么做,因为当前pod被调度到哪台机器,你并不知道;

六、K8S总结 k8s是一个容器管理、服务编排、资源调度、集群管理的工具,由谷歌开源,在国内已成为主流;我们开发的服务,最终都将运行在k8s上;CI/CD可以通过deploy_stage,将镜像更新到k8s集群,触发部署;关于k8s,开发同学需要做到:知道最终服务会运行在k8s上、会去k8s平台监控服务排查log;演示了deployment的编写以及dashboard上监控服务、排查问题的方法;

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。