1、GOP S 全 球 运 维 大 会 2019上 海 站GOP S 全 球 运 维 大 会 2019上 海 站从VM到KubernetesJFrog的K8s落地实践GOP S 全 球 运 维 大 会 2019上 海 站目录背景1从VM到Kubernetes2基于元数据的持续交付3DevSecOps制品安全管理4GOP S 全 球 运 维 大 会 2019上 海 站Kubernetes in Production“By2023,Kuberneteswillbedeployedinmorethan80%ofallon-premisesprivatecloudandcloud-inspiredenvi
2、ronments,upfromlessthan10%today”.GartnerresearchdataGOP S 全 球 运 维 大 会 2019上 海 站Kubernetes Use CasesGOP S 全 球 运 维 大 会 2019上 海 站1.为JFrog产品提供新的交付方式 提供全产品线的Helm Charts交付方式:Helm install stable/Artifactory-ha2.云端服务Kubernetes化 GoCenter:http:/gocenter.io3.产品的CI/CD直接对接到Kubernetes环境 为每个研发、每个分支,按需提供完全独立的测试环境 每
3、周部署100+不同产品线、任意版本组合的测试环境,每次部署超过50种微服务JFrog的Kubernetes实践GOP S 全 球 运 维 大 会 2019上 海 站目录背景1从VM到Kubernetes2基于元数据的持续交付3DevSecOps制品安全管理4GOP S 全 球 运 维 大 会 2019上 海 站Docker是被隔离、资源受限的进程Docker是什么?宿主机NamespacescgroupsUnionFSNamespacescgroupsUnionFSGOP S 全 球 运 维 大 会 2019上 海 站进程 Docker?APPTomcatMySQLAPPTomcatMySQL
4、GOP S 全 球 运 维 大 会 2019上 海 站Docker管理单进程进程 Docker?APPTomcatMySQLAPPTomcatMySQLGOP S 全 球 运 维 大 会 2019上 海 站什么是Pod Kubernetes的原子调度单元Docker PodAPPTomcatMySQL1G1G1G2.5G3G?APPTomcatMySQL1G1G1G2.5G3GPodGOP S 全 球 运 维 大 会 2019上 海 站1.Pod-容器组是一组共享了某些资源的容器 共享同一个Network Namespace 共享同一个Volume2.紧密协作的一组容器 sidecarinit
5、容器 在应用容器启动前运行 准备存储 初始化设置sidecar容器 和应用容器同时运行 维护 日志收集 监测 代理应用 PodAPPTomcatMySQLAPPTomcatPod1MySQLPod2FluentbitcontainerLogsLogCollectorGOP S 全 球 运 维 大 会 2019上 海 站1.资源限制 Pod要有资源限制 Docker本身也要有资源限制2.运行状态 readinessProbe livenessProbe面向Pod的应用改造3.数据管理 日志 持久化数据4.启/停处理 Shutdown必须是受控的 Recovery必须是容易的 遗留数据的处理GOP
6、 S 全 球 运 维 大 会 2019上 海 站面向集群化的应用改造高可用将是新的标准配置1.保证良好的持久性和可用性2.支持同时运行多个应用实例 支持负载均衡 Scale-up、Scale-down必须是顺畅的3.不停机的滚动升级 保证向后兼容4.K8s调整中的0宕机 Cluster Scale-up、Scale-down 计划中的Node维护 非计划的Node宕机GOP S 全 球 运 维 大 会 2019上 海 站目录背景1从VM到Kubernetes2基于元数据的持续交付3DevSecOps制品安全管理4GOP S 全 球 运 维 大 会 2019上 海 站5步实现Kubernetes