第1930期:Kubernetes基础介绍也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更 高级的自动化任务。Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明 的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度 机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。 5 www 自动装箱:构建于容器之上,基于资源依赖和其他约束自动完成容器部署。 自我修复:容器故障后自动重启、节点故障后重新调度容器,以及容器自我修复机制。 水平扩展:通过简单明了实现水平扩展,基于CPU等资源负载率的自动水平扩展。 服务发现和负载均衡:实现内部负载均衡可以实现服务访问负载。 自动发布和回滚:可以自动实现版本的发布和回滚。 秘钥和配置管理:对于密码等信息,专门提供了Secert对象为其解耦。 存储编排:支持多种不同类型的存储,包括本地存储、云存储、网络存储等。 Master节点上运行一组关键进程: API Server API服务器(kube-apiserver):提供HTTP Rest接口的关键服务,是k8s集群里所有资源的增删查改等操 作的唯一入口,也是集群控制的入口进程。并提供认证、授权、访问控制、API注册和发现等机制 Controller Manager控制管理器(kube-controller-manager):k8s里所有资源对象的自动化控制中心,可以理解为0 码力 | 49 页 | 4.11 MB | 1 年前3
DaoCloud Enterprise 5.0
产品介绍的 全生命周期管理。 ➢ 应用负载的弹性伸缩,支持应用负载的手动/自动扩缩容,支持横向伸缩、纵向伸缩、 以及定时伸缩,从容应对流量高峰。 ➢ 应用的全生命周期,支持应用查看、更新、删除、回滚、事件查看以及升级等全生命 周期管理。 ➢ 跨集群负载统一管理能力。 策略管理 支持以命名空间或集群粒度制定网络策略、配额策略、资源限制策略、灾备策 略、安全策略。 ➢ 网络策略 运维”的全生命周期管理,能有效帮助企业实现数字 化转型,提升企业的 IT 交付能力和竞争力。 以容器管理为底座,借助全局管理实现层级资源管理,以 CI/CD 流水线和 GitOps 流程增删改查云原生应用,实现渐进式交付。 多云编排 企业从最初简单的只要上云就好,到如今开始选择到底上哪个云,或者上哪些 云,从而构建专属于企业自身的多云环境。 版权 © 2023 DaoCloud ➢ 基于微服务命名空间和分组 (Group) 对配置文件进行隔离。 ➢ 结合 @RefreshScope 注解动态更新配置项。 ➢ 管理配置文件的历史版本,支持版本差异对比并一键回滚到特定版本。 ➢ 支持查询当前配置的监听者以及 MD5 校验值。 ➢ 提供示例代码,便于新手快速使用客户端编程消费该配置,降低新手使用门槛。 微服务网关 微服务网关肩负管理微服务南北流量管控的重要作用,提供0 码力 | 18 页 | 1.32 MB | 1 年前3
Kubernetes开源书 - 周立部署应⽤程序的旧⽅法是使⽤操作系统的软件包管理器在主机上安装应⽤程序。这种⽅式,存在可执⾏⽂件、配置、库 和⽣命周期与操作系统相互纠缠的缺点。⼈们可构建不可变的虚拟机映像,从⽽实现可预测的升级和回滚,但VM是重 量级、不可移植的。 新⽅法是部署容器,容器基于操作系统级别的虚拟化⽽不是硬件虚拟化。这些容器彼此隔离并且与宿主机隔离:它们有 ⾃⼰的⽂件系统,看不到对⽅的进程,并且它们的计算资源 最后,通过在每个容器中使⽤单个应⽤程序的⽅式,管理容器⽆异于管理应⽤程序的部署。 容器好处概要: 灵活的应⽤创建和部署 :与VM映像相⽐,容器镜像的创建更加容易、有效率。 持续开发,集成和部署 :通过快速轻松的回滚(由于镜像的不可变性)提供可靠且频繁的容器镜像构建和部署。 Dev和Ops分离问题 :在构建/发布期间⽽⾮部署期间创建镜像,从⽽将应⽤程序与基础架构分离。 开发、测试和⽣产环境⼀致 :在笔记本电脑运⾏与云中⼀样。 install python36 –y 在ansible-client机器上配置免密登录 ⽣成ssh公钥和私钥 在ansible-cilent机器上执⾏: ~]# ssh-keygen 然后三次回⻋,⽣成ssh公钥和私钥。 建⽴ssh单向通道 在ansible-cilent机器上执⾏: ~]# ssh-copy-id root@172.20.0.88 #将公钥分发给88机器0 码力 | 135 页 | 21.02 MB | 1 年前3
k8s操作手册 2.3#查看ip网卡信息 1: lo:mtu 65536 qdisc noqueue state UNKNOWN # 本地环回口 inet 127.0.0.1/8 scope host lo 2: ens33: mtu 1500 qdisc pfifo_fast 服务名称解析到service-ip,kube-proxy会想办法让访问service-ip的流量转发到真 实pod里面去,如果一个service服务后端对应多个pod,则kube-proxy会使用负 载均衡机制。 ★每创建一个service资源,就会创建一个同名的EndPoints Endpoints:记录了service的targetPort与目标pod的 ip:port映射关系,当目标pod 漂移或重启时,endpoints会自动更新 ReadOnlyMany #可同时被多个node结点只读挂载 persistentVolumeReclaimPolicy: Retain #PV空间被释放时的处理机制,Retain 保持不动,Recycle回收 #,Retain保持不动,Recycle或Delete回收 storageClassName: 0 码力 | 126 页 | 4.33 MB | 1 年前3
QCon北京2017/企业软件互联网应用实践/基于 kubernetes 的企业级容器云Create Service app01 User Dev/Ops 13 2017 Lenovo Internal. All rights reserved. 容器云设计—部署和回滚 • 部署流程 or 回滚流程 console • 配置请求 • 部署请求 builder • 准备构建环境 • 生成Dockerfile • Build镜像 • Push镜像 kubernetes All rights reserved. 容器云设计-- 企业权限设计 • 业务权限/数据权限:允许或拒绝用户进行某个数据的增删改查操作 Service Project Owner Master Developer Guest 增 删 查 改 18 2017 Lenovo Internal. All rights reserved. 让一切自动化--工欲善其事,必先利其器 Lenovo Internal. All rights reserved. 小结 • 背景和挑战 • 企业级容器云设计与思考 – 设计思路 – 多集群支持和整体架构 – 网络方案和路由设计 – 部署、回滚流程 – DevOps支持 – 存储方案 – 权限设计 • 通过Ansible让运维自动化 • 监控与日志 • Showcase,系统流程示例 • 踩过的坑 zhoucq1@lenovo.com0 码力 | 30 页 | 1.80 MB | 1 年前3
Kubernetes 容器编排与应用编排Deployment Deployment ReplicaSet Pod 1. 支持指定副本数 2. 支持 Recreate 和 Rolling Update 3. 可控的滚动更新模式 4. 支持回滚 5. 可通过 HPA 实现自动弹性伸缩 Kubernetes 控制器 StatefulSet StatefulSet Pod 1. 支持指定副本数 2. Pod 具有固定且唯一的标识符 ollers,ConfigMap,Batch … 2. 自动化的运维机制:HPA,“VPA”,Rollback,Rolling Update 3. 极简的部署方式:YAML + Image Kubernetes 的现状 1. 对于大型应用而言,需要组合使用大量的 Kubernetes 资源 2. 缺乏统一的依赖管理机制,需要用户自行解决依赖关系 3. 极简的部署方式也给用户带来了新的负担 Manager - Helm Tiller Helm Tiller 1. 负责将 Chart 部署到指定的集群当中,并管理生成的 Release(应用) 2. 支持对 Release 的 更新,删除,回滚 操作 3. 支持对 Release 的资源进行增量更新 4. Release 的状态管理 5. Kubernetes 下属子项目(https://github.com/kubernetes/helm)0 码力 | 20 页 | 4.22 MB | 1 年前3
Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践加入 K8s 社 区并正式发布; 自此,CRD + controller-runtime 逐渐成为开发 operator 的首选 Operator Pattern 是官方定义的标准扩 展机制,是 K8s Native Application; Operator = CRD + control loop, i.e, Declaretive API + Automation; kubebuilder Cache Informer 机制 Cache 如何获取到本地(内存中) Informer 启动后会通过 reflector 的 list & watch 机制获取某种资源的 全量 objects。list 可以简单理解为一个 HTTP GET 请求,watch 为一 个 HTTP/2 长连接 Cache 如何保持与 API Server 一致性 list & watch 机制中,list 获取 API 通过网络异步(asynchronous)获取增量数据,所以 cache 提供 的是最终一致性(eventual consistency)。 期间遇到网络、API Server 报错等异常时,会有重试机制 Controller-runtime 的 Informer 增加一段逻辑:如果上层 GET 某个 object 没有对应的 informer, controller-runtime 会马上为其增加0 码力 | 21 页 | 3.06 MB | 9 月前3
第29 期| 2023 年9 月- 技术雷达Reserved. 14 7. OIDC for GitHub Actions 试验 推荐实现 CI/CD 的零信任安全的技术之一是通过使用 OpenID Connect(OIDC)等联合身份机制对流水线进行 身份验证,以访问云服务。这一重要的技术仍未被充分利用在 GitHub Actions 中,因此推荐 OIDC for GitHub Actions。通过这种方式,可以避免存储长期 系统 的健康状况与债务,可为维护和增强系统提供结构化的循证战略。 14. 对告警规则的单元测试 试验 可观测性和监控对于软件团队至关重要。鉴于特定事件的不可预测性,创建具有复杂规则的准确告警机制至关 重要。然而,只有当事件真实出现时,这些规则才能得到真正的验证。对告警规则的单元测试让团队通过预先、 主动地测试和完善规则,来更好地定义规则,从而增加对规则的信心。这有助于减少误报,并确保报告真正的 问关键数据和系统,如源代码、凭据和机密数据,去构建和部署软件。这让这些系统对恶意攻击者充满了吸引 力。因此,我们强烈推荐为 CI/CD 流水线和基础设施引入零信任安全机制——尽可能少地信赖它们。这项机制 包含一系列技术:如果可行,使用云供应商提供的联合身份校验机制,如 OIDC,来验证流水线,而不是赋予它 们直接访问机密数据的权限。实行最小权限原则去最小化个人用户和执行器账户的权限,而不是使用具有无限 访问0 码力 | 43 页 | 2.76 MB | 1 年前3
腾讯基于 Kubernetes 的企业级容器云实践-罗韩梅• 平台本身支持热升级; • 组件自身HA机制,如docker; • 多地域多可用区的容灾设计 • 管理机挂掉:对应用无影响 • 计算节点挂掉:跨机迁移 • 健康探针 ① 存活探针 ② 就绪探针 • 负载均衡 • 重启机制 ① 区分异常原因 ② 本地重启/跨机重启 • 黑名单机制 • 集群核心数据的备份和恢复 ① Etcd ② 核心数据库 • 云盘机制保护应用数据 • 举例:1.4升级1.9版本0 码力 | 28 页 | 3.92 MB | 1 年前3
逐灵&木苏-阿里巴巴 K8S 超大规模实践经验Pod main Container logtail sshd monitor 业务 ssh 日志 监控 通过 Dockerfile 打包应用 镜像,一次定义多次运行 通过镜像提供的组装机制 打包应用镜像,包含业务 及运维基础设施进程 更进一步组合多个容器 为一个 Pod,Pod 一次 定义多次运行不可变基础设施 • 应用与运维基础设施容器分离 • 支持各自独立升级 • SidecarSetOpenKruise APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化 ETCD Cache Pod A V1 Pod A V2 Pod A V3 Reflector APIServer Watch Cache List & Informer Store Kubelets Watch (rv=11 node=x) Too old version err rv=3 Bookmark rv=11• List & Get的通讯机制 Cache Read & Index APIServer Client List / Get ETCD rv=nil Page read Filter by condition• APIServer0 码力 | 33 页 | 8.67 MB | 6 月前3
共 28 条
- 1
- 2
- 3













