kubernetes中文手册
  • 前言
    • 序言
  • 云原生
    • 云原生(Cloud Native)的定义
    • 云原生的设计哲学
    • Kubernetes 的诞生
    • Kubernetes 与云原生应用概览
    • 云原生应用之路 —— 从 Kubernetes 到云原生
    • 定义云原生应用
      • OAM
        • Workload
        • Component
        • Trait
        • Application Scope
        • Application Configuration
      • Crossplane
    • 云原生编程语言
      • 云原生编程语言 Ballerina
      • 云原生编程语言 Pulumi
    • 云原生的未来
  • 快速入门
    • 云原生新手入门指南
    • Play with Kubernetes
    • 快速部署一个云原生本地实验环境
    • 使用 Rancher 在阿里云上部署 Kubenretes 集群
  • 概念与原理
    • Kubernetes 架构
      • 设计理念
      • Etcd 解析
      • 开放接口
        • CRI - Container Runtime Interface(容器运行时接口)
        • CNI - Container Network Interface(容器网络接口)
        • CSI - Container Storage Interface(容器存储接口)
      • 资源对象与基本概念解析
    • Pod 状态与生命周期管理
      • Pod 概览
      • Pod 解析
      • Init 容器
      • Pause 容器
      • Pod 安全策略
      • Pod 的生命周期
      • Pod Hook
      • Pod Preset
      • Pod 中断与 PDB(Pod 中断预算)
    • 集群资源管理
      • Node
      • Namespace
      • Label
      • Annotation
      • Taint 和 Toleration(污点和容忍)
      • 垃圾收集
    • 控制器
      • Deployment
      • StatefulSet
      • DaemonSet
      • ReplicationController 和 ReplicaSet
      • Job
      • CronJob
      • Horizontal Pod Autoscaling
        • 自定义指标 HPA
      • 准入控制器(Admission Controller)
    • 服务发现与路由
      • Service
      • 拓扑感知路由
      • Ingress
        • Traefik Ingress Controller
      • Kubernetes Service API
        • Service API 简介
    • 身份与权限控制
      • ServiceAccount
      • 基于角色的访问控制(RBAC)
      • NetworkPolicy
    • 网络
      • Kubernetes 中的网络解析 —— 以 flannel 为例
      • Kubernetes 中的网络解析 —— 以 calico 为例
      • 具备 API 感知的网络和安全性管理开源软件 Cilium
        • Cilium 架构设计与概念解析
    • 存储
      • Secret
      • ConfigMap
        • ConfigMap 的热更新
      • Volume
      • 持久化卷(Persistent Volume)
      • Storage Class
      • 本地持久化存储
    • 集群扩展
      • 使用自定义资源扩展 API
      • 使用 CRD 扩展 Kubernetes API
      • Aggregated API Server
      • APIService
      • Service Catalog
    • 多集群管理
      • 多集群服务 API(Multi-Cluster Services API)
      • 集群联邦(Cluster Federation)
    • 资源调度
      • 服务质量等级(QoS)
  • 用户指南
    • 用户指南概览
    • 资源对象配置
      • 配置 Pod 的 liveness 和 readiness 探针
      • 配置 Pod 的 Service Account
      • Secret 配置
      • 管理 namespace 中的资源配额
    • 命令使用
      • Docker 用户过渡到 kubectl 命令行指南
      • kubectl 命令概览
      • kubectl 命令技巧大全
      • 使用 etcdctl 访问 Kubernetes 数据
    • 集群安全性管理
      • 管理集群中的 TLS
      • kubelet 的认证授权
      • TLS Bootstrap
      • 创建用户认证授权的 kubeconfig 文件
      • IP 伪装代理
      • 使用 kubeconfig 或 token 进行用户身份认证
      • Kubernetes 中的用户与身份认证授权
      • Kubernetes 集群安全性配置最佳实践
    • 访问 Kubernetes 集群
      • 访问集群
      • 使用 kubeconfig 文件配置跨集群认证
      • 通过端口转发访问集群中的应用程序
      • 使用 service 访问群集中的应用程序
      • 从外部访问 Kubernetes 中的 Pod
      • Cabin - Kubernetes 手机客户端
      • Lens - Kubernetes IDE/桌面客户端
      • Kubernator - 更底层的 Kubernetes UI
    • 在 Kubernetes 中开发部署应用
      • 适用于 Kubernetes 的应用开发部署流程
      • 迁移传统应用到 Kubernetes 中 —— 以 Hadoop YARN 为例
      • 使用 StatefulSet 部署用状态应用
  • 最佳实践
    • 最佳实践概览
    • 在 CentOS 上部署 Kubernetes 集群
      • 创建 TLS 证书和秘钥
      • 创建 kubeconfig 文件
      • 创建高可用 etcd 集群
      • 安装 kubectl 命令行工具
      • 部署 master 节点
      • 安装 flannel 网络插件
      • 部署 node 节点
      • 安装 kubedns 插件
      • 安装 dashboard 插件
      • 安装 heapster 插件
      • 安装 EFK 插件
    • 生产级的 Kubernetes 简化管理工具 kubeadm
      • 使用 kubeadm 在 Ubuntu Server 16.04 上快速构建测试集群
    • 服务发现与负载均衡
      • 安装 Traefik ingress
      • 分布式负载测试
      • 网络和集群性能测试
      • 边缘节点配置
      • 安装 Nginx ingress
      • 安装配置 DNS
        • 安装配置 Kube-dns
        • 安装配置 CoreDNS
    • 运维管理
      • Master 节点高可用
      • 服务滚动升级
      • 应用日志收集
      • 配置最佳实践
      • 集群及应用监控
      • 数据持久化问题
      • 管理容器的计算资源
    • 存储管理
      • GlusterFS
        • 使用 GlusterFS 做持久化存储
        • 使用 Heketi 作为 Kubernetes 的持久存储 GlusterFS 的 external provisioner
        • 在 OpenShift 中使用 GlusterFS 做持久化存储
      • GlusterD-2.0
      • Ceph
        • 用 Helm 托管安装 Ceph 集群并提供后端存储
        • 使用 Ceph 做持久化存储
        • 使用 rbd-provisioner 提供 rbd 持久化存储
      • OpenEBS
        • 使用 OpenEBS 做持久化存储
      • Rook
      • NFS
        • 利用 NFS 动态提供 Kubernetes 后端存储卷
    • 集群与应用监控
      • Heapster
        • 使用 Heapster 获取集群和对象的 metric 数据
      • Prometheus
        • 使用 Prometheus 监控 Kubernetes 集群
        • Prometheus 查询语言 PromQL 使用说明
      • 使用 Vistio 监控 Istio 服务网格中的流量
    • 分布式追踪
      • OpenTracing
    • 服务编排管理
      • 使用 Helm 管理 Kubernetes 应用
      • 构建私有 Chart 仓库
    • 持续集成与发布
      • 使用 Jenkins 进行持续集成与发布
      • 使用 Drone 进行持续集成与发布
    • 更新与升级
      • 手动升级 Kubernetes 集群
      • 升级 dashboard
    • 扩展控制器
      • OpenKruise
        • 原地升级
    • 安全策略
      • 开放策略代理(OPA)
      • 云原生安全
  • 服务网格
    • 服务网格(Service Mesh)
    • 企业级服务网格架构
      • 服务网格基础
      • 服务网格技术对比
      • 服务网格对比 API 网关
      • 采纳和演进
      • 定制和集成
      • 总结
    • Istio
      • 使用 Istio 前需要考虑的问题
      • Istio 中 sidecar 的注入规范及示例
      • 如何参与 Istio 社区及注意事项
      • Istio 免费学习资源汇总
      • Sidecar 的注入与流量劫持
      • Envoy Sidecar 代理的路由转发
      • Istio 如何支持虚拟机
      • Istio 支持虚拟机的历史
    • Envoy
      • Envoy 的架构与基本术语
      • Envoy 作为前端代理
      • Envoy mesh 教程
  • 领域应用
    • 领域应用概览
    • 微服务架构
      • 微服务中的服务发现
      • 使用 Java 构建微服务并发布到 Kubernetes 平台
        • Spring Boot 快速开始指南
    • 大数据
      • Spark 与 Kubernetes
        • Spark standalone on Kubernetes
        • 运行支持 Kubernetes 原生调度的 Spark 程序
    • Serverless 架构
      • 理解 Serverless
      • FaaS(函数即服务)
        • OpenFaaS 快速入门指南
      • Knative
    • 边缘计算
    • 人工智能
    • 可观察性
  • 开发指南
    • 开发指南概览
    • SIG 和工作组
    • 开发环境搭建
      • 本地分布式开发环境搭建(使用 Vagrant 和 Virtualbox)
    • 单元测试和集成测试
    • client-go 示例
      • client-go 中的 informer 源码分析
    • Operator
      • operator-sdk
    • kubebuilder
      • 使用 kubebuilder 创建 operator 示例
    • 高级开发指南
    • 社区贡献
    • Minikube
  • 社区及生态
    • 云原生计算基金会(CNCF)
      • CNCF 章程
      • CNCF 特别兴趣小组(SIG)说明
      • 开源项目加入 CNCF Sandbox 的要求
      • CNCF 中的项目治理
      • CNCF Ambassador
    • 认证及培训
      • 认证 Kubernetes 服务提供商(KCSP)说明
      • 认证 Kubernetes 管理员(CKA)说明
  • 附录
    • 附录说明
    • Kubernetes 中的应用故障排查
    • Kubernetes 相关资讯和情报链接
    • Docker 最佳实践
    • Kubernetes 使用技巧
    • Kubernetes 相关问题记录
    • Kubernetes 及云原生年度总结及展望
      • Kubernetes 与云原生 2017 年年终总结及 2018 年展望
      • Kubernetes 与云原生 2018 年年终总结及 2019 年展望
    • CNCF 年度报告解读
      • CNCF 2018 年年度报告解读
      • CNCF 2020 年年度报告解读
由 GitBook 提供支持
在本页
  • 2017 年时对 2018 年的预测
  • CNCF 的毕业项目
  • Kubernetes 在 2018 年的发展
  • Kubernetes Operator
  • ServiceMesher社区
  • Service Mesh Meetup
  • Serverless
  • 出版物
  • 2019年展望
  1. 附录
  2. Kubernetes 及云原生年度总结及展望

Kubernetes 与云原生 2018 年年终总结及 2019 年展望

上一页Kubernetes 与云原生 2017 年年终总结及 2018 年展望下一页CNCF 年度报告解读

最后更新于3年前

去年我写了 ,按照惯例也应该推出 2018 年的总结和 2019 年的展望了,写这篇文章的时候已经是 2019 年的 1 月末了,如果不写点什么回顾下 2018 年总觉得这一年过的不完整。

本文将回顾 Kubernetes 与云原生在 2018 年的进展,可以说 2018 年是 Kubernetes 大规模落地,Service Mesh 蓄势待发的一年。

2017 年时对 2018 年的预测

首先我先带大家回顾下 2017 年时我对 2018 年的预测。2017 年底我预测 2018 年的 Kubernetes 和云原生将向以下方向发展:

  • 服务网格(Service Mesh),在 Kubernetes 上践行微服务架构进行服务治理所必须的组件;

  • 无服务器架构(Serverless),以 FaaS 为代表的无服务器架构将会流行开来;

  • 加强数据服务承载能力,例如在 Kubernetes 上运行大数据应用;

  • 简化应用部署与运维包括云应用的监控与日志收集分析等;

下面我来分别总结下以上四点预测:

  • 其中服务网格(Service Mesh)是我 2018 年一直在大力主张和推广的,并创立了 ,业界已经对服务网格有了广泛的认知,其在微服务和分布式架构领域将有广阔的前景,2018 年 7 月 31 日 发布 1.0,预示着服务网格即将走向成熟;

  • 无服务器架构的理念提出已久但仍需找到合适的应用场景来大面积铺开,2018 年 Google、Pivotal 等公司新开源的 更加弱化了底层平台的差异,开发者直接定义服务,应用自动打包和部署;

  • 关于 Kubernetes 承载大数据计算,已经有很多公司应用它来运行大数据应用,还有一些创业公司提供基于 Kubernetes 的异构计算平台,在大企业内部也有使用 Kubernetes 来统一大数据、机器学习、人工智能等平台的需求,大数据行业领先的两家公司 Cloudera 与 Hortonworks 的合并势必也会在云原生领域发力;

  • 随着越来越多的公司选择 Kubernetes 作为底层的基础设施平台,Kubernetes 周边的生态越来越完善,围绕发布部署、监控和 APM 相关的 SaaS 类应用层出不穷;

CNCF 的毕业项目

2018 年至今按照时间顺序,CNCF 中毕业的项目有:

  • 2018 年 3 月:Kubernetes 毕业

  • 2018 年 8 月,Prometheus 毕业

  • 2018 年 11 月,Envoy 毕业

  • 2019 年 1 月,CoreDNS 毕业

Kubernetes 在 2018 年的发展

早在 2017 年的北美 KubeCon 上就有一种论调说 Kubernetes 正变得 boring,因为它已经越来越成熟,在未来不会出现大的变动,从以上更新日志中也可以看到,大多是一些功能进入 beta 或者 stable 状态,很少有新的功能出现。

下图是 Google trend 中过去一年来全球搜索 Kubernetes 的趋势图。

从图中可以看出 Kubernetes 在全球搜索趋势在2018年底已经达到了最巅峰,2019年可能会开始走下降趋势。

下图是最近5年来 Kubernetes 关键词的百度指数。

上图来自百度指数,可以大体概括 Kubernetes 关键字在中国的搜索情况,同 Kubernetes 在全球的搜索情况一样,可能已经过了巅峰期。

Kubernetes Operator

ServiceMesher社区

既然 Kubernetes 已经开始变得无聊,2018年落地 Kubernetes 已经不是初创公司的事情了,很多大公司甚至传统企业都开始试水或者大规模落地,在 Kubernetes 进一步成熟之时,以 Kubernetes 为基础向上发展,开辟新的战场就能收获更多的业务场景和需求。

Kubernetes 并不直接对外提供业务能力,而是作为应用运行的底层平台,在应用和平台间还有一个 Gap,这需要中间件的能力来补充。

Service Mesh Meetup

  • 2018 年 5 月,ServiceMesher 社区由蚂蚁金服发起成立。

Serverless

我们再看下 Kubernetes、Service Mesh、Serviceless 三者之间的关系:

  • Kubernetes 负责应用的生命周期管理,最小的治理单元是 Pod;

  • Service Mesh 解决服务间的流量治理,最小的治理单元是 Service(可以类比为 Kubernetes 中 Service 资源);

  • 而 Serviceless 是更高一层的抽象,最小的治理单元是 APP;

出版物

一个繁荣的生态将有大量的开发者支持,有开发者的地方就会有出版物。2018年至本文发稿关于 Kubernetes 和云原生的中文出版物(译作或原著),根据出版时间排序如下:

注:以上仅列举了2018年至本文发稿时已上市发售的书籍,并不代表本人立场推荐以上书籍。

2019年展望

2019年才开始学 Kubernetes 依然不晚,这可能是影响云计算未来10年的技术,甚至有人预测,未来的开发者可能一上手就是在云上开发,从提交代码、测试到发布一气呵成,直接基于 Git 操作即可完成,完全感受不到 Kubernetes 的存在。展望2019年,我在2017年的预测的趋势依然不变,2019年将更加深化。如果以 Kubernetes 的发展阶段类比,就像2017年时的 Kubernetes 一样,在一部分企业中 Service Mesh 已经开始快速落地,而 Knative 更像 2015 年时的 Kubernetes,一起才刚刚开始,毕竟也是 2018 年中才开源。

截至本文发稿,已有 4 个项目毕业,2019 将会有更多的项目走向成熟。CNCF 托管的全部项目状态请见:。

2018 年 3 月 Kubernetes 经过 CNCF 基金会的投票正式毕业,这意味着它拥有足够多的提交者和贡献人员,并被业界广泛的采纳,已经可以依靠社区的维护健康的发展。关于 CNCF 项目的毕业标准的详情请参考 。

以 Kubernetes 为核心来运维上层应用,诞生了一种名为”Kubernetes Native“的新型运维方式,真正践行 DevOps 理念的产物,开发者将于软件的运维逻辑写成代码,利用 Kubernetes 的**控制器模式(Controller Pattern)**和 来扩展 Kubernetes 的 API,各种 Operator 层出不穷, 列举了目前所有的 Operator。例如我们熟悉的 中就有50个 CRD。

CNCF 生态中的诸多应用都已支持 Kubernetes Operator,可以说 Operator 将成为云原生中默认的软件动态运行时管理工具,参考 CoreOS(已被 RedHat 收购,RedHat 已被 IBM 收购) CTO Brandon Philips 的这篇文章 。

下图展示的是 2019 Q1 的软件架构趋势,(图片来自 )我们可以看到 Service Mesh 还处于创新者阶段,如果从软件生命周期的全阶段来看,它还只是刚刚进入很多人的眼帘,对于这张的新兴技术,在蚂蚁金服的支持的下创办了 。

这一年 为大家带来5次 Meetup 共 20 次 Topic 分享:

2018 年 5 月 30 日,。

2018 年 6 月 21 日,。

2018 年 6 月 30 日,。

2018 年 6 月 30 日,举办了第一届 Service Mesh Meetup 杭州站,见 。

2018 年 7 月,ServiceMesher 社区成为 。

2018 年 7 月 29 日,举办了第二届 Service Mesh Meetup 北京站,见。

2018 年 8 月 25 日,举办了第三届 Service Mesh Meetup 深圳站,见 。

2018 年 9 月 19 日,开始了开源电子书 的创作。

2018 年 11 月 13 日,。

2018 年 11 月 25 日,举办了第四届 Service Mesh Meetup 上海站,见。

2019 年 1 月 6 日,举办了第五届 Service Mesh Meetup 广州站,见。

我们再看 CNCF 的 ,其中右下部分有一个单列的 Serverless 单元,详见 。

越向上层就越不关心应用的底层实现,到了 Serverless 开发者只需要关心代码逻辑,其他的一切都是配置,因此 Google 联合 Pivotal 等其他公司于2018年7月创建了 这个基于 Kubernetes 和 Istio 的 Serverless 的开源项目。

2018年3月:

2018年7月:

2018年7月:

2018年8月:

2018年9月:

2018年9月:

2018年10月:

2018年11月:

2018年11月:

2018年12月:

2018年12月:

2018年12月:

2019年1月:

2019年1月:

预告:2019年2月,即将上市。

另外还有很多线上、线下的 Kubernetes 实训课程、电子出版物不胜枚举,例如极客时间出品的。

2018年11月 CNCF 在上海举办了第一届中国 KubeCon + CloudNativeCon,2019年6月大会将升级为 KubeCon + CloudNativeCon + Open Source Summit,将进一步推送中国的开源发展与云原生的应用,。

Kubernetes 与云原生 2017 年年终总结及 2018 年展望
ServiceMesher 社区
Istio
knative
https://www.cncf.io/projects-graduated/
CNCF Graduation Criteria v1.1
CRD
awesome-operators
Istio
Introducing the Operator Framework: Building Apps on Kubernetes
Architecture and Design InfoQ Trends Report - January 2019
ServiceMesher 社区
ServiceMesher 社区
Envoy 最新官方文档中文版发布 —— 由 Service Mesh 爱好者倾情奉献
启用新的社区 logo
开启新域名 servicemesher.com
ServiceMesher 杭州 Meetup 圆满完成
Istio 社区中国合作伙伴
第二届 Service Mesh Meetup 北京站回顾、视频回放和资料下载
Service Mesh Meetup 深圳站回顾、视频回放及 PPT 资料分享
istio-handbook
ServiceMesher 社区成员聚首 KubeCon&CloudNativeCon 上海
第四届 Service Mesh Meetup 上海站活动回顾与资料下载
第五届 Service Mesh Meetup 广州站活动回顾与资料下载
Landscape
https://landscape.cncf.io/
knative
《每天5分钟玩转Kubernetes》,CloudMan 著
《Python 云原生——构建应对海量用户数据的高可扩展 Web 应用》,Manish Sathi著,宋净超 译
《云原生 Java——Spring Boot、Spring Cloud 与 Cloud Foundry 弹性系统设计》,Josh Long & Kenny Bastani著,张若飞 宋净超 译
《Kubernetes 权威指南:企业级容器云实战》,闫健勇 龚正 吴治辉 刘晓红 崔秀龙 等 著
《云原生基础架构:构建和管理现代可扩展基础架构的模式及实践》,Justin Garrision & Kris Nova著,孙杰、肖力 译
《基于Kubernetes的容器云平台实战》,陆平 左奇 付光 张晗 著
《Kubernetes经典实例》,Sébastien Goasguen & Michael Hausenblas 著,马晶慧 译
《持续演进的Cloud Native:云原生架构下微服务最佳实践》,王启军 著
《云原生分布式存储基石:etcd深入解析》,华为容器服务团队 杜军 等著
《Kubernetes即学即用》,Kelsey Hightower & Brendan Burns & Joe Beda 著,韩波 译
《Kubernetes 进阶实战》,马永亮 著
《Service Mesh实战:基于Linkerd和Kubernetes的微服务实践》,杨章显 著
《深入浅出 Istio:Service Mesh 快速入门与实践》,崔秀龙 著
《Kubernetes in Action中文版,Marko Luksa著,七牛容器云团队 译
《未来架构——从服务化到云原生》张亮 吴晟 敖小剑 宋净超 著
深入剖析 Kubernetes
查看大会详情
Kubernetes 搜索趋势(来自 Google trends)
Kubernetes 的百度指数
Istio 中的 CRD
2019 Q1 软件架构趋势 - 来自 InfoQ
ServiceMesher 社区 Logo
ServiceMesher 社区 2018 年活动一览
CNCF Landscape 中的 Serverless 单元