2017-12-27 12:29:33 +08:00
<!DOCTYPE HTML>
< html lang = "zh-hans" >
< head >
< meta charset = "UTF-8" >
< meta content = "text/html; charset=utf-8" http-equiv = "Content-Type" >
< title > Kubernetes与云原生2017年年终总结及2018年展望 · Kubernetes Handbook - jimmysong.io< / title >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" / >
< meta name = "description" content = "" >
< meta name = "generator" content = "GitBook 3.2.2" >
< meta name = "author" content = "Jimmy Song" >
< link rel = "stylesheet" href = "../gitbook/style.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-splitter/splitter.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-page-toc-button/plugin.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-image-captions/image-captions.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-back-to-top-button/plugin.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-search-plus/search.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-tbfed-pagefooter/footer.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-highlight/website.css" >
< link rel = "stylesheet" href = "../gitbook/gitbook-plugin-fontsettings/website.css" >
< meta name = "HandheldFriendly" content = "true" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1, user-scalable=no" >
< meta name = "apple-mobile-web-app-capable" content = "yes" >
< meta name = "apple-mobile-web-app-status-bar-style" content = "black" >
< link rel = "apple-touch-icon-precomposed" sizes = "152x152" href = "../gitbook/images/apple-touch-icon-precomposed-152.png" >
< link rel = "shortcut icon" href = "../gitbook/images/favicon.ico" type = "image/x-icon" >
< link rel = "prev" href = "summary-and-outlook.html" / >
< link rel = "shortcut icon" href = '../favicon.ico' type = "image/x-icon" >
< link rel = "bookmark" href = '../favicon.ico' type = "image/x-icon" >
< style >
@media only screen and (max-width: 640px) {
.book-header .hidden-mobile {
display: none;
}
}
< / style >
< script >
window["gitbook-plugin-github-buttons"] = {"repo":"rootsongjc/kubernetes-handbook","types":["star"],"size":"small"};
< / script >
< / head >
< body >
< div class = "book" >
< div class = "book-summary" >
< div id = "book-search-input" role = "search" >
< input type = "text" placeholder = "输入并搜索" / >
< / div >
< nav role = "navigation" >
< ul class = "summary" >
< li >
< a href = "https://jimmysong.io" target = "_blank" class = "custom-link" > Jimmy Song< / a >
< / li >
< li class = "divider" > < / li >
< li class = "header" > 前言< / li >
< li class = "chapter " data-level = "1.1" data-path = "../" >
< a href = "../" >
< b > 1.1.< / b >
序言
< / a >
< / li >
< li class = "header" > 云原生< / li >
< li class = "chapter " data-level = "2.1" data-path = "../cloud-native/kubernetes-and-cloud-native-app-overview.html" >
< a href = "../cloud-native/kubernetes-and-cloud-native-app-overview.html" >
< b > 2.1.< / b >
Kubernetes与云原生应用概览
< / a >
< / li >
< li class = "chapter " data-level = "2.2" data-path = "../cloud-native/from-kubernetes-to-cloud-native.html" >
< a href = "../cloud-native/from-kubernetes-to-cloud-native.html" >
< b > 2.2.< / b >
云原生应用之路——从Kubernetes到Cloud Native
< / a >
< / li >
< li class = "header" > 概念与原理< / li >
< li class = "chapter " data-level = "3.1" data-path = "../concepts/" >
< a href = "../concepts/" >
< b > 3.1.< / b >
Kubernetes架构
< / a >
< / li >
< li class = "chapter " data-level = "3.2" data-path = "../concepts/concepts.html" >
< a href = "../concepts/concepts.html" >
< b > 3.2.< / b >
设计理念
< / a >
< / li >
< li class = "chapter " data-level = "3.3" data-path = "../concepts/objects.html" >
< a href = "../concepts/objects.html" >
< b > 3.3.< / b >
资源对象与基本概念解析
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "3.3.1" data-path = "../concepts/pod-overview.html" >
< a href = "../concepts/pod-overview.html" >
< b > 3.3.1.< / b >
Pod
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "3.3.1.1" data-path = "../concepts/pod.html" >
< a href = "../concepts/pod.html" >
< b > 3.3.1.1.< / b >
Pod解析
< / a >
< / li >
< li class = "chapter " data-level = "3.3.1.2" data-path = "../concepts/init-containers.html" >
< a href = "../concepts/init-containers.html" >
< b > 3.3.1.2.< / b >
Init容器
< / a >
< / li >
< li class = "chapter " data-level = "3.3.1.3" data-path = "../concepts/pod-security-policy.html" >
< a href = "../concepts/pod-security-policy.html" >
< b > 3.3.1.3.< / b >
Pod安全策略
< / a >
< / li >
< li class = "chapter " data-level = "3.3.1.4" data-path = "../concepts/pod-lifecycle.html" >
< a href = "../concepts/pod-lifecycle.html" >
< b > 3.3.1.4.< / b >
Pod的生命周期
< / a >
< / li >
< li class = "chapter " data-level = "3.3.1.5" data-path = "../concepts/pod-hook.html" >
< a href = "../concepts/pod-hook.html" >
< b > 3.3.1.5.< / b >
Pod Hook
< / a >
< / li >
< li class = "chapter " data-level = "3.3.1.6" data-path = "../concepts/pod-preset.html" >
< a href = "../concepts/pod-preset.html" >
< b > 3.3.1.6.< / b >
Pod Preset
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "3.3.2" data-path = "../concepts/node.html" >
< a href = "../concepts/node.html" >
< b > 3.3.2.< / b >
Node
< / a >
< / li >
< li class = "chapter " data-level = "3.3.3" data-path = "../concepts/namespace.html" >
< a href = "../concepts/namespace.html" >
< b > 3.3.3.< / b >
Namespace
< / a >
< / li >
< li class = "chapter " data-level = "3.3.4" data-path = "../concepts/service.html" >
< a href = "../concepts/service.html" >
< b > 3.3.4.< / b >
Service
< / a >
< / li >
< li class = "chapter " data-level = "3.3.5" data-path = "../concepts/volume.html" >
< a href = "../concepts/volume.html" >
< b > 3.3.5.< / b >
Volume和Persistent Volume
< / a >
2018-01-08 17:26:29 +08:00
< ul class = "articles" >
< li class = "chapter " data-level = "3.3.5.1" data-path = "../concepts/persistent-volume.html" >
< a href = "../concepts/persistent-volume.html" >
< b > 3.3.5.1.< / b >
Persistent Volume( 持久化卷)
< / a >
< / li >
< / ul >
2017-12-27 12:29:33 +08:00
< / li >
< li class = "chapter " data-level = "3.3.6" data-path = "../concepts/deployment.html" >
< a href = "../concepts/deployment.html" >
< b > 3.3.6.< / b >
Deployment
< / a >
< / li >
< li class = "chapter " data-level = "3.3.7" data-path = "../concepts/secret.html" >
< a href = "../concepts/secret.html" >
< b > 3.3.7.< / b >
Secret
< / a >
< / li >
< li class = "chapter " data-level = "3.3.8" data-path = "../concepts/statefulset.html" >
< a href = "../concepts/statefulset.html" >
< b > 3.3.8.< / b >
StatefulSet
< / a >
< / li >
< li class = "chapter " data-level = "3.3.9" data-path = "../concepts/daemonset.html" >
< a href = "../concepts/daemonset.html" >
< b > 3.3.9.< / b >
DaemonSet
< / a >
< / li >
< li class = "chapter " data-level = "3.3.10" data-path = "../concepts/serviceaccount.html" >
< a href = "../concepts/serviceaccount.html" >
< b > 3.3.10.< / b >
ServiceAccount
< / a >
< / li >
< li class = "chapter " data-level = "3.3.11" data-path = "../concepts/replicaset.html" >
< a href = "../concepts/replicaset.html" >
< b > 3.3.11.< / b >
ReplicationController和ReplicaSet
< / a >
< / li >
< li class = "chapter " data-level = "3.3.12" data-path = "../concepts/job.html" >
< a href = "../concepts/job.html" >
< b > 3.3.12.< / b >
Job
< / a >
< / li >
< li class = "chapter " data-level = "3.3.13" data-path = "../concepts/cronjob.html" >
< a href = "../concepts/cronjob.html" >
< b > 3.3.13.< / b >
CronJob
< / a >
< / li >
< li class = "chapter " data-level = "3.3.14" data-path = "../concepts/ingress.html" >
< a href = "../concepts/ingress.html" >
< b > 3.3.14.< / b >
Ingress
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "3.3.14.1" data-path = "../concepts/traefik-ingress-controller.html" >
< a href = "../concepts/traefik-ingress-controller.html" >
< b > 3.3.14.1.< / b >
Traefik Ingress Controller
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "3.3.15" data-path = "../concepts/configmap.html" >
< a href = "../concepts/configmap.html" >
< b > 3.3.15.< / b >
ConfigMap
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "3.3.15.1" data-path = "../concepts/configmap-hot-update.html" >
< a href = "../concepts/configmap-hot-update.html" >
< b > 3.3.15.1.< / b >
ConfigMap的热更新
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "3.3.16" data-path = "../concepts/horizontal-pod-autoscaling.html" >
< a href = "../concepts/horizontal-pod-autoscaling.html" >
< b > 3.3.16.< / b >
Horizontal Pod Autoscaling
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "3.3.16.1" data-path = "../concepts/custom-metrics-hpa.html" >
< a href = "../concepts/custom-metrics-hpa.html" >
< b > 3.3.16.1.< / b >
自定义指标HPA
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "3.3.17" data-path = "../concepts/label.html" >
< a href = "../concepts/label.html" >
< b > 3.3.17.< / b >
Label
< / a >
< / li >
< li class = "chapter " data-level = "3.3.18" data-path = "../concepts/garbage-collection.html" >
< a href = "../concepts/garbage-collection.html" >
< b > 3.3.18.< / b >
垃圾收集
< / a >
< / li >
< li class = "chapter " data-level = "3.3.19" data-path = "../concepts/network-policy.html" >
< a href = "../concepts/network-policy.html" >
< b > 3.3.19.< / b >
NetworkPolicy
< / a >
< / li >
< li class = "chapter " data-level = "3.3.20" data-path = "../concepts/annotation.html" >
< a href = "../concepts/annotation.html" >
< b > 3.3.20.< / b >
Annotation
< / a >
< / li >
< li class = "chapter " data-level = "3.3.21" data-path = "../concepts/aggregated-api-server.html" >
< a href = "../concepts/aggregated-api-server.html" >
< b > 3.3.21.< / b >
Aggregated API Server
< / a >
< / li >
< li class = "chapter " data-level = "3.3.22" data-path = "../concepts/custom-resource.html" >
< a href = "../concepts/custom-resource.html" >
< b > 3.3.22.< / b >
使用自定义资源扩展API
< / a >
< / li >
< li class = "chapter " data-level = "3.3.23" data-path = "../concepts/apiservice.html" >
< a href = "../concepts/apiservice.html" >
< b > 3.3.23.< / b >
APIService
< / a >
2018-01-10 17:30:31 +08:00
< / li >
< li class = "chapter " data-level = "3.3.24" data-path = "../concepts/taint-and-toleration.html" >
< a href = "../concepts/taint-and-toleration.html" >
< b > 3.3.24.< / b >
Taint和Toleration( 污点和容忍)
< / a >
2017-12-27 12:29:33 +08:00
< / li >
< / ul >
< / li >
< li class = "header" > 用户指南< / li >
< li class = "chapter " data-level = "4.1" data-path = "../guide/" >
< a href = "../guide/" >
< b > 4.1.< / b >
用户指南
< / a >
< / li >
< li class = "chapter " data-level = "4.2" data-path = "../guide/resource-configuration.html" >
< a href = "../guide/resource-configuration.html" >
< b > 4.2.< / b >
资源对象配置
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "4.2.1" data-path = "../guide/configure-liveness-readiness-probes.html" >
< a href = "../guide/configure-liveness-readiness-probes.html" >
< b > 4.2.1.< / b >
配置Pod的liveness和readiness探针
< / a >
< / li >
< li class = "chapter " data-level = "4.2.2" data-path = "../guide/configure-pod-service-account.html" >
< a href = "../guide/configure-pod-service-account.html" >
< b > 4.2.2.< / b >
配置Pod的Service Account
< / a >
< / li >
< li class = "chapter " data-level = "4.2.3" data-path = "../guide/secret-configuration.html" >
< a href = "../guide/secret-configuration.html" >
< b > 4.2.3.< / b >
Secret配置
< / a >
< / li >
< li class = "chapter " data-level = "4.2.4" data-path = "../guide/resource-quota-management.html" >
< a href = "../guide/resource-quota-management.html" >
< b > 4.2.4.< / b >
管理namespace中的资源配额
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "4.3" data-path = "../guide/command-usage.html" >
< a href = "../guide/command-usage.html" >
< b > 4.3.< / b >
命令使用
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "4.3.1" data-path = "../guide/docker-cli-to-kubectl.html" >
< a href = "../guide/docker-cli-to-kubectl.html" >
< b > 4.3.1.< / b >
docker用户过度到kubectl命令行指南
< / a >
< / li >
< li class = "chapter " data-level = "4.3.2" data-path = "../guide/using-kubectl.html" >
< a href = "../guide/using-kubectl.html" >
< b > 4.3.2.< / b >
kubectl命令概览
< / a >
< / li >
< li class = "chapter " data-level = "4.3.3" data-path = "../guide/kubectl-cheatsheet.html" >
< a href = "../guide/kubectl-cheatsheet.html" >
< b > 4.3.3.< / b >
kubectl命令技巧大全
< / a >
< / li >
< li class = "chapter " data-level = "4.3.4" data-path = "../guide/using-etcdctl-to-access-kubernetes-data.html" >
< a href = "../guide/using-etcdctl-to-access-kubernetes-data.html" >
< b > 4.3.4.< / b >
使用etcdctl访问kubernetes数据
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "4.4" data-path = "../guide/cluster-security-management.html" >
< a href = "../guide/cluster-security-management.html" >
< b > 4.4.< / b >
集群安全性管理
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "4.4.1" data-path = "../guide/managing-tls-in-a-cluster.html" >
< a href = "../guide/managing-tls-in-a-cluster.html" >
< b > 4.4.1.< / b >
管理集群中的TLS
< / a >
< / li >
< li class = "chapter " data-level = "4.4.2" data-path = "../guide/kubelet-authentication-authorization.html" >
< a href = "../guide/kubelet-authentication-authorization.html" >
< b > 4.4.2.< / b >
kubelet的认证授权
< / a >
< / li >
< li class = "chapter " data-level = "4.4.3" data-path = "../guide/tls-bootstrapping.html" >
< a href = "../guide/tls-bootstrapping.html" >
< b > 4.4.3.< / b >
TLS bootstrap
< / a >
< / li >
< li class = "chapter " data-level = "4.4.4" data-path = "../guide/kubectl-user-authentication-authorization.html" >
< a href = "../guide/kubectl-user-authentication-authorization.html" >
< b > 4.4.4.< / b >
创建用户认证授权的kubeconfig文件
< / a >
< / li >
< li class = "chapter " data-level = "4.4.5" data-path = "../guide/rbac.html" >
< a href = "../guide/rbac.html" >
< b > 4.4.5.< / b >
RBAC——基于角色的访问控制
< / a >
< / li >
< li class = "chapter " data-level = "4.4.6" data-path = "../guide/ip-masq-agent.html" >
< a href = "../guide/ip-masq-agent.html" >
< b > 4.4.6.< / b >
IP伪装代理
< / a >
< / li >
< li class = "chapter " data-level = "4.4.7" data-path = "../guide/auth-with-kubeconfig-or-token.html" >
< a href = "../guide/auth-with-kubeconfig-or-token.html" >
< b > 4.4.7.< / b >
使用kubeconfig或token进行用户身份认证
< / a >
< / li >
< li class = "chapter " data-level = "4.4.8" data-path = "../guide/authentication.html" >
< a href = "../guide/authentication.html" >
< b > 4.4.8.< / b >
2017-12-30 10:37:40 +08:00
Kubernetes中的用户与身份认证授权
2017-12-27 12:29:33 +08:00
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "4.5" data-path = "../guide/access-kubernetes-cluster.html" >
< a href = "../guide/access-kubernetes-cluster.html" >
< b > 4.5.< / b >
访问Kubernetes集群
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "4.5.1" data-path = "../guide/access-cluster.html" >
< a href = "../guide/access-cluster.html" >
< b > 4.5.1.< / b >
访问集群
< / a >
< / li >
< li class = "chapter " data-level = "4.5.2" data-path = "../guide/authenticate-across-clusters-kubeconfig.html" >
< a href = "../guide/authenticate-across-clusters-kubeconfig.html" >
< b > 4.5.2.< / b >
使用kubeconfig文件配置跨集群认证
< / a >
< / li >
< li class = "chapter " data-level = "4.5.3" data-path = "../guide/connecting-to-applications-port-forward.html" >
< a href = "../guide/connecting-to-applications-port-forward.html" >
< b > 4.5.3.< / b >
通过端口转发访问集群中的应用程序
< / a >
< / li >
< li class = "chapter " data-level = "4.5.4" data-path = "../guide/service-access-application-cluster.html" >
< a href = "../guide/service-access-application-cluster.html" >
< b > 4.5.4.< / b >
使用service访问群集中的应用程序
< / a >
< / li >
< li class = "chapter " data-level = "4.5.5" data-path = "../guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html" >
< a href = "../guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html" >
< b > 4.5.5.< / b >
从外部访问Kubernetes中的Pod
< / a >
< / li >
< li class = "chapter " data-level = "4.5.6" data-path = "../guide/carbin-mobile-dashboard-for-kubernetes.html" >
< a href = "../guide/carbin-mobile-dashboard-for-kubernetes.html" >
< b > 4.5.6.< / b >
Carbin - Kubernetes手机客户端
< / a >
< / li >
< li class = "chapter " data-level = "4.5.7" data-path = "../guide/kubernetes-desktop-client.html" >
< a href = "../guide/kubernetes-desktop-client.html" >
< b > 4.5.7.< / b >
Kubernetic - Kubernetes桌面客户端
< / a >
< / li >
< li class = "chapter " data-level = "4.5.8" data-path = "../guide/kubernator-kubernetes-ui.html" >
< a href = "../guide/kubernator-kubernetes-ui.html" >
< b > 4.5.8.< / b >
Kubernator - 更底层的Kubernetes UI
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "4.6" data-path = "../guide/application-development-deployment-flow.html" >
< a href = "../guide/application-development-deployment-flow.html" >
< b > 4.6.< / b >
2017-12-30 10:37:40 +08:00
在Kubernetes中开发部署应用
2017-12-27 12:29:33 +08:00
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "4.6.1" data-path = "../guide/deploy-applications-in-kubernetes.html" >
< a href = "../guide/deploy-applications-in-kubernetes.html" >
< b > 4.6.1.< / b >
适用于kubernetes的应用开发部署流程
< / a >
< / li >
< li class = "chapter " data-level = "4.6.2" data-path = "../guide/migrating-hadoop-yarn-to-kubernetes.html" >
< a href = "../guide/migrating-hadoop-yarn-to-kubernetes.html" >
< b > 4.6.2.< / b >
2017-12-30 10:37:40 +08:00
迁移传统应用到Kubernetes中——以Hadoop YARN为例
2017-12-27 12:29:33 +08:00
< / a >
< / li >
< li class = "chapter " data-level = "4.6.3" data-path = "../guide/using-statefulset.html" >
< a href = "../guide/using-statefulset.html" >
< b > 4.6.3.< / b >
使用StatefulSet部署用状态应用
< / a >
< / li >
< / ul >
< / li >
< li class = "header" > 最佳实践< / li >
< li class = "chapter " data-level = "5.1" data-path = "../practice/" >
< a href = "../practice/" >
< b > 5.1.< / b >
最佳实践概览
< / a >
< / li >
< li class = "chapter " data-level = "5.2" data-path = "../practice/install-kubernetes-on-centos.html" >
< a href = "../practice/install-kubernetes-on-centos.html" >
< b > 5.2.< / b >
2017-12-30 10:37:40 +08:00
在CentOS上部署Kubernetes集群
2017-12-27 12:29:33 +08:00
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.2.1" data-path = "../practice/create-tls-and-secret-key.html" >
< a href = "../practice/create-tls-and-secret-key.html" >
< b > 5.2.1.< / b >
创建TLS证书和秘钥
< / a >
< / li >
< li class = "chapter " data-level = "5.2.2" data-path = "../practice/create-kubeconfig.html" >
< a href = "../practice/create-kubeconfig.html" >
< b > 5.2.2.< / b >
创建kubeconfig文件
< / a >
< / li >
< li class = "chapter " data-level = "5.2.3" data-path = "../practice/etcd-cluster-installation.html" >
< a href = "../practice/etcd-cluster-installation.html" >
< b > 5.2.3.< / b >
创建高可用etcd集群
< / a >
< / li >
< li class = "chapter " data-level = "5.2.4" data-path = "../practice/kubectl-installation.html" >
< a href = "../practice/kubectl-installation.html" >
< b > 5.2.4.< / b >
安装kubectl命令行工具
< / a >
< / li >
< li class = "chapter " data-level = "5.2.5" data-path = "../practice/master-installation.html" >
< a href = "../practice/master-installation.html" >
< b > 5.2.5.< / b >
部署master节点
< / a >
< / li >
< li class = "chapter " data-level = "5.2.6" data-path = "../practice/flannel-installation.html" >
< a href = "../practice/flannel-installation.html" >
< b > 5.2.6.< / b >
安装flannel网络插件
< / a >
< / li >
< li class = "chapter " data-level = "5.2.7" data-path = "../practice/node-installation.html" >
< a href = "../practice/node-installation.html" >
< b > 5.2.7.< / b >
部署node节点
< / a >
< / li >
< li class = "chapter " data-level = "5.2.8" data-path = "../practice/kubedns-addon-installation.html" >
< a href = "../practice/kubedns-addon-installation.html" >
< b > 5.2.8.< / b >
安装kubedns插件
< / a >
< / li >
< li class = "chapter " data-level = "5.2.9" data-path = "../practice/dashboard-addon-installation.html" >
< a href = "../practice/dashboard-addon-installation.html" >
< b > 5.2.9.< / b >
安装dashboard插件
< / a >
< / li >
< li class = "chapter " data-level = "5.2.10" data-path = "../practice/heapster-addon-installation.html" >
< a href = "../practice/heapster-addon-installation.html" >
< b > 5.2.10.< / b >
安装heapster插件
< / a >
< / li >
< li class = "chapter " data-level = "5.2.11" data-path = "../practice/efk-addon-installation.html" >
< a href = "../practice/efk-addon-installation.html" >
< b > 5.2.11.< / b >
安装EFK插件
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.3" data-path = "../practice/service-discovery-and-loadbalancing.html" >
< a href = "../practice/service-discovery-and-loadbalancing.html" >
< b > 5.3.< / b >
服务发现与负载均衡
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.3.1" data-path = "../practice/traefik-ingress-installation.html" >
< a href = "../practice/traefik-ingress-installation.html" >
< b > 5.3.1.< / b >
安装Traefik ingress
< / a >
< / li >
< li class = "chapter " data-level = "5.3.2" data-path = "../practice/distributed-load-test.html" >
< a href = "../practice/distributed-load-test.html" >
< b > 5.3.2.< / b >
分布式负载测试
< / a >
< / li >
< li class = "chapter " data-level = "5.3.3" data-path = "../practice/network-and-cluster-perfermance-test.html" >
< a href = "../practice/network-and-cluster-perfermance-test.html" >
< b > 5.3.3.< / b >
网络和集群性能测试
< / a >
< / li >
< li class = "chapter " data-level = "5.3.4" data-path = "../practice/edge-node-configuration.html" >
< a href = "../practice/edge-node-configuration.html" >
< b > 5.3.4.< / b >
边缘节点配置
< / a >
< / li >
< li class = "chapter " data-level = "5.3.5" data-path = "../practice/nginx-ingress-installation.html" >
< a href = "../practice/nginx-ingress-installation.html" >
< b > 5.3.5.< / b >
安装Nginx ingress
< / a >
2018-01-03 16:14:36 +08:00
< / li >
< li class = "chapter " data-level = "5.3.6" data-path = "../practice/configuring-dns.html" >
< a href = "../practice/configuring-dns.html" >
< b > 5.3.6.< / b >
2018-01-03 16:26:15 +08:00
配置内置DNS( kube-dns)
2018-01-03 16:14:36 +08:00
< / a >
2017-12-27 12:29:33 +08:00
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.4" data-path = "../practice/operation.html" >
< a href = "../practice/operation.html" >
< b > 5.4.< / b >
运维管理
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.4.1" data-path = "../practice/service-rolling-update.html" >
< a href = "../practice/service-rolling-update.html" >
< b > 5.4.1.< / b >
服务滚动升级
< / a >
< / li >
< li class = "chapter " data-level = "5.4.2" data-path = "../practice/app-log-collection.html" >
< a href = "../practice/app-log-collection.html" >
< b > 5.4.2.< / b >
应用日志收集
< / a >
< / li >
< li class = "chapter " data-level = "5.4.3" data-path = "../practice/configuration-best-practice.html" >
< a href = "../practice/configuration-best-practice.html" >
< b > 5.4.3.< / b >
配置最佳实践
< / a >
< / li >
< li class = "chapter " data-level = "5.4.4" data-path = "../practice/monitor.html" >
< a href = "../practice/monitor.html" >
< b > 5.4.4.< / b >
集群及应用监控
< / a >
< / li >
< li class = "chapter " data-level = "5.4.5" data-path = "../practice/data-persistence-problem.html" >
< a href = "../practice/data-persistence-problem.html" >
< b > 5.4.5.< / b >
数据持久化问题
< / a >
< / li >
< li class = "chapter " data-level = "5.4.6" data-path = "../practice/manage-compute-resources-container.html" >
< a href = "../practice/manage-compute-resources-container.html" >
< b > 5.4.6.< / b >
管理容器的计算资源
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.5" data-path = "../practice/storage.html" >
< a href = "../practice/storage.html" >
< b > 5.5.< / b >
存储管理
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.5.1" data-path = "../practice/glusterfs.html" >
< a href = "../practice/glusterfs.html" >
< b > 5.5.1.< / b >
GlusterFS
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.5.1.1" data-path = "../practice/using-glusterfs-for-persistent-storage.html" >
< a href = "../practice/using-glusterfs-for-persistent-storage.html" >
< b > 5.5.1.1.< / b >
使用GlusterFS做持久化存储
< / a >
< / li >
< li class = "chapter " data-level = "5.5.1.2" data-path = "../practice/storage-for-containers-using-glusterfs-with-openshift.html" >
< a href = "../practice/storage-for-containers-using-glusterfs-with-openshift.html" >
< b > 5.5.1.2.< / b >
在OpenShift中使用GlusterFS做持久化存储
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.5.2" data-path = "../practice/cephfs.html" >
< a href = "../practice/cephfs.html" >
< b > 5.5.2.< / b >
CephFS
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.5.2.1" data-path = "../practice/using-ceph-for-persistent-storage.html" >
< a href = "../practice/using-ceph-for-persistent-storage.html" >
< b > 5.5.2.1.< / b >
使用Ceph做持久化存储
< / a >
2018-01-05 16:34:39 +08:00
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.5.3" data-path = "../practice/openebs.html" >
< a href = "../practice/openebs.html" >
< b > 5.5.3.< / b >
OpenEBS
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.5.3.1" data-path = "../practice/using-openebs-for-persistent-storage.html" >
< a href = "../practice/using-openebs-for-persistent-storage.html" >
< b > 5.5.3.1.< / b >
使用OpenEBS做持久化存储
< / a >
2017-12-27 12:29:33 +08:00
< / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.6" data-path = "../practice/monitoring.html" >
< a href = "../practice/monitoring.html" >
< b > 5.6.< / b >
集群与应用监控
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.6.1" data-path = "../practice/heapster.html" >
< a href = "../practice/heapster.html" >
< b > 5.6.1.< / b >
Heapster
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.6.1.1" data-path = "../practice/using-heapster-to-get-object-metrics.html" >
< a href = "../practice/using-heapster-to-get-object-metrics.html" >
< b > 5.6.1.1.< / b >
使用Heapster获取集群和对象的metric数据
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.6.2" data-path = "../practice/prometheus.html" >
< a href = "../practice/prometheus.html" >
< b > 5.6.2.< / b >
Prometheus
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.6.2.1" data-path = "../practice/using-prometheus-to-monitor-kuberentes-cluster.html" >
< a href = "../practice/using-prometheus-to-monitor-kuberentes-cluster.html" >
< b > 5.6.2.1.< / b >
使用Prometheus监控kubernetes集群
< / a >
< / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.7" data-path = "../practice/services-management-tool.html" >
< a href = "../practice/services-management-tool.html" >
< b > 5.7.< / b >
服务编排管理
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.7.1" data-path = "../practice/helm.html" >
< a href = "../practice/helm.html" >
< b > 5.7.1.< / b >
使用Helm管理kubernetes应用
< / a >
< / li >
< li class = "chapter " data-level = "5.7.2" data-path = "../practice/create-private-charts-repo.html" >
< a href = "../practice/create-private-charts-repo.html" >
< b > 5.7.2.< / b >
构建私有Chart仓库
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.8" data-path = "../practice/ci-cd.html" >
< a href = "../practice/ci-cd.html" >
< b > 5.8.< / b >
持续集成与发布
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.8.1" data-path = "../practice/jenkins-ci-cd.html" >
< a href = "../practice/jenkins-ci-cd.html" >
< b > 5.8.1.< / b >
使用Jenkins进行持续集成与发布
< / a >
< / li >
< li class = "chapter " data-level = "5.8.2" data-path = "../practice/drone-ci-cd.html" >
< a href = "../practice/drone-ci-cd.html" >
< b > 5.8.2.< / b >
使用Drone进行持续集成与发布
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "5.9" data-path = "../practice/update-and-upgrade.html" >
< a href = "../practice/update-and-upgrade.html" >
< b > 5.9.< / b >
更新与升级
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "5.9.1" data-path = "../practice/manually-upgrade.html" >
< a href = "../practice/manually-upgrade.html" >
< b > 5.9.1.< / b >
2017-12-30 10:37:40 +08:00
手动升级Kubernetes集群
2017-12-27 12:29:33 +08:00
< / a >
< / li >
< li class = "chapter " data-level = "5.9.2" data-path = "../practice/dashboard-upgrade.html" >
< a href = "../practice/dashboard-upgrade.html" >
< b > 5.9.2.< / b >
升级dashboard
< / a >
< / li >
< / ul >
< / li >
< li class = "header" > 领域应用< / li >
< li class = "chapter " data-level = "6.1" data-path = "../usecases/" >
< a href = "../usecases/" >
< b > 6.1.< / b >
领域应用概览
< / a >
< / li >
< li class = "chapter " data-level = "6.2" data-path = "../usecases/microservices.html" >
< a href = "../usecases/microservices.html" >
< b > 6.2.< / b >
微服务架构
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.2.1" data-path = "../usecases/service-discovery-in-microservices.html" >
< a href = "../usecases/service-discovery-in-microservices.html" >
< b > 6.2.1.< / b >
微服务中的服务发现
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "6.3" data-path = "../usecases/service-mesh.html" >
< a href = "../usecases/service-mesh.html" >
< b > 6.3.< / b >
Service Mesh 服务网格
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.3.1" data-path = "../usecases/istio.html" >
< a href = "../usecases/istio.html" >
< b > 6.3.1.< / b >
Istio
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.3.1.1" data-path = "../usecases/istio-installation.html" >
< a href = "../usecases/istio-installation.html" >
< b > 6.3.1.1.< / b >
安装并试用Istio service mesh
< / a >
< / li >
< li class = "chapter " data-level = "6.3.1.2" data-path = "../usecases/configuring-request-routing.html" >
< a href = "../usecases/configuring-request-routing.html" >
< b > 6.3.1.2.< / b >
配置请求的路由规则
< / a >
< / li >
< li class = "chapter " data-level = "6.3.1.3" data-path = "../usecases/install-and-expand-istio-mesh.html" >
< a href = "../usecases/install-and-expand-istio-mesh.html" >
< b > 6.3.1.3.< / b >
安装和拓展Istio service mesh
< / a >
< / li >
< li class = "chapter " data-level = "6.3.1.4" data-path = "../usecases/integrating-vms.html" >
< a href = "../usecases/integrating-vms.html" >
< b > 6.3.1.4.< / b >
集成虚拟机
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "6.3.2" data-path = "../usecases/linkerd.html" >
< a href = "../usecases/linkerd.html" >
< b > 6.3.2.< / b >
Linkerd
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.3.2.1" data-path = "../usecases/linkerd-user-guide.html" >
< a href = "../usecases/linkerd-user-guide.html" >
< b > 6.3.2.1.< / b >
Linkerd 使用指南
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "6.3.3" data-path = "../usecases/conduit.html" >
< a href = "../usecases/conduit.html" >
< b > 6.3.3.< / b >
Conduit
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.3.3.1" data-path = "../usecases/conduit-overview.html" >
< a href = "../usecases/conduit-overview.html" >
< b > 6.3.3.1.< / b >
Condiut概览
< / a >
< / li >
< li class = "chapter " data-level = "6.3.3.2" data-path = "../usecases/conduit-installation.html" >
< a href = "../usecases/conduit-installation.html" >
< b > 6.3.3.2.< / b >
安装Conduit
< / a >
< / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "6.4" data-path = "../usecases/big-data.html" >
< a href = "../usecases/big-data.html" >
< b > 6.4.< / b >
大数据
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.4.1" data-path = "../usecases/spark-standalone-on-kubernetes.html" >
< a href = "../usecases/spark-standalone-on-kubernetes.html" >
< b > 6.4.1.< / b >
Spark standalone on Kubernetes
< / a >
< / li >
< li class = "chapter " data-level = "6.4.2" data-path = "../usecases/running-spark-with-kubernetes-native-scheduler.html" >
< a href = "../usecases/running-spark-with-kubernetes-native-scheduler.html" >
< b > 6.4.2.< / b >
2017-12-30 10:37:40 +08:00
运行支持Kubernetes原生调度的Spark程序
2017-12-27 12:29:33 +08:00
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "6.5" data-path = "../usecases/serverless.html" >
< a href = "../usecases/serverless.html" >
< b > 6.5.< / b >
Serverless架构
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.5.1" data-path = "../usecases/understanding-serverless.html" >
< a href = "../usecases/understanding-serverless.html" >
< b > 6.5.1.< / b >
理解Serverless
< / a >
< / li >
< li class = "chapter " data-level = "6.5.2" data-path = "../usecases/faas.html" >
< a href = "../usecases/faas.html" >
< b > 6.5.2.< / b >
FaaS-函数即服务
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "6.5.2.1" data-path = "../usecases/openfaas-quick-start.html" >
< a href = "../usecases/openfaas-quick-start.html" >
< b > 6.5.2.1.< / b >
OpenFaaS快速入门指南
< / a >
< / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "6.6" data-path = "../usecases/edge-computing.html" >
< a href = "../usecases/edge-computing.html" >
< b > 6.6.< / b >
边缘计算
< / a >
< / li >
< li class = "header" > 开发指南< / li >
< li class = "chapter " data-level = "7.1" data-path = "../develop/" >
< a href = "../develop/" >
< b > 7.1.< / b >
开发指南概览
< / a >
< / li >
< li class = "chapter " data-level = "7.2" data-path = "../develop/sigs-and-working-group.html" >
< a href = "../develop/sigs-and-working-group.html" >
< b > 7.2.< / b >
SIG和工作组
< / a >
< / li >
< li class = "chapter " data-level = "7.3" data-path = "../develop/developing-environment.html" >
< a href = "../develop/developing-environment.html" >
< b > 7.3.< / b >
开发环境搭建
< / a >
< / li >
< li class = "chapter " data-level = "7.4" data-path = "../develop/testing.html" >
< a href = "../develop/testing.html" >
< b > 7.4.< / b >
单元测试和集成测试
< / a >
< / li >
< li class = "chapter " data-level = "7.5" data-path = "../develop/client-go-sample.html" >
< a href = "../develop/client-go-sample.html" >
< b > 7.5.< / b >
client-go示例
< / a >
< / li >
2018-01-09 19:14:30 +08:00
< li class = "chapter " data-level = "7.6" data-path = "../develop/operator.html" >
2017-12-27 12:29:33 +08:00
2018-01-09 19:14:30 +08:00
< a href = "../develop/operator.html" >
2017-12-27 12:29:33 +08:00
< b > 7.6.< / b >
2018-01-09 19:14:30 +08:00
Operator
< / a >
< / li >
< li class = "chapter " data-level = "7.7" data-path = "../develop/contribute.html" >
< a href = "../develop/contribute.html" >
< b > 7.7.< / b >
2017-12-27 12:29:33 +08:00
社区贡献
< / a >
< / li >
2018-01-09 19:14:30 +08:00
< li class = "chapter " data-level = "7.8" data-path = "../develop/minikube.html" >
2017-12-27 12:29:33 +08:00
< a href = "../develop/minikube.html" >
2018-01-09 19:14:30 +08:00
< b > 7.8.< / b >
2017-12-27 12:29:33 +08:00
Minikube
< / a >
< / li >
< li class = "header" > 附录< / li >
< li class = "chapter " data-level = "8.1" data-path = "./" >
< a href = "./" >
< b > 8.1.< / b >
附录说明
< / a >
< / li >
< li class = "chapter " data-level = "8.2" data-path = "debug-kubernetes-services.html" >
< a href = "debug-kubernetes-services.html" >
< b > 8.2.< / b >
Kubernetes中的应用故障排查
< / a >
< / li >
< li class = "chapter " data-level = "8.3" data-path = "material-share.html" >
< a href = "material-share.html" >
< b > 8.3.< / b >
Kubernetes相关资讯和情报链接
< / a >
< / li >
< li class = "chapter " data-level = "8.4" data-path = "docker-best-practice.html" >
< a href = "docker-best-practice.html" >
< b > 8.4.< / b >
Docker最佳实践
< / a >
< / li >
< li class = "chapter " data-level = "8.5" data-path = "tricks.html" >
< a href = "tricks.html" >
< b > 8.5.< / b >
使用技巧
< / a >
< / li >
< li class = "chapter " data-level = "8.6" data-path = "issues.html" >
< a href = "issues.html" >
< b > 8.6.< / b >
问题记录
< / a >
< / li >
< li class = "chapter " data-level = "8.7" data-path = "kubernetes-changelog.html" >
< a href = "kubernetes-changelog.html" >
< b > 8.7.< / b >
2017-12-30 10:37:40 +08:00
Kubernetes版本更新日志
2017-12-27 12:29:33 +08:00
< / a >
< ul class = "articles" >
< li class = "chapter " data-level = "8.7.1" data-path = "kubernetes-1.7-changelog.html" >
< a href = "kubernetes-1.7-changelog.html" >
< b > 8.7.1.< / b >
Kubernetes1.7更新日志
< / a >
< / li >
< li class = "chapter " data-level = "8.7.2" data-path = "kubernetes-1.8-changelog.html" >
< a href = "kubernetes-1.8-changelog.html" >
< b > 8.7.2.< / b >
Kubernetes1.8更新日志
< / a >
< / li >
< li class = "chapter " data-level = "8.7.3" data-path = "kubernetes-1.9-changelog.html" >
< a href = "kubernetes-1.9-changelog.html" >
< b > 8.7.3.< / b >
Kubernetes1.9更新日志
< / a >
< / li >
< / ul >
< / li >
< li class = "chapter " data-level = "8.8" data-path = "summary-and-outlook.html" >
< a href = "summary-and-outlook.html" >
< b > 8.8.< / b >
Kubernetes及云原生年度总结及展望
< / a >
< ul class = "articles" >
< li class = "chapter active" data-level = "8.8.1" data-path = "kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.html" >
< a href = "kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.html" >
< b > 8.8.1.< / b >
Kubernetes与云原生2017年年终总结及2018年展望
< / a >
< / li >
< / ul >
< / li >
< li class = "divider" > < / li >
< li >
< a href = "https://www.gitbook.com" target = "blank" class = "gitbook-link" >
本书使用 GitBook 发布
< / a >
< / li >
< / ul >
< / nav >
< / div >
< div class = "book-body" >
< div class = "body-inner" >
< div class = "book-header" role = "navigation" >
<!-- Title -->
< h1 >
< i class = "fa fa-circle-o-notch fa-spin" > < / i >
< a href = ".." > Kubernetes与云原生2017年年终总结及2018年展望< / a >
< / h1 >
< / div >
< div class = "page-wrapper" tabindex = "-1" role = "main" >
< div class = "page-inner" >
< div class = "search-plus" id = "book-search-results" >
< div class = "search-noresults" >
< section class = "normal markdown-section" >
< h1 id = "kubernetes与云原生2017年年终总结及2018年展望" > Kubernetes与 云 原 生 2017年 年 终 总 结 及 2018年 展 望 < / h1 >
< p > 本 文 主 要 关 于 Kubernetes及 云 原 生 生 态 圈 在 2017年 取 得 的 进 展 , 及 对 2018年 的 展 望 。 < / p >
< p > 云 计 算 技 术 发 展 至 今 已 经 10多 个 年 头 了 , 从 最 开 始 的 硬 件 虚 拟 化 、 IaaS、 OpenStack、 PaaS、 容 器 设 置 到 Serverless发 展 至 今 , 已 经 越 来 约 接 近 应 用 逻 辑 , 容 器 实 现 了 应 用 的 分 装 , 方 便 了 应 用 在 不 同 环 境 间 的 迁 移 , 轻 量 级 的 特 性 又 使 它 能 够 消 耗 更 少 的 资 源 而 带 来 更 多 的 便 利 , 但 是 独 木 难 支 , 容 器 如 果 在 单 节 点 上 运 行 并 不 能 发 挥 它 的 最 大 效 益 , 容 器 编 排 领 域 在 2016年 就 成 为 了 兵 家 必 争 之 地 。 在 新 的 一 年 即 将 到 来 时 , 本 文 将 带 您 一 起 梳 理 2017年 Kubernetes及 云 原 生 的 发 展 , 并 对 其 在 2018年 的 趋 势 作 出 预 测 。 < / p >
< h2 id = "kubernetes" > Kubernetes< / h2 >
< p > 谈 到 < a href = "https://kubernetes.io" target = "_blank" > Kuberentes< / a > 就 不 得 不 谈 到 容 器 , 容 器 从 几 年 前 的 大 热 到 现 在 的 归 于 平 淡 , 之 前 大 家 说 容 器 通 常 是 指 Docker容 器 , 甚 至 很 多 人 就 将 容 器 等 同 于 Docker, 还 有 很 多 人 像 操 作 虚 拟 机 一 样 得 使 用 容 器 。 < / p >
< p > Kubernetes是 谷 歌 根 据 其 内 部 使 用 的 Borg改 造 成 一 个 通 用 的 容 器 编 排 调 度 器 , 于 2014年 将 其 发 布 到 开 源 社 区 , 并 于 2015年 将 其 捐 赠 给 Linux基 金 会 的 下 属 的 < a href = "https://cncf.io" target = "_blank" > 云 原 生 计 算 基 金 会 ( CNCF) < / a > , 也 是 GIFEE( Google Infrastructure For Everyone Else) 中 的 一 员 , 其 他 还 包 括 HDFS、 Hbase、 Zookeeper等 , 见 < a href = "https://github.com/GIFEE/GIFEE" target = "_blank" > https://github.com/GIFEE/GIFEE< / a > , 下 面 就 让 我 们 来 回 顾 一 下 Kubernetes的 技 术 发 展 史 。 < / p >
< h3 id = "kubernetes发展历史" > Kubernetes发 展 历 史 < / h3 >
< p > 相 信 凡 是 关 注 容 器 生 态 圈 的 人 都 不 会 否 认 , Kubernetes已 经 成 为 容 器 编 排 调 度 的 实 际 标 准 , 不 论 Docker官 方 还 是 Mesos都 已 经 支 持 Kubernetes, Docker公 司 在 今 年 10月 16日 至 19日 举 办 的 DockerCon EU 2017大 会 上 宣 布 支 持 Kubernetes调 度 , 就 在 这 不 久 前 Mesos的 商 业 化 公 司 Mesosphere的 CTO Tobi Knaup也 在 官 方 博 客 中 宣 布 < a href = "kubectl%20get%20--raw=apis/%7Cpython%20-m%20json.tool" > Kubernetes on DC/OS< / a > 。 而 回 想 下 2016年 时 , 我 们 还 在 为 Swarm、 Mesos、 Kubernetes谁 能 够 在 容 器 编 排 调 度 大 战 中 胜 出 而 猜 测 时 , 而 经 过 不 到 一 年 的 发 展 , Kubernetes就 以 超 过 70%的 市 场 占 有 率 ( 据 < a href = "https://www.thenewstack.io" target = "_blank" > TheNewStack< / a > 的 调 研 报 告 ) 将 另 外 两 者 遥 遥 的 甩 在 了 身 后 , 其 已 经 在 大 量 的 企 业 中 落 地 , 还 有 一 些 重 量 级 的 客 户 也 宣 布 将 服 务 迁 移 到 Kubernetes上 , 比 如 GitHub( 见 < a href = "https://githubengineering.com/kubernetes-at-github/" target = "_blank" > Kubernetes at GitHub< / a > ) , 还 有 eBay、 彭 博 社 等 。 < / p >
< p > Kubernetes自 2014年 由 Google开 源 以 来 , 至 今 已 经 发 展 到 了 1.9版 本 , 下 面 是 Kubernetes的 版 本 发 布 路 线 图 : < / p >
< ul >
< li > 2014年 10月 由 Google正 式 开 源 。 < / li >
< li > 2015年 7月 22日 发 布 1.0版 本 , 在 OSCON( 开 源 大 会 ) 上 发 布 了 1.0版 本 。 < / li >
< li > 2015年 11月 16日 发 布 1.1版 本 , 性 能 提 升 , 改 进 了 工 具 并 创 建 了 日 益 强 大 的 社 区 。 < / li >
< li > 2016年 4月 16日 发 布 1.2版 本 , 更 多 的 性 能 升 级 加 上 简 化 应 用 程 序 部 署 和 管 理 。 < / li >
< li > 2016年 7月 22日 发 布 1.3版 本 , 对 接 了 云 原 生 和 企 业 级 工 作 负 载 。 < / li >
< li > 2016年 9月 26日 发 布 1.4版 本 , 该 版 本 起 Kubernetes开 始 支 持 不 同 的 运 行 环 境 , 并 使 部 署 变 得 更 容 易 。 < / li >
< li > 2016年 12月 13日 发 布 1.5版 本 , 该 版 本 开 始 支 持 生 产 级 别 工 作 负 载 。 < / li >
< li > 2017年 3月 28日 发 布 1.6版 本 , 该 版 本 支 持 多 租 户 和 在 集 群 中 自 动 化 部 署 不 同 的 负 载 。 < / li >
< li > 2017年 6月 29日 发 布 1.7版 本 , 该 版 本 的 kubernetes在 安 全 性 、 存 储 和 可 扩 展 性 方 面 有 了 很 大 的 提 升 。 < / li >
< li > 2017年 9月 28日 发 布 1.8版 本 , 该 版 本 中 包 括 了 一 些 功 能 改 进 和 增 强 , 并 增 加 了 项 目 的 成 熟 度 , 将 强 了 kubernetes的 治 理 模 式 , 这 些 都 将 有 利 于 kubernetes项 目 的 持 续 发 展 。 < / li >
< li > 2017年 12月 15日 发 布 1.9版 本 , 该 版 本 最 大 的 改 进 是 Apps Workloads API成 为 稳 定 版 本 , 这 消 除 了 很 多 潜 在 用 户 对 于 该 功 能 稳 定 性 的 担 忧 。 还 有 一 个 重 大 更 新 , 就 是 测 试 支 持 了 Windows了 , 这 打 开 了 在 kubernetes中 运 行 Windows工 作 负 载 的 大 门 。 < / li >
< / ul >
< p > 从 上 面 的 时 间 线 中 我 们 可 以 看 到 , Kubernetes的 产 品 迭 代 周 期 越 来 越 快 , 从 2014年 开 源 , 2015年 发 布 了 两 个 版 本 , 2016年 发 布 了 三 个 版 本 , 而 今 年 一 年 内 就 发 布 了 4个 大 版 本 , Kubernetes已 经 变 了 的 越 来 越 稳 定 , 越 来 越 易 用 。 < / p >
< p > Kubernetes的 架 构 做 的 足 够 开 放 , 通 过 系 列 的 接 口 , 如 CRI( Container Runtime Interface) 作 为 Kubelet与 容 器 之 间 的 通 信 接 口 、 CNI( Container Networking Interface)来 管 理 网 络 、 而 持 久 化 存 储 通 过 各 种 Volume Plugin来 实 现 , 同 时 Kubernetes的 API本 身 也 可 以 通 过 CRD( Custom Resource Define) 来 扩 展 , 还 可 以 自 己 编 写 < a href = "https://coreos.com/operators/" target = "_blank" > Operator< / a > 和 < a href = "https://github.com/kubernetes-incubator/service-catalog" target = "_blank" > Service Catalog< / a > 来 基 于 Kubernetes实 现 更 高 级 和 复 杂 的 功 能 。 < / p >
< h2 id = "cloud-native" > Cloud Native< / h2 >
< p > 在 Kubernetes出 现 之 前 , 就 已 经 有 人 提 出 了 云 原 生 的 概 念 , 如 2010年 Paul Fremantle就 在 他 的 博 客 中 提 出 了 云 原 生 的 核 心 理 念 , 但 是 还 没 有 切 实 的 技 术 解 决 方 案 。 而 那 时 候 PaaS才 刚 刚 出 现 , PaaS平 台 提 供 商 Heroku提 出 了 < a href = "http://12factor.net" target = "_blank" > 12因 素 应 用 < / a > 的 理 念 , 为 构 建 SaaS应 用 提 供 了 方 法 论 , 该 理 念 在 云 原 生 时 代 依 然 适 用 。 < / p >
< p > 现 如 今 云 已 经 可 以 为 我 们 提 供 稳 定 的 可 以 唾 手 可 得 的 基 础 设 施 , 但 是 业 务 上 云 成 了 一 个 难 题 , Kubernetes的 出 现 与 其 说 是 从 最 初 的 容 器 编 排 解 决 方 案 , 倒 不 如 说 是 为 了 解 决 应 用 上 云 ( 即 云 原 生 应 用 ) 这 个 难 题 。 < a href = "https://cncf.io" target = "_blank" > CNCF< / a > 中 的 托 管 的 一 系 列 项 目 即 致 力 于 云 原 生 应 用 整 个 生 命 周 期 的 管 理 , 从 部 署 平 台 、 日 志 收 集 、 Service Mesh( 服 务 网 格 ) 、 服 务 发 现 、 分 布 式 追 踪 、 监 控 以 及 安 全 等 各 个 领 域 通 过 开 源 的 软 件 为 我 们 提 供 一 揽 子 解 决 方 案 。 < / p >
< p > 国 外 已 经 有 众 多 的 Kubernetes和 Cloud Native meetup定 期 举 办 , 在 中 国 今 年 可 以 说 是 小 荷 才 露 尖 尖 角 。 < / p >
< ul >
< li > 2017年 6月 19日 -20日 , 北 京 , < a href = "https://www.bagevent.com/event/561769" target = "_blank" > L3大 会 < / a > ( LinuxCon+ContainerCon+CloudOpen China) 。 CNCF( Cloud Native Computing Foundation) 作 为 云 原 生 应 用 的 联 合 推 广 团 体 , 也 是 由 Google一 手 培 植 起 来 的 强 大 “ 市 场 媒 体 ” ( Kubernetes是 第 一 个 入 选 该 基 金 会 的 项 目 ) , 第 一 次 进 入 中 国 , 华 为 、 Google、 Rancher、 红 帽 等 公 司 分 别 做 了 关 于 Kubernetes及 Cloud Native的 演 讲 。 < / li >
< li > 2017年 7月 25日 , 北 京 、 上 海 , < a href = "http://www.k8smeetup.com" target = "_blank" > k8smeetup< / a > , Kubernetes二 周 年 北 京 -上 海 Meetup双 城 庆 生 。 < / li >
< li > 2017年 9月 12日 , 北 京 , < a href = "https://www.talkingdata.com/activity/T11-2017/index.html" target = "_blank" > T11大 会 < / a > , 前 Pivotal技 术 专 家 , 现 CapitalOne高 级 专 家 Kevin Hoffman做 了 < a href = "https://jimmysong.io/posts/high-level-cloud-native-from-kevin-hoffman/" target = "_blank" > High Level Cloud Native Concepts< / a > 的 演 讲 。 < / li >
< li > 2017年 10月 15日 , 杭 州 , < a href = "https://www.bagevent.com/event/827437" target = "_blank" > KEUC 2017- Kubernetes 中 国 用 户 大 会 < / a > 。 由 才 云 科 技 ( Caicloud) 、 美 国 The Linux Foundation 基 金 会 旗 下 Cloud Native Computing Foundation (CNCF)、 「 K8sMeetup 中 国 社 区 」 联 合 主 办 的 聚 焦 Kubernetes中 国 行 业 应 用 与 技 术 落 地 的 盛 会 。 < / li >
< li > 2017年 12月 13日 -15日 , 杭 州 , < a href = "https://www.huodongjia.com/event-5854212.html" target = "_blank" > 云 原 生 技 术 大 会 — — CNTC< / a > 。 这 次 会 议 由 谐 云 科 技 与 网 易 云 共 同 主 办 , 主 要 探 讨 云 原 生 技 术 与 应 用 , 同 时 还 进 行 了 云 原 生 集 训 。 < / li >
< / ul >
< p > 另 外 还 有 由 才 云 科 技 分 别 在 北 京 、 上 海 、 深 圳 、 青 岛 等 地 举 办 了 多 场 k8smeetup。 < / p >
< h3 id = "容器是云原生的基石" > 容 器 是 云 原 生 的 基 石 < / h3 >
< p > 容 器 最 初 是 通 过 开 发 者 工 具 而 流 行 , 可 以 使 用 它 来 做 隔 离 的 开 发 测 试 环 境 和 持 续 集 成 环 境 , 这 些 都 是 因 为 容 器 轻 量 级 , 易 于 配 置 和 使 用 带 来 的 优 势 , docker和 docker-compose这 样 的 工 具 极 大 的 方 便 的 了 应 用 开 发 环 境 的 搭 建 , 同 时 基 于 容 器 的 CI/CD工 具 如 雨 后 春 笋 般 出 现 。 < / p >
< p > 隔 离 的 环 境 、 良 好 的 可 移 植 性 、 模 块 化 的 组 件 、 易 于 扩 展 和 轻 量 级 的 特 性 , 使 得 容 器 成 为 云 原 生 的 基 石 。 但 是 容 器 不 光 是 docker一 种 , 还 有 < a href = "http://cri-o.io/" target = "_blank" > cri-o< / a > 、 < a href = "https://github.com/rkt/rkt" target = "_blank" > rkt< / a > 等 支 持 OCI标 准 的 容 器 , 以 及 OpenStack基 金 会 推 出 的 兼 容 容 器 标 准 的 号 称 是 轻 量 级 虚 拟 机 的 < a href = "https://katacontainers.io/" target = "_blank" > Kata Containers< / a > , Kubernetes并 不 绑 定 到 某 一 容 器 引 擎 , 而 是 支 持 所 有 满 足 OCI运 行 时 标 准 的 容 器 。 < / p >
< h3 id = "下一代云计算标准" > 下 一 代 云 计 算 标 准 < / h3 >
2017-12-30 10:37:40 +08:00
< p > Google通 过 将 云 应 用 进 行 抽 象 简 化 出 的 Kubernetes中 的 各 种 概 念 对 象 , 如 Pod、 Deployment、 Job、 StatefulSet等 , 形 成 了 Cloud Native应 用 的 通 用 的 可 移 植 的 模 型 , Kubernetes作 为 云 应 用 的 部 署 标 准 , 直 接 面 向 业 务 应 用 , 将 大 大 提 高 云 应 用 的 可 移 植 性 , 解 决 云 厂 商 锁 定 的 问 题 , 让 云 应 用 可 以 在 跨 云 之 间 无 缝 迁 移 , 甚 至 用 来 管 理 混 合 云 , 成 为 企 业 IT云 平 台 的 新 标 准 。 < / p >
2017-12-27 12:29:33 +08:00
< h2 id = "现状及影响" > 现 状 及 影 响 < / h2 >
< p > Kubernetes既 然 是 下 一 代 云 计 算 的 标 准 , 那 么 它 当 前 的 现 状 如 何 , 距 离 全 面 落 地 还 有 存 在 什 么 问 题 ? < / p >
< h3 id = "当前存在的问题" > 当 前 存 在 的 问 题 < / h3 >
< p > 如 果 Kubernetes被 企 业 大 量 采 用 , 将 会 是 对 企 业 IT价 值 的 重 塑 , IT将 是 影 响 业 务 速 度 和 健 壮 性 的 中 流 砥 柱 , 但 是 对 于 Kubernetes真 正 落 地 还 存 在 诸 多 问 题 : < / p >
< ul >
< li > 部 署 和 运 维 起 来 复 杂 , 需 要 有 经 过 专 业 的 培 训 才 能 掌 握 ; < / li >
< li > 企 业 的 组 织 架 构 需 要 面 向 DevOps转 型 , 很 多 问 题 不 是 技 术 上 的 , 而 是 管 理 和 心 态 上 的 ; < / li >
< li > 对 于 服 务 级 别 尤 其 是 微 服 务 的 治 理 不 足 , 暂 没 有 一 套 切 实 可 行 可 落 地 的 完 整 微 服 务 治 理 方 案 ; < / li >
< li > 对 于 上 层 应 用 的 支 持 不 够 完 善 , 需 要 编 写 配 置 大 量 的 YAML文 件 , 难 于 管 理 ; < / li >
< li > 当 前 很 多 传 统 应 用 可 能 不 适 合 迁 移 到 Kuberentes, 或 者 是 成 本 太 高 , 因 此 可 以 落 地 的 项 目 不 多 影 响 推 广 ; < / li >
< / ul >
< p > 以 上 这 些 问 题 是 企 业 真 正 落 地 Kubernetes时 将 会 遇 到 的 比 较 棘 手 的 问 题 , 针 对 这 些 问 题 , Kubernetes社 区 早 就 心 领 神 会 有 多 个 < a href = "https://github.com/kubernetes/kubernetes/wiki/Special-Interest-Groups-(SIGs" target = "_blank" > SIG< / a > )( Special Interest Group) 专 门 负 责 不 同 领 域 的 问 题 , 而 初 创 公 司 和 云 厂 商 们 也 在 虎 视 眈 眈 觊 觎 这 份 大 蛋 糕 。 < / p >
< h3 id = "日益强大的社区" > 日 益 强 大 的 社 区 < / h3 >
< p > Kubernetes已 成 为 GitHub上 参 与 和 讨 论 人 数 最 多 的 开 源 项 目 , 在 其 官 方 Slack上 有 超 过 两 万 多 名 注 册 用 户 ( 其 中 包 括 中 文 用 户 频 道 < strong > cn-users< / strong > ) , 而 整 个 Kubernetes中 文 用 户 群 可 达 数 千 名 之 众 。 < / p >
< p > 目 前 关 于 Kubernetes和 云 原 生 图 书 也 已 经 琳 琳 总 总 , 让 人 眼 花 缭 乱 。 < / p >
< p > 英 文 版 的 讲 解 Kubernetes的 书 籍 有 : The Kubernetes Book、 Kubernetes in Action、 Kubernetes Microservices with Docker, 关 于 云 原 生 架 构 的 Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment等 已 发 行 和 2018年 即 将 发 行 的 有 十 几 本 之 多 , 同 时 还 有 关 于 云 原 生 开 发 的 书 籍 也 鳞 次 栉 比 , 如 < a href = "https://jimmysong.io/cloud-native-go" target = "_blank" > Cloud Native Go< / a > ( 这 本 书 已 经 被 翻 译 成 中 文 , 由 电 子 工 业 出 版 社 引 进 出 版 ) 、 < a href = "https://jimmysong.io/cloud-native-python" target = "_blank" > Cloud Native Python< / a > ( 已 由 电 子 工 业 出 版 社 引 进 , 预 计 2018年 推 出 中 文 版 ) , Cloud Native Java等 。 < / p >
< p > 关 于 Kuberentes和 云 原 生 的 中 文 版 的 书 籍 有 : 《 Kubernetes权 威 指 南 :从 Docker到 Kubernetes实 践 全 接 触 》 , 《 Java云 原 生 》 ( 预 计 2018年 出 版 ) , 还 有 一 系 列 开 源 的 电 子 书 和 教 程 , 比 如 我 写 的 < a href = "https://jimmysong.io/kubernetes-handbook" target = "_blank" > kubernetes-handbook< / a > , 同 时 Kubernetes官 方 官 网 文 档 也 即 将 推 出 完 整 的 汉 化 版 本 , 该 项 目 目 前 还 在 进 行 中 , 见 < a href = "https://github.com/kubernetes/kubernetes-docs-cn" target = "_blank" > kubernetes-docs-cn< / a > 。 < / p >
< p > 另 外 , 除 了 图 书 和 官 方 Slack外 , 在 中 国 还 有 很 多 厂 商 、 社 区 、 爱 好 者 组 织 的 meetup、 微 信 群 推 广 Kubernetes, 同 时 吸 引 了 大 量 的 用 户 关 注 和 使 用 Kubernetes。 < / p >
< h3 id = "创业公司与厂商支持" > 创 业 公 司 与 厂 商 支 持 < / h3 >
< p > 国 外 的 Google的 GKE、 微 软 的 Azure ACS、 AWS的 < a href = "https://aws.amazon.com/fargate/" target = "_blank" > Fargate< / a > 和 2018年 即 将 推 出 的 EKS、 Rancher联 合 Ubuntu推 出 的 RKE, 国 内 的 华 为 云 、 腾 讯 云 、 阿 里 云 等 都 已 推 出 了 公 有 云 上 的 Kuberentes服 务 , Kubernetes已 经 成 为 公 有 云 的 容 器 部 署 的 标 配 , 私 有 云 领 域 也 有 众 多 厂 商 在 做 基 于 Kubernetes的 PaaS平 台 。 随 着 企 业 落 地 Kubernetes的 日 益 增 长 , 相 关 的 人 才 缺 口 也 将 日 益 显 现 。 CNCF又 就 此 推 出 了 CKA( Certified Kubernetes Administrator) 和 CKD( Certified Kubernetes Developer) , 假 若 在 Kubernetes的 生 态 构 建 与 市 场 发 展 顺 利 的 情 况 下 , 该 证 书 将 会 展 现 其 含 金 量 。 < / p >
< p > 另 外 在 国 外 还 有 一 大 批 基 于 Kubernetes的 创 业 公 司 , 如 Kubernetes创 始 人 之 一 Joe Beda创 立 了 Heptio( 于 今 年 9月 获 获 得 2500万 美 元 B轮 融 资 ) , 还 有 Platform9、 Kismatic、 Diamanti、 Bitnami、 CoreOS、 Hypernetes、 Weave、 NavOps等 , 他 们 中 有 的 提 供 Kubernetes的 技 术 咨 询 和 培 训 , 有 的 专 研 某 项 具 体 技 术 , 还 有 一 系 列 基 于 Kubernetes的 自 动 化 工 具 、 监 控 厂 商 如 雨 后 春 笋 般 出 现 。 < / p >
< p > 国 内 前 几 年 诞 生 了 多 家 容 器 创 业 公 司 , 例 如 DaoCloud、 精 灵 云 、 时 速 云 、 数 人 云 、 灵 雀 云 、 有 容 云 、 好 雨 云 、 希 云 、 才 云 、 博 云 等 , 这 些 厂 商 有 的 可 能 一 开 始 不 是 基 于 Kubernetes作 为 容 器 编 排 调 度 引 擎 , 但 是 现 在 已 经 全 部 支 持 , 其 中 灵 雀 云 于 11月 8日 获 得 腾 讯 云 领 投 的 B轮 融 资 。 这 些 容 器 厂 商 全 部 涉 及 私 有 云 业 务 , 主 要 对 接 金 融 、 政 府 和 电 信 行 业 , 帮 助 传 统 企 业 进 行 IT转 型 , 虽 然 很 多 厂 商 都 生 成 支 持 Kubernetes, 但 是 在 Kubernetes的 易 用 性 上 还 需 要 很 多 改 进 , 单 纯 基 于 容 器 部 署 应 用 已 经 无 法 满 足 企 业 的 需 求 , 帮 助 企 业 上 云 、 将 传 统 应 用 改 造 以 适 应 云 的 弹 性 与 高 效 , 构 建 PaaS平 台 , 通 过 基 于 容 器 的 基 础 调 度 平 台 运 行 大 数 据 及 AI应 用 , 成 为 创 业 公 司 的 众 矢 之 的 , 对 于 特 定 行 业 的 整 体 的 解 决 方 案 将 是 国 内 的 容 器 厂 商 的 主 要 商 业 化 方 式 。 < / p >
< p > 目 前 大 部 分 容 器 云 提 供 的 产 品 大 同 小 异 , 从 云 平 台 管 理 、 容 器 应 用 的 生 命 周 期 管 理 、 DevOps、 微 服 务 架 构 等 , 这 些 大 多 是 对 原 有 应 用 的 部 署 和 资 源 申 请 流 程 的 优 化 , 没 有 形 成 杀 手 级 的 平 台 级 服 务 , 这 些 都 是 原 来 容 器 时 代 的 产 物 。 而 容 器 云 进 化 到 高 级 阶 段 Cloud Native( 云 原 生 ) 后 , 容 器 技 术 将 成 为 该 平 台 的 基 础 , 虽 然 大 家 都 生 成 具 有 全 面 的 功 能 , 但 是 厂 商 在 推 行 容 器 技 术 时 需 要 结 合 企 业 的 具 体 应 用 场 景 下 进 行 优 化 。 < / p >
< h2 id = "2018年展望" > 2018年 展 望 < / h2 >
< p > 2017年 可 以 说 是 Cloud Native蓬 勃 发 展 和 大 发 异 彩 之 年 , Kuberentes在 这 一 年 中 连 续 发 布 了 4个 版 本 , 从 1.6到 1.9, < a href = "https://github.com/containerd/containerd" target = "_blank" > Containerd< / a > 、 < a href = "https://github.com/fluent/fluentd/" target = "_blank" > Fluentd< / a > 、 < a href = "https://github.com/coredns/coredns" target = "_blank" > CoreDNS< / a > 、 < a href = "https://github.com/jaegertracing/jaeger" target = "_blank" > Jeager< / a > 分 别 发 布 自 己 的 1.0版 本 。 < / p >
< p > 在 今 年 12月 的 KubeCon& CloudNativeCon Austin会 议 上 , 已 经 为 2018年 的 云 原 生 生 态 圈 的 发 展 确 定 几 大 关 键 词 : < / p >
< ul >
< li > 服 务 网 格 ( Service Mesh) , 在 Kubernetes上 践 行 微 服 务 架 构 进 行 服 务 治 理 所 必 须 的 组 件 ; < / li >
< li > 无 服 务 器 架 构 ( Serverless) , 以 FaaS为 代 表 的 无 服 务 器 架 构 将 会 流 行 开 来 ; < / li >
< li > 加 强 数 据 服 务 承 载 能 力 , 例 如 在 Kubernetes上 运 行 大 数 据 应 用 ; < / li >
< li > 简 化 应 用 部 署 与 运 维 包 括 云 应 用 的 监 控 与 日 志 收 集 分 析 等 ; < / li >
< / ul >
< p > 这 些 功 能 是 Kubernetes生 态 已 有 但 是 亟 待 加 强 的 功 能 , 它 们 能 够 解 决 我 们 在 上 文 中 提 到 的 当 前 生 态 中 存 在 的 问 题 。 < / p >
< p > 2018年 的 IaaS的 运 营 商 将 主 要 提 供 基 础 架 构 服 务 , 如 虚 拟 机 、 存 储 和 数 据 库 等 传 统 的 基 础 架 构 和 服 务 , 仍 然 会 使 用 现 有 的 工 具 如 Chef、 Terraform、 Ansible等 来 管 理 ; Kubernetes则 可 能 直 接 运 行 在 裸 机 上 运 行 , 结 合 CI/CD成 为 DevOps的 得 力 工 具 , 并 成 为 高 级 开 发 人 员 的 应 用 部 署 首 选 ; Kubernetes也 将 成 为 PaaS层 的 重 要 组 成 部 分 , 为 开 发 者 提 供 应 用 程 序 部 署 的 简 单 方 法 , 但 是 开 发 者 可 能 不 会 直 接 与 Kubernetes或 者 PaaS交 互 , 实 际 的 应 用 部 署 流 程 很 可 能 落 在 自 动 化 CI工 具 如 Jenkins上 。 < / p >
< p > 2018年 , Kubernetes将 更 加 稳 定 好 用 , 云 原 生 将 会 出 现 更 多 的 落 地 与 最 佳 实 践 , 这 都 值 得 我 们 期 待 ! < / p >
< footer class = "page-footer" > < span class = "copyright" > Copyright © jimmysong.io 2017 all right reserved, powered by Gitbook< / span > < span class = "footer-modification" > Updated:
2017-12-30 10:37:40 +08:00
2017-12-30 09:48:24
2017-12-27 12:29:33 +08:00
< / span > < / footer >
< / section >
< / div >
< div class = "search-results" >
< div class = "has-results" >
< h1 class = "search-results-title" > < span class = 'search-results-count' > < / span > results matching "< span class = 'search-query' > < / span > "< / h1 >
< ul class = "search-results-list" > < / ul >
< / div >
< div class = "no-results" >
< h1 class = "search-results-title" > No results matching "< span class = 'search-query' > < / span > "< / h1 >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< a href = "summary-and-outlook.html" class = "navigation navigation-prev navigation-unique" aria-label = "Previous page: Kubernetes及云原生年度总结及展望" >
< i class = "fa fa-angle-left" > < / i >
< / a >
< / div >
< script >
var gitbook = gitbook || [];
gitbook.push(function() {
2018-01-14 15:02:28 +08:00
gitbook.page.hasChanged({"page":{"title":"Kubernetes与云原生2017年年终总结及2018年展望","level":"8.8.1","depth":2,"previous":{"title":"Kubernetes及云原生年度总结及展望","level":"8.8","depth":1,"path":"appendix/summary-and-outlook.md","ref":"appendix/summary-and-outlook.md","articles":[{"title":"Kubernetes与云原生2017年年终总结及2018年展望","level":"8.8.1","depth":2,"path":"appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.md","ref":"appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["github","codesnippet","splitter","page-toc-button","image-captions","editlink","back-to-top-button","-lunr","-search","search-plus","github-buttons@2.1.0","favicon@^0.0.2","tbfed-pagefooter@^0.0.1","3-ba","theme-default"],"styles":{"ebook":"styles/ebook.css","epub":"styles/epub.css","mobi":"styles/mobi.css","pdf":"styles/pdf.css","print":"styles/print.css","website":"styles/website.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"Copyright © jimmysong.io 2017","modify_label":"Updated:","modify_format":"YYYY-MM-DD HH:mm:ss"},"github":{"url":"https://github.com/rootsongjc/kubernetes-handbook"},"editlink":{"label":"编辑本页","multilingual":false,"base":"https://github.com/rootsongjc/kubernetes-handbook/blob/master/"},"splitter":{},"codesnippet":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"favicon":{"shortcut":"favicon.ico","bookmark":"favicon.ico"},"page-toc-button":{},"back-to-top-button":{},"github-buttons":{"repo":"rootsongjc/kubernetes-handbook","types":["star"],"size":"small"},"3-ba":{"configuration":"auto","token":"11f7d254cfa4e0ca44b175c66d379ecc"},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"showLevel":true,"styles":{"ebook":"styles/ebook.css","epub":"styles/epub.css","mobi":"styles/mobi.css","pdf":"styles/pdf.css","print":"styles/print.css","website":"styles/website.css"}},"search-plus":{},"image-captions":{"caption":"图片 - _CAPTION_","variable_name":"_pictures"}},"theme":"default","author":"Jimmy Song","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"_pictures":[{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.1.1","level":"2.1","list_caption":"Figure: 云计算演进历程","alt":"云计算演进历程","nro":1,"url":"../images/cloud-computing-evolution-road.jpg","index":1,"caption_template":"图片 - _CAPTION_","label":"云计算演进历程","attributes":{},"skip":false,"key":"2.1.1"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.1.2","level":"2.1","list_caption":"Figure: 来自Twitter @MarcWilczek","alt":"来自Twitter @MarcWilczek","nro":2,"url":"../images/cloud-native-comes-of-age.jpg","index":2,"caption_template":"图片 - _CAPTION_","label":"来自Twitter @MarcWilczek","attributes":{},"skip":false,"key":"2.1.2"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.1.3","level":"2.1","list_caption":"Figure: Cloud native思维导图","alt":"Cloud native思维导图","nro":3,"url":"../images/cloud-native-architecutre-mindnode.jpg","index":3,"caption_template":"图片 - _CAPTION_","label":"Cloud native思维导图","attributes":{},"skip":false,"key":"2.1.3"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.1.4","level":"2.1","list_caption":"Figure: 十二因素应用","alt":"十二因素应用","nro":4,"url":"../images/12-factor-app.png","index":4,"caption_template":"图片 - _CAPTION_","label":"十二因素应用","attributes":{},"skip":false,"key":"2.1.4"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.1.5","level":"2.1"
2017-12-27 12:29:33 +08:00
});
< / script >
< / div >
< script src = "../gitbook/gitbook.js" > < / script >
< script src = "../gitbook/theme.js" > < / script >
< script src = "../gitbook/gitbook-plugin-github/plugin.js" > < / script >
< script src = "../gitbook/gitbook-plugin-splitter/splitter.js" > < / script >
< script src = "../gitbook/gitbook-plugin-page-toc-button/plugin.js" > < / script >
< script src = "../gitbook/gitbook-plugin-editlink/plugin.js" > < / script >
< script src = "../gitbook/gitbook-plugin-back-to-top-button/plugin.js" > < / script >
< script src = "../gitbook/gitbook-plugin-search-plus/jquery.mark.min.js" > < / script >
< script src = "../gitbook/gitbook-plugin-search-plus/search.js" > < / script >
< script src = "../gitbook/gitbook-plugin-github-buttons/plugin.js" > < / script >
< script src = "../gitbook/gitbook-plugin-3-ba/plugin.js" > < / script >
< script src = "../gitbook/gitbook-plugin-sharing/buttons.js" > < / script >
< script src = "../gitbook/gitbook-plugin-fontsettings/fontsettings.js" > < / script >
< / body >
< / html >