kubernetes-handbook/concepts/flannel.html

5055 lines
282 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE HTML>
<html lang="zh-hans" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Kubernetes 中的网络解析 —— 以 flannel 为例 · Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<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-prism/prism-ghcolors.css">
<link rel="stylesheet" href="../gitbook/gitbook-plugin-lightbox/css/lightbox.min.css">
<link rel="stylesheet" href="../gitbook/gitbook-plugin-alerts/style.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="next" href="calico.html" />
<link rel="prev" href="networking.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">回到主页</a>
</li>
<li>
<a href="https://jimmysong.io/awesome-cloud-native" target="_blank" class="custom-link">Awesome Cloud Native</a>
</li>
<li>
<a href="https://cloudnative.to" target="_blank" class="custom-link">云原生社区</a>
</li>
<li>
<a href="https://cloudnativeindustryalliance.github.io/whitepaper2020/" target="_blank" class="custom-link">中国云原生发展白皮书2020</a>
</li>
<li>
<a href="https://jimmysong.io/guide-to-cloud-native-app/" target="_blank" class="custom-link">云原生应用白皮书</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/cloud-native-definition.html">
<a href="../cloud-native/cloud-native-definition.html">
<b>2.1.</b>
云原生Cloud Native的定义
</a>
</li>
<li class="chapter " data-level="2.2" data-path="../cloud-native/cloud-native-philosophy.html">
<a href="../cloud-native/cloud-native-philosophy.html">
<b>2.2.</b>
云原生的设计哲学
</a>
</li>
<li class="chapter " data-level="2.3" data-path="../cloud-native/play-with-kubernetes.html">
<a href="../cloud-native/play-with-kubernetes.html">
<b>2.3.</b>
Play with Kubernetes
</a>
</li>
<li class="chapter " data-level="2.4" data-path="../cloud-native/cloud-native-local-quick-start.html">
<a href="../cloud-native/cloud-native-local-quick-start.html">
<b>2.4.</b>
快速部署一个云原生本地实验环境
</a>
</li>
<li class="chapter " data-level="2.5" data-path="../cloud-native/setup-kubernetes-with-rancher-and-aliyun.html">
<a href="../cloud-native/setup-kubernetes-with-rancher-and-aliyun.html">
<b>2.5.</b>
使用 Rancher 在阿里云上部署 Kubenretes 集群
</a>
</li>
<li class="chapter " data-level="2.6" data-path="../cloud-native/kubernetes-and-cloud-native-app-overview.html">
<a href="../cloud-native/kubernetes-and-cloud-native-app-overview.html">
<b>2.6.</b>
Kubernetes 与云原生应用概览
</a>
</li>
<li class="chapter " data-level="2.7" data-path="../cloud-native/from-kubernetes-to-cloud-native.html">
<a href="../cloud-native/from-kubernetes-to-cloud-native.html">
<b>2.7.</b>
云原生应用之路 —— 从 Kubernetes 到 Cloud Native
</a>
</li>
<li class="chapter " data-level="2.8" data-path="../cloud-native/cloud-native-programming-languages.html">
<a href="../cloud-native/cloud-native-programming-languages.html">
<b>2.8.</b>
云原生编程语言
</a>
<ul class="articles">
<li class="chapter " data-level="2.8.1" data-path="../cloud-native/cloud-native-programming-language-ballerina.html">
<a href="../cloud-native/cloud-native-programming-language-ballerina.html">
<b>2.8.1.</b>
云原生编程语言 Ballerina
</a>
</li>
<li class="chapter " data-level="2.8.2" data-path="../cloud-native/cloud-native-programming-language-pulumi.html">
<a href="../cloud-native/cloud-native-programming-language-pulumi.html">
<b>2.8.2.</b>
云原生编程语言 Pulumi
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="2.9" data-path="../cloud-native/the-future-of-cloud-native.html">
<a href="../cloud-native/the-future-of-cloud-native.html">
<b>2.9.</b>
云原生的未来
</a>
</li>
<li class="chapter " data-level="2.10" data-path="../cloud-native/define-cloud-native-app.html">
<a href="../cloud-native/define-cloud-native-app.html">
<b>2.10.</b>
定义云原生应用
</a>
<ul class="articles">
<li class="chapter " data-level="2.10.1" data-path="../cloud-native/workload.html">
<a href="../cloud-native/workload.html">
<b>2.10.1.</b>
Workload
</a>
</li>
<li class="chapter " data-level="2.10.2" data-path="../cloud-native/component.html">
<a href="../cloud-native/component.html">
<b>2.10.2.</b>
Component
</a>
</li>
<li class="chapter " data-level="2.10.3" data-path="../cloud-native/trait.html">
<a href="../cloud-native/trait.html">
<b>2.10.3.</b>
Trait
</a>
</li>
<li class="chapter " data-level="2.10.4" data-path="../cloud-native/application-scope.html">
<a href="../cloud-native/application-scope.html">
<b>2.10.4.</b>
Application Scope
</a>
</li>
<li class="chapter " data-level="2.10.5" data-path="../cloud-native/application-configuration.html">
<a href="../cloud-native/application-configuration.html">
<b>2.10.5.</b>
Application Configuration
</a>
</li>
</ul>
</li>
<li class="header">概念与原理</li>
<li class="chapter " data-level="3.1" data-path="./">
<a href="./">
<b>3.1.</b>
Kubernetes 架构
</a>
<ul class="articles">
<li class="chapter " data-level="3.1.1" data-path="concepts.html">
<a href="concepts.html">
<b>3.1.1.</b>
设计理念
</a>
</li>
<li class="chapter " data-level="3.1.2" data-path="etcd.html">
<a href="etcd.html">
<b>3.1.2.</b>
Etcd 解析
</a>
</li>
<li class="chapter " data-level="3.1.3" data-path="open-interfaces.html">
<a href="open-interfaces.html">
<b>3.1.3.</b>
开放接口
</a>
<ul class="articles">
<li class="chapter " data-level="3.1.3.1" data-path="cri.html">
<a href="cri.html">
<b>3.1.3.1.</b>
CRI - Container Runtime Interface容器运行时接口
</a>
</li>
<li class="chapter " data-level="3.1.3.2" data-path="cni.html">
<a href="cni.html">
<b>3.1.3.2.</b>
CNI - Container Network Interface容器网络接口
</a>
</li>
<li class="chapter " data-level="3.1.3.3" data-path="csi.html">
<a href="csi.html">
<b>3.1.3.3.</b>
CSI - Container Storage Interface容器存储接口
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="3.2" data-path="networking.html">
<a href="networking.html">
<b>3.2.</b>
Kubernetes 中的网络
</a>
<ul class="articles">
<li class="chapter active" data-level="3.2.1" data-path="flannel.html">
<a href="flannel.html">
<b>3.2.1.</b>
Kubernetes 中的网络解析 —— 以 flannel 为例
</a>
</li>
<li class="chapter " data-level="3.2.2" data-path="calico.html">
<a href="calico.html">
<b>3.2.2.</b>
Kubernetes 中的网络解析 —— 以 calico 为例
</a>
</li>
<li class="chapter " data-level="3.2.3" data-path="cilium.html">
<a href="cilium.html">
<b>3.2.3.</b>
具备 API 感知的网络和安全性管理开源软件 Cilium
</a>
<ul class="articles">
<li class="chapter " data-level="3.2.3.1" data-path="cilium-concepts.html">
<a href="cilium-concepts.html">
<b>3.2.3.1.</b>
Cilium 架构设计与概念解析
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="3.3" data-path="objects.html">
<a href="objects.html">
<b>3.3.</b>
资源对象与基本概念解析
</a>
</li>
<li class="chapter " data-level="3.4" data-path="pod-state-and-lifecycle.html">
<a href="pod-state-and-lifecycle.html">
<b>3.4.</b>
Pod 状态与生命周期管理
</a>
<ul class="articles">
<li class="chapter " data-level="3.4.1" data-path="pod-overview.html">
<a href="pod-overview.html">
<b>3.4.1.</b>
Pod 概览
</a>
</li>
<li class="chapter " data-level="3.4.2" data-path="pod.html">
<a href="pod.html">
<b>3.4.2.</b>
Pod 解析
</a>
</li>
<li class="chapter " data-level="3.4.3" data-path="init-containers.html">
<a href="init-containers.html">
<b>3.4.3.</b>
Init 容器
</a>
</li>
<li class="chapter " data-level="3.4.4" data-path="pause-container.html">
<a href="pause-container.html">
<b>3.4.4.</b>
Pause 容器
</a>
</li>
<li class="chapter " data-level="3.4.5" data-path="pod-security-policy.html">
<a href="pod-security-policy.html">
<b>3.4.5.</b>
Pod 安全策略
</a>
</li>
<li class="chapter " data-level="3.4.6" data-path="pod-lifecycle.html">
<a href="pod-lifecycle.html">
<b>3.4.6.</b>
Pod 的生命周期
</a>
</li>
<li class="chapter " data-level="3.4.7" data-path="pod-hook.html">
<a href="pod-hook.html">
<b>3.4.7.</b>
Pod Hook
</a>
</li>
<li class="chapter " data-level="3.4.8" data-path="pod-preset.html">
<a href="pod-preset.html">
<b>3.4.8.</b>
Pod Preset
</a>
</li>
<li class="chapter " data-level="3.4.9" data-path="pod-disruption-budget.html">
<a href="pod-disruption-budget.html">
<b>3.4.9.</b>
Pod 中断与 PDBPod 中断预算)
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.5" data-path="cluster.html">
<a href="cluster.html">
<b>3.5.</b>
集群资源管理
</a>
<ul class="articles">
<li class="chapter " data-level="3.5.1" data-path="node.html">
<a href="node.html">
<b>3.5.1.</b>
Node
</a>
</li>
<li class="chapter " data-level="3.5.2" data-path="namespace.html">
<a href="namespace.html">
<b>3.5.2.</b>
Namespace
</a>
</li>
<li class="chapter " data-level="3.5.3" data-path="label.html">
<a href="label.html">
<b>3.5.3.</b>
Label
</a>
</li>
<li class="chapter " data-level="3.5.4" data-path="annotation.html">
<a href="annotation.html">
<b>3.5.4.</b>
Annotation
</a>
</li>
<li class="chapter " data-level="3.5.5" data-path="taint-and-toleration.html">
<a href="taint-and-toleration.html">
<b>3.5.5.</b>
Taint 和 Toleration污点和容忍
</a>
</li>
<li class="chapter " data-level="3.5.6" data-path="garbage-collection.html">
<a href="garbage-collection.html">
<b>3.5.6.</b>
垃圾收集
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.6" data-path="controllers.html">
<a href="controllers.html">
<b>3.6.</b>
控制器
</a>
<ul class="articles">
<li class="chapter " data-level="3.6.1" data-path="deployment.html">
<a href="deployment.html">
<b>3.6.1.</b>
Deployment
</a>
</li>
<li class="chapter " data-level="3.6.2" data-path="statefulset.html">
<a href="statefulset.html">
<b>3.6.2.</b>
StatefulSet
</a>
</li>
<li class="chapter " data-level="3.6.3" data-path="daemonset.html">
<a href="daemonset.html">
<b>3.6.3.</b>
DaemonSet
</a>
</li>
<li class="chapter " data-level="3.6.4" data-path="replicaset.html">
<a href="replicaset.html">
<b>3.6.4.</b>
ReplicationController 和 ReplicaSet
</a>
</li>
<li class="chapter " data-level="3.6.5" data-path="job.html">
<a href="job.html">
<b>3.6.5.</b>
Job
</a>
</li>
<li class="chapter " data-level="3.6.6" data-path="cronjob.html">
<a href="cronjob.html">
<b>3.6.6.</b>
CronJob
</a>
</li>
<li class="chapter " data-level="3.6.7" data-path="horizontal-pod-autoscaling.html">
<a href="horizontal-pod-autoscaling.html">
<b>3.6.7.</b>
Horizontal Pod Autoscaling
</a>
<ul class="articles">
<li class="chapter " data-level="3.6.7.1" data-path="custom-metrics-hpa.html">
<a href="custom-metrics-hpa.html">
<b>3.6.7.1.</b>
自定义指标 HPA
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.6.8" data-path="admission-controller.html">
<a href="admission-controller.html">
<b>3.6.8.</b>
准入控制器Admission Controller
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.7" data-path="service-discovery.html">
<a href="service-discovery.html">
<b>3.7.</b>
服务发现
</a>
<ul class="articles">
<li class="chapter " data-level="3.7.1" data-path="service.html">
<a href="service.html">
<b>3.7.1.</b>
Service
</a>
</li>
<li class="chapter " data-level="3.7.2" data-path="ingress.html">
<a href="ingress.html">
<b>3.7.2.</b>
Ingress
</a>
<ul class="articles">
<li class="chapter " data-level="3.7.2.1" data-path="traefik-ingress-controller.html">
<a href="traefik-ingress-controller.html">
<b>3.7.2.1.</b>
Traefik Ingress Controller
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="3.8" data-path="authentication-and-permission.html">
<a href="authentication-and-permission.html">
<b>3.8.</b>
身份与权限控制
</a>
<ul class="articles">
<li class="chapter " data-level="3.8.1" data-path="serviceaccount.html">
<a href="serviceaccount.html">
<b>3.8.1.</b>
ServiceAccount
</a>
</li>
<li class="chapter " data-level="3.8.2" data-path="rbac.html">
<a href="rbac.html">
<b>3.8.2.</b>
RBAC—— 基于角色的访问控制
</a>
</li>
<li class="chapter " data-level="3.8.3" data-path="network-policy.html">
<a href="network-policy.html">
<b>3.8.3.</b>
NetworkPolicy
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.9" data-path="storage.html">
<a href="storage.html">
<b>3.9.</b>
存储
</a>
<ul class="articles">
<li class="chapter " data-level="3.9.1" data-path="secret.html">
<a href="secret.html">
<b>3.9.1.</b>
Secret
</a>
</li>
<li class="chapter " data-level="3.9.2" data-path="configmap.html">
<a href="configmap.html">
<b>3.9.2.</b>
ConfigMap
</a>
<ul class="articles">
<li class="chapter " data-level="3.9.2.1" data-path="configmap-hot-update.html">
<a href="configmap-hot-update.html">
<b>3.9.2.1.</b>
ConfigMap 的热更新
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.9.3" data-path="volume.html">
<a href="volume.html">
<b>3.9.3.</b>
Volume
</a>
</li>
<li class="chapter " data-level="3.9.4" data-path="persistent-volume.html">
<a href="persistent-volume.html">
<b>3.9.4.</b>
Persistent Volume持久化卷
</a>
</li>
<li class="chapter " data-level="3.9.5" data-path="storageclass.html">
<a href="storageclass.html">
<b>3.9.5.</b>
Storage Class
</a>
</li>
<li class="chapter " data-level="3.9.6" data-path="local-persistent-storage.html">
<a href="local-persistent-storage.html">
<b>3.9.6.</b>
本地持久化存储
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.10" data-path="extension.html">
<a href="extension.html">
<b>3.10.</b>
集群扩展
</a>
<ul class="articles">
<li class="chapter " data-level="3.10.1" data-path="custom-resource.html">
<a href="custom-resource.html">
<b>3.10.1.</b>
使用自定义资源扩展 API
</a>
</li>
<li class="chapter " data-level="3.10.2" data-path="crd.html">
<a href="crd.html">
<b>3.10.2.</b>
使用 CRD 扩展 Kubernetes API
</a>
</li>
<li class="chapter " data-level="3.10.3" data-path="aggregated-api-server.html">
<a href="aggregated-api-server.html">
<b>3.10.3.</b>
Aggregated API Server
</a>
</li>
<li class="chapter " data-level="3.10.4" data-path="apiservice.html">
<a href="apiservice.html">
<b>3.10.4.</b>
APIService
</a>
</li>
<li class="chapter " data-level="3.10.5" data-path="service-catalog.html">
<a href="service-catalog.html">
<b>3.10.5.</b>
Service Catalog
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.11" data-path="scheduling.html">
<a href="scheduling.html">
<b>3.11.</b>
资源调度
</a>
<ul class="articles">
<li class="chapter " data-level="3.11.1" data-path="qos.html">
<a href="qos.html">
<b>3.11.1.</b>
QoS服务质量等级
</a>
</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/ip-masq-agent.html">
<a href="../guide/ip-masq-agent.html">
<b>4.4.5.</b>
IP 伪装代理
</a>
</li>
<li class="chapter " data-level="4.4.6" data-path="../guide/auth-with-kubeconfig-or-token.html">
<a href="../guide/auth-with-kubeconfig-or-token.html">
<b>4.4.6.</b>
使用 kubeconfig 或 token 进行用户身份认证
</a>
</li>
<li class="chapter " data-level="4.4.7" data-path="../guide/authentication.html">
<a href="../guide/authentication.html">
<b>4.4.7.</b>
Kubernetes 中的用户与身份认证授权
</a>
</li>
<li class="chapter " data-level="4.4.8" data-path="../guide/kubernetes-security-best-practice.html">
<a href="../guide/kubernetes-security-best-practice.html">
<b>4.4.8.</b>
Kubernetes 集群安全性配置最佳实践
</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/cabin-mobile-dashboard-for-kubernetes.html">
<a href="../guide/cabin-mobile-dashboard-for-kubernetes.html">
<b>4.5.6.</b>
Cabin - 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>
在 Kubernetes 中开发部署应用
</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>
迁移传统应用到 Kubernetes 中 —— 以 Hadoop YARN 为例
</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>
在 CentOS 上部署 Kubernetes 集群
</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/install-kubernetes-with-kubeadm.html">
<a href="../practice/install-kubernetes-with-kubeadm.html">
<b>5.3.</b>
生产级的 Kubernetes 简化管理工具 kubeadm
</a>
<ul class="articles">
<li class="chapter " data-level="5.3.1" data-path="../practice/install-kubernetes-on-ubuntu-server-16.04-with-kubeadm.html">
<a href="../practice/install-kubernetes-on-ubuntu-server-16.04-with-kubeadm.html">
<b>5.3.1.</b>
使用 kubeadm 在 Ubuntu Server 16.04 上快速构建测试集群
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.4" data-path="../practice/service-discovery-and-loadbalancing.html">
<a href="../practice/service-discovery-and-loadbalancing.html">
<b>5.4.</b>
服务发现与负载均衡
</a>
<ul class="articles">
<li class="chapter " data-level="5.4.1" data-path="../practice/traefik-ingress-installation.html">
<a href="../practice/traefik-ingress-installation.html">
<b>5.4.1.</b>
安装 Traefik ingress
</a>
</li>
<li class="chapter " data-level="5.4.2" data-path="../practice/distributed-load-test.html">
<a href="../practice/distributed-load-test.html">
<b>5.4.2.</b>
分布式负载测试
</a>
</li>
<li class="chapter " data-level="5.4.3" data-path="../practice/network-and-cluster-perfermance-test.html">
<a href="../practice/network-and-cluster-perfermance-test.html">
<b>5.4.3.</b>
网络和集群性能测试
</a>
</li>
<li class="chapter " data-level="5.4.4" data-path="../practice/edge-node-configuration.html">
<a href="../practice/edge-node-configuration.html">
<b>5.4.4.</b>
边缘节点配置
</a>
</li>
<li class="chapter " data-level="5.4.5" data-path="../practice/nginx-ingress-installation.html">
<a href="../practice/nginx-ingress-installation.html">
<b>5.4.5.</b>
安装 Nginx ingress
</a>
</li>
<li class="chapter " data-level="5.4.6" data-path="../practice/dns-installation.html">
<a href="../practice/dns-installation.html">
<b>5.4.6.</b>
安装配置 DNS
</a>
<ul class="articles">
<li class="chapter " data-level="5.4.6.1" data-path="../practice/configuring-dns.html">
<a href="../practice/configuring-dns.html">
<b>5.4.6.1.</b>
安装配置 Kube-dns
</a>
</li>
<li class="chapter " data-level="5.4.6.2" data-path="../practice/coredns.html">
<a href="../practice/coredns.html">
<b>5.4.6.2.</b>
安装配置 CoreDNS
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="5.5" data-path="../practice/operation.html">
<a href="../practice/operation.html">
<b>5.5.</b>
运维管理
</a>
<ul class="articles">
<li class="chapter " data-level="5.5.1" data-path="../practice/master-ha.html">
<a href="../practice/master-ha.html">
<b>5.5.1.</b>
Master 节点高可用
</a>
</li>
<li class="chapter " data-level="5.5.2" data-path="../practice/service-rolling-update.html">
<a href="../practice/service-rolling-update.html">
<b>5.5.2.</b>
服务滚动升级
</a>
</li>
<li class="chapter " data-level="5.5.3" data-path="../practice/app-log-collection.html">
<a href="../practice/app-log-collection.html">
<b>5.5.3.</b>
应用日志收集
</a>
</li>
<li class="chapter " data-level="5.5.4" data-path="../practice/configuration-best-practice.html">
<a href="../practice/configuration-best-practice.html">
<b>5.5.4.</b>
配置最佳实践
</a>
</li>
<li class="chapter " data-level="5.5.5" data-path="../practice/monitor.html">
<a href="../practice/monitor.html">
<b>5.5.5.</b>
集群及应用监控
</a>
</li>
<li class="chapter " data-level="5.5.6" data-path="../practice/data-persistence-problem.html">
<a href="../practice/data-persistence-problem.html">
<b>5.5.6.</b>
数据持久化问题
</a>
</li>
<li class="chapter " data-level="5.5.7" data-path="../practice/manage-compute-resources-container.html">
<a href="../practice/manage-compute-resources-container.html">
<b>5.5.7.</b>
管理容器的计算资源
</a>
</li>
<li class="chapter " data-level="5.5.8" data-path="../practice/federation.html">
<a href="../practice/federation.html">
<b>5.5.8.</b>
集群联邦
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.6" data-path="../practice/storage.html">
<a href="../practice/storage.html">
<b>5.6.</b>
存储管理
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.1" data-path="../practice/glusterfs.html">
<a href="../practice/glusterfs.html">
<b>5.6.1.</b>
GlusterFS
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.1.1" data-path="../practice/using-glusterfs-for-persistent-storage.html">
<a href="../practice/using-glusterfs-for-persistent-storage.html">
<b>5.6.1.1.</b>
使用 GlusterFS 做持久化存储
</a>
</li>
<li class="chapter " data-level="5.6.1.2" data-path="../practice/using-heketi-gluster-for-persistent-storage.html">
<a href="../practice/using-heketi-gluster-for-persistent-storage.html">
<b>5.6.1.2.</b>
使用 Heketi 作为 Kubernetes 的持久存储 GlusterFS 的 external provisioner
</a>
</li>
<li class="chapter " data-level="5.6.1.3" data-path="../practice/storage-for-containers-using-glusterfs-with-openshift.html">
<a href="../practice/storage-for-containers-using-glusterfs-with-openshift.html">
<b>5.6.1.3.</b>
在 OpenShift 中使用 GlusterFS 做持久化存储
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.6.2" data-path="../practice/glusterd-2.0.html">
<a href="../practice/glusterd-2.0.html">
<b>5.6.2.</b>
GlusterD-2.0
</a>
</li>
<li class="chapter " data-level="5.6.3" data-path="../practice/ceph.html">
<a href="../practice/ceph.html">
<b>5.6.3.</b>
Ceph
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.3.1" data-path="../practice/ceph-helm-install-guide-zh.html">
<a href="../practice/ceph-helm-install-guide-zh.html">
<b>5.6.3.1.</b>
用 Helm 托管安装 Ceph 集群并提供后端存储
</a>
</li>
<li class="chapter " data-level="5.6.3.2" data-path="../practice/using-ceph-for-persistent-storage.html">
<a href="../practice/using-ceph-for-persistent-storage.html">
<b>5.6.3.2.</b>
使用 Ceph 做持久化存储
</a>
</li>
<li class="chapter " data-level="5.6.3.3" data-path="../practice/rbd-provisioner.html">
<a href="../practice/rbd-provisioner.html">
<b>5.6.3.3.</b>
使用 rbd-provisioner 提供 rbd 持久化存储
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.6.4" data-path="../practice/openebs.html">
<a href="../practice/openebs.html">
<b>5.6.4.</b>
OpenEBS
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.4.1" data-path="../practice/using-openebs-for-persistent-storage.html">
<a href="../practice/using-openebs-for-persistent-storage.html">
<b>5.6.4.1.</b>
使用 OpenEBS 做持久化存储
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.6.5" data-path="../practice/rook.html">
<a href="../practice/rook.html">
<b>5.6.5.</b>
Rook
</a>
</li>
<li class="chapter " data-level="5.6.6" data-path="../practice/nfs.html">
<a href="../practice/nfs.html">
<b>5.6.6.</b>
NFS
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.6.1" data-path="../practice/using-nfs-for-persistent-storage.html">
<a href="../practice/using-nfs-for-persistent-storage.html">
<b>5.6.6.1.</b>
利用 NFS 动态提供 Kubernetes 后端存储卷
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="5.7" data-path="../practice/monitoring.html">
<a href="../practice/monitoring.html">
<b>5.7.</b>
集群与应用监控
</a>
<ul class="articles">
<li class="chapter " data-level="5.7.1" data-path="../practice/heapster.html">
<a href="../practice/heapster.html">
<b>5.7.1.</b>
Heapster
</a>
<ul class="articles">
<li class="chapter " data-level="5.7.1.1" data-path="../practice/using-heapster-to-get-object-metrics.html">
<a href="../practice/using-heapster-to-get-object-metrics.html">
<b>5.7.1.1.</b>
使用 Heapster 获取集群和对象的 metric 数据
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.7.2" data-path="../practice/prometheus.html">
<a href="../practice/prometheus.html">
<b>5.7.2.</b>
Prometheus
</a>
<ul class="articles">
<li class="chapter " data-level="5.7.2.1" data-path="../practice/using-prometheus-to-monitor-kuberentes-cluster.html">
<a href="../practice/using-prometheus-to-monitor-kuberentes-cluster.html">
<b>5.7.2.1.</b>
使用 Prometheus 监控 kubernetes 集群
</a>
</li>
<li class="chapter " data-level="5.7.2.2" data-path="../practice/promql.html">
<a href="../practice/promql.html">
<b>5.7.2.2.</b>
Prometheus 查询语言 PromQL 使用说明
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.7.3" data-path="../practice/vistio-visualize-your-istio-mesh.html">
<a href="../practice/vistio-visualize-your-istio-mesh.html">
<b>5.7.3.</b>
使用 Vistio 监控 Istio 服务网格中的流量
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.8" data-path="../practice/distributed-tracing.html">
<a href="../practice/distributed-tracing.html">
<b>5.8.</b>
分布式跟踪
</a>
<ul class="articles">
<li class="chapter " data-level="5.8.1" data-path="../practice/opentracing.html">
<a href="../practice/opentracing.html">
<b>5.8.1.</b>
OpenTracing
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.9" data-path="../practice/services-management-tool.html">
<a href="../practice/services-management-tool.html">
<b>5.9.</b>
服务编排管理
</a>
<ul class="articles">
<li class="chapter " data-level="5.9.1" data-path="../practice/helm.html">
<a href="../practice/helm.html">
<b>5.9.1.</b>
使用 Helm 管理 Kubernetes 应用
</a>
</li>
<li class="chapter " data-level="5.9.2" data-path="../practice/create-private-charts-repo.html">
<a href="../practice/create-private-charts-repo.html">
<b>5.9.2.</b>
构建私有 Chart 仓库
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.10" data-path="../practice/ci-cd.html">
<a href="../practice/ci-cd.html">
<b>5.10.</b>
持续集成与发布
</a>
<ul class="articles">
<li class="chapter " data-level="5.10.1" data-path="../practice/jenkins-ci-cd.html">
<a href="../practice/jenkins-ci-cd.html">
<b>5.10.1.</b>
使用 Jenkins 进行持续集成与发布
</a>
</li>
<li class="chapter " data-level="5.10.2" data-path="../practice/drone-ci-cd.html">
<a href="../practice/drone-ci-cd.html">
<b>5.10.2.</b>
使用 Drone 进行持续集成与发布
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.11" data-path="../practice/update-and-upgrade.html">
<a href="../practice/update-and-upgrade.html">
<b>5.11.</b>
更新与升级
</a>
<ul class="articles">
<li class="chapter " data-level="5.11.1" data-path="../practice/manually-upgrade.html">
<a href="../practice/manually-upgrade.html">
<b>5.11.1.</b>
手动升级 Kubernetes 集群
</a>
</li>
<li class="chapter " data-level="5.11.2" data-path="../practice/dashboard-upgrade.html">
<a href="../practice/dashboard-upgrade.html">
<b>5.11.2.</b>
升级 dashboard
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.12" data-path="../practice/controller-extended.html">
<a href="../practice/controller-extended.html">
<b>5.12.</b>
扩展控制器
</a>
<ul class="articles">
<li class="chapter " data-level="5.12.1" data-path="../practice/openkruise.html">
<a href="../practice/openkruise.html">
<b>5.12.1.</b>
OpenKruise
</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>
<li class="chapter " data-level="6.2.2" data-path="../usecases/microservices-for-java-developers.html">
<a href="../usecases/microservices-for-java-developers.html">
<b>6.2.2.</b>
使用 Java 构建微服务并发布到 Kubernetes 平台
</a>
<ul class="articles">
<li class="chapter " data-level="6.2.2.1" data-path="../usecases/spring-boot-quick-start-guide.html">
<a href="../usecases/spring-boot-quick-start-guide.html">
<b>6.2.2.1.</b>
Spring Boot 快速开始指南
</a>
</li>
</ul>
</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/the-enterprise-path-to-service-mesh-architectures.html">
<a href="../usecases/the-enterprise-path-to-service-mesh-architectures.html">
<b>6.3.1.</b>
企业级服务网格架构
</a>
<ul class="articles">
<li class="chapter " data-level="6.3.1.1" data-path="../usecases/service-mesh-fundamental.html">
<a href="../usecases/service-mesh-fundamental.html">
<b>6.3.1.1.</b>
Service Mesh 基础
</a>
</li>
<li class="chapter " data-level="6.3.1.2" data-path="../usecases/comparing-service-mesh-technologies.html">
<a href="../usecases/comparing-service-mesh-technologies.html">
<b>6.3.1.2.</b>
Service Mesh 技术对比
</a>
</li>
<li class="chapter " data-level="6.3.1.3" data-path="../usecases/service-mesh-adoption-and-evolution.html">
<a href="../usecases/service-mesh-adoption-and-evolution.html">
<b>6.3.1.3.</b>
采纳和演进
</a>
</li>
<li class="chapter " data-level="6.3.1.4" data-path="../usecases/service-mesh-customization-and-integration.html">
<a href="../usecases/service-mesh-customization-and-integration.html">
<b>6.3.1.4.</b>
定制和集成
</a>
</li>
<li class="chapter " data-level="6.3.1.5" data-path="../usecases/service-mesh-conclusion.html">
<a href="../usecases/service-mesh-conclusion.html">
<b>6.3.1.5.</b>
总结
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.3.2" data-path="../usecases/istio.html">
<a href="../usecases/istio.html">
<b>6.3.2.</b>
Istio
</a>
<ul class="articles">
<li class="chapter " data-level="6.3.2.1" data-path="../usecases/istio-installation.html">
<a href="../usecases/istio-installation.html">
<b>6.3.2.1.</b>
安装并试用 Istio service mesh
</a>
</li>
<li class="chapter " data-level="6.3.2.2" data-path="../usecases/sidecar-spec-in-istio.html">
<a href="../usecases/sidecar-spec-in-istio.html">
<b>6.3.2.2.</b>
Istio 中 sidecar 的注入规范及示例
</a>
</li>
<li class="chapter " data-level="6.3.2.3" data-path="../usecases/istio-community-tips.html">
<a href="../usecases/istio-community-tips.html">
<b>6.3.2.3.</b>
如何参与 Istio 社区及注意事项
</a>
</li>
<li class="chapter " data-level="6.3.2.4" data-path="../usecases/istio-tutorials-collection.html">
<a href="../usecases/istio-tutorials-collection.html">
<b>6.3.2.4.</b>
Istio 免费学习资源汇总
</a>
</li>
<li class="chapter " data-level="6.3.2.5" data-path="../usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html">
<a href="../usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html">
<b>6.3.2.5.</b>
Sidecar 的注入与流量劫持
</a>
</li>
<li class="chapter " data-level="6.3.2.6" data-path="../usecases/envoy-sidecar-routing-of-istio-service-mesh-deep-dive.html">
<a href="../usecases/envoy-sidecar-routing-of-istio-service-mesh-deep-dive.html">
<b>6.3.2.6.</b>
Envoy Sidecar 代理的路由转发
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.3.3" data-path="../usecases/linkerd.html">
<a href="../usecases/linkerd.html">
<b>6.3.3.</b>
Linkerd
</a>
<ul class="articles">
<li class="chapter " data-level="6.3.3.1" data-path="../usecases/linkerd-user-guide.html">
<a href="../usecases/linkerd-user-guide.html">
<b>6.3.3.1.</b>
Linkerd 使用指南
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.3.4" data-path="../usecases/conduit.html">
<a href="../usecases/conduit.html">
<b>6.3.4.</b>
Conduit
</a>
<ul class="articles">
<li class="chapter " data-level="6.3.4.1" data-path="../usecases/conduit-overview.html">
<a href="../usecases/conduit-overview.html">
<b>6.3.4.1.</b>
Condiut 概览
</a>
</li>
<li class="chapter " data-level="6.3.4.2" data-path="../usecases/conduit-installation.html">
<a href="../usecases/conduit-installation.html">
<b>6.3.4.2.</b>
安装 Conduit
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.3.5" data-path="../usecases/envoy.html">
<a href="../usecases/envoy.html">
<b>6.3.5.</b>
Envoy
</a>
<ul class="articles">
<li class="chapter " data-level="6.3.5.1" data-path="../usecases/envoy-terminology.html">
<a href="../usecases/envoy-terminology.html">
<b>6.3.5.1.</b>
Envoy 的架构与基本术语
</a>
</li>
<li class="chapter " data-level="6.3.5.2" data-path="../usecases/envoy-front-proxy.html">
<a href="../usecases/envoy-front-proxy.html">
<b>6.3.5.2.</b>
Envoy 作为前端代理
</a>
</li>
<li class="chapter " data-level="6.3.5.3" data-path="../usecases/envoy-mesh-in-kubernetes-tutorial.html">
<a href="../usecases/envoy-mesh-in-kubernetes-tutorial.html">
<b>6.3.5.3.</b>
Envoy mesh 教程
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.3.6" data-path="../usecases/mosn.html">
<a href="../usecases/mosn.html">
<b>6.3.6.</b>
MOSN
</a>
</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>
运行支持 Kubernetes 原生调度的 Spark 程序
</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>
<li class="chapter " data-level="6.5.3" data-path="../usecases/knative.html">
<a href="../usecases/knative.html">
<b>6.5.3.</b>
Knative
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.6" data-path="../usecases/cloud-native-app-standard.html">
<a href="../usecases/cloud-native-app-standard.html">
<b>6.6.</b>
云原生应用标准
</a>
<ul class="articles">
<li class="chapter " data-level="6.6.1" data-path="../usecases/oam.html">
<a href="../usecases/oam.html">
<b>6.6.1.</b>
OAM开放应用模型
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.7" data-path="../usecases/edge-computing.html">
<a href="../usecases/edge-computing.html">
<b>6.7.</b>
边缘计算
</a>
</li>
<li class="chapter " data-level="6.8" data-path="../usecases/ai.html">
<a href="../usecases/ai.html">
<b>6.8.</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>
<ul class="articles">
<li class="chapter " data-level="7.3.1" data-path="../develop/using-vagrant-and-virtualbox-for-development.html">
<a href="../develop/using-vagrant-and-virtualbox-for-development.html">
<b>7.3.1.</b>
本地分布式开发环境搭建(使用 Vagrant 和 Virtualbox
</a>
</li>
</ul>
</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>
<li class="chapter " data-level="7.6" data-path="../develop/operator.html">
<a href="../develop/operator.html">
<b>7.6.</b>
Operator
</a>
<ul class="articles">
<li class="chapter " data-level="7.6.1" data-path="../develop/operator-sdk.html">
<a href="../develop/operator-sdk.html">
<b>7.6.1.</b>
operator-sdk
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="7.7" data-path="../develop/kubebuilder.html">
<a href="../develop/kubebuilder.html">
<b>7.7.</b>
kubebuilder
</a>
<ul class="articles">
<li class="chapter " data-level="7.7.1" data-path="../develop/kubebuilder-example.html">
<a href="../develop/kubebuilder-example.html">
<b>7.7.1.</b>
使用 kubebuilder 创建 operator 示例
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="7.8" data-path="../develop/advance-developer.html">
<a href="../develop/advance-developer.html">
<b>7.8.</b>
高级开发指南
</a>
</li>
<li class="chapter " data-level="7.9" data-path="../develop/contribute.html">
<a href="../develop/contribute.html">
<b>7.9.</b>
社区贡献
</a>
</li>
<li class="chapter " data-level="7.10" data-path="../develop/minikube.html">
<a href="../develop/minikube.html">
<b>7.10.</b>
Minikube
</a>
</li>
<li class="header">CNCF云原生计算基金会</li>
<li class="chapter " data-level="8.1" data-path="../cloud-native/cncf.html">
<a href="../cloud-native/cncf.html">
<b>8.1.</b>
CNCF - 云原生计算基金会简介
</a>
</li>
<li class="chapter " data-level="8.2" data-path="../cloud-native/cncf-charter.html">
<a href="../cloud-native/cncf-charter.html">
<b>8.2.</b>
CNCF 章程
</a>
</li>
<li class="chapter " data-level="8.3" data-path="../cloud-native/cncf-sig.html">
<a href="../cloud-native/cncf-sig.html">
<b>8.3.</b>
CNCF 特别兴趣小组SIG说明
</a>
</li>
<li class="chapter " data-level="8.4" data-path="../cloud-native/cncf-sandbox-criteria.html">
<a href="../cloud-native/cncf-sandbox-criteria.html">
<b>8.4.</b>
开源项目加入 CNCF Sandbox 的要求
</a>
</li>
<li class="chapter " data-level="8.5" data-path="../cloud-native/cncf-project-governing.html">
<a href="../cloud-native/cncf-project-governing.html">
<b>8.5.</b>
CNCF 中的项目治理
</a>
</li>
<li class="chapter " data-level="8.6" data-path="../cloud-native/cncf-ambassador.html">
<a href="../cloud-native/cncf-ambassador.html">
<b>8.6.</b>
CNCF Ambassador
</a>
</li>
<li class="header">附录</li>
<li class="chapter " data-level="9.1" data-path="../appendix/">
<a href="../appendix/">
<b>9.1.</b>
附录说明
</a>
</li>
<li class="chapter " data-level="9.2" data-path="../appendix/debug-kubernetes-services.html">
<a href="../appendix/debug-kubernetes-services.html">
<b>9.2.</b>
Kubernetes 中的应用故障排查
</a>
</li>
<li class="chapter " data-level="9.3" data-path="../appendix/material-share.html">
<a href="../appendix/material-share.html">
<b>9.3.</b>
Kubernetes 相关资讯和情报链接
</a>
</li>
<li class="chapter " data-level="9.4" data-path="../appendix/docker-best-practice.html">
<a href="../appendix/docker-best-practice.html">
<b>9.4.</b>
Docker 最佳实践
</a>
</li>
<li class="chapter " data-level="9.5" data-path="../appendix/tricks.html">
<a href="../appendix/tricks.html">
<b>9.5.</b>
使用技巧
</a>
</li>
<li class="chapter " data-level="9.6" data-path="../appendix/issues.html">
<a href="../appendix/issues.html">
<b>9.6.</b>
问题记录
</a>
</li>
<li class="chapter " data-level="9.7" data-path="../appendix/kubernetes-changelog.html">
<a href="../appendix/kubernetes-changelog.html">
<b>9.7.</b>
Kubernetes 版本更新日志
</a>
<ul class="articles">
<li class="chapter " data-level="9.7.1" data-path="../appendix/kubernetes-1.7-changelog.html">
<a href="../appendix/kubernetes-1.7-changelog.html">
<b>9.7.1.</b>
Kubernetes1.7 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.2" data-path="../appendix/kubernetes-1.8-changelog.html">
<a href="../appendix/kubernetes-1.8-changelog.html">
<b>9.7.2.</b>
Kubernetes1.8 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.3" data-path="../appendix/kubernetes-1.9-changelog.html">
<a href="../appendix/kubernetes-1.9-changelog.html">
<b>9.7.3.</b>
Kubernetes1.9 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.4" data-path="../appendix/kubernetes-1.10-changelog.html">
<a href="../appendix/kubernetes-1.10-changelog.html">
<b>9.7.4.</b>
Kubernetes1.10 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.5" data-path="../appendix/kubernetes-1.11-changelog.html">
<a href="../appendix/kubernetes-1.11-changelog.html">
<b>9.7.5.</b>
Kubernetes1.11 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.6" data-path="../appendix/kubernetes-1.12-changelog.html">
<a href="../appendix/kubernetes-1.12-changelog.html">
<b>9.7.6.</b>
Kubernetes1.12 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.7" data-path="../appendix/kubernetes-1.13-changelog.html">
<a href="../appendix/kubernetes-1.13-changelog.html">
<b>9.7.7.</b>
Kubernetes1.13 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.8" data-path="../appendix/kubernetes-1.14-changelog.html">
<a href="../appendix/kubernetes-1.14-changelog.html">
<b>9.7.8.</b>
Kubernetes1.14 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.9" data-path="../appendix/kubernetes-1.15-changelog.html">
<a href="../appendix/kubernetes-1.15-changelog.html">
<b>9.7.9.</b>
Kubernetes1.15 更新日志
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="9.8" data-path="../appendix/summary-and-outlook.html">
<a href="../appendix/summary-and-outlook.html">
<b>9.8.</b>
Kubernetes 及云原生年度总结及展望
</a>
<ul class="articles">
<li class="chapter " data-level="9.8.1" data-path="../appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.html">
<a href="../appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.html">
<b>9.8.1.</b>
Kubernetes 与云原生 2017 年年终总结及 2018 年展望
</a>
</li>
<li class="chapter " data-level="9.8.2" data-path="../appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html">
<a href="../appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html">
<b>9.8.2.</b>
Kubernetes 与云原生 2018 年年终总结及 2019 年展望
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="9.9" data-path="../appendix/cncf-annual-report.html">
<a href="../appendix/cncf-annual-report.html">
<b>9.9.</b>
CNCF 年度报告解读
</a>
<ul class="articles">
<li class="chapter " data-level="9.9.1" data-path="../appendix/cncf-annual-report-2018.html">
<a href="../appendix/cncf-annual-report-2018.html">
<b>9.9.1.</b>
CNCF 2018 年年度报告解读
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="9.10" data-path="../appendix/about-kcsp.html">
<a href="../appendix/about-kcsp.html">
<b>9.10.</b>
Kubernetes 认证服务提供商KCSP说明
</a>
</li>
<li class="chapter " data-level="9.11" data-path="../appendix/about-cka-candidate.html">
<a href="../appendix/about-cka-candidate.html">
<b>9.11.</b>
认证 Kubernetes 管理员CKA说明
</a>
</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 中的网络解析 —— 以 flannel 为例</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&#x4E2D;&#x7684;&#x7F51;&#x7EDC;&#x89E3;&#x6790;&#x2014;&#x2014;&#x4EE5;flannel&#x4E3A;&#x4F8B;">Kubernetes&#x4E2D;&#x7684;&#x7F51;&#x7EDC;&#x89E3;&#x6790;&#x2014;&#x2014;&#x4EE5;flannel&#x4E3A;&#x4F8B;</h1>
<p>&#x6211;&#x4EEC;&#x5F53;&#x521D;&#x4F7F;&#x7528;<a href="https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster" target="_blank">kubernetes-vagrant-centos-cluster</a>&#x5B89;&#x88C5;&#x4E86;&#x62E5;&#x6709;&#x4E09;&#x4E2A;&#x8282;&#x70B9;&#x7684;kubernetes&#x96C6;&#x7FA4;&#xFF0C;&#x8282;&#x70B9;&#x7684;&#x72B6;&#x6001;&#x5982;&#x4E0B;&#x6240;&#x8FF0;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># kubectl get nodes -o wide</span>
NAME STATUS ROLES AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node1 Ready <span class="token operator">&lt;</span>none<span class="token operator">&gt;</span> 2d v1.9.1 <span class="token operator">&lt;</span>none<span class="token operator">&gt;</span> CentOS Linux <span class="token number">7</span> <span class="token punctuation">(</span>Core<span class="token punctuation">)</span> <span class="token number">3.10</span>.0-693.11.6.el7.x86_64 docker://1.12.6
node2 Ready <span class="token operator">&lt;</span>none<span class="token operator">&gt;</span> 2d v1.9.1 <span class="token operator">&lt;</span>none<span class="token operator">&gt;</span> CentOS Linux <span class="token number">7</span> <span class="token punctuation">(</span>Core<span class="token punctuation">)</span> <span class="token number">3.10</span>.0-693.11.6.el7.x86_64 docker://1.12.6
node3 Ready <span class="token operator">&lt;</span>none<span class="token operator">&gt;</span> 2d v1.9.1 <span class="token operator">&lt;</span>none<span class="token operator">&gt;</span> CentOS Linux <span class="token number">7</span> <span class="token punctuation">(</span>Core<span class="token punctuation">)</span> <span class="token number">3.10</span>.0-693.11.6.el7.x86_64 docker://1.12.6
</code></pre>
<p>&#x5F53;&#x524D;Kubernetes&#x96C6;&#x7FA4;&#x4E2D;&#x8FD0;&#x884C;&#x7684;&#x6240;&#x6709;Pod&#x4FE1;&#x606F;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># kubectl get pods --all-namespaces -o wide</span>
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
kube-system coredns-5984fb8cbb-sjqv9 <span class="token number">1</span>/1 Running <span class="token number">0</span> 1h <span class="token number">172.33</span>.68.2 node1
kube-system coredns-5984fb8cbb-tkfrc <span class="token number">1</span>/1 Running <span class="token number">1</span> 1h <span class="token number">172.33</span>.96.3 node3
kube-system heapster-v1.5.0-684c7f9488-z6sdz <span class="token number">4</span>/4 Running <span class="token number">0</span> 1h <span class="token number">172.33</span>.31.3 node2
kube-system kubernetes-dashboard-6b66b8b96c-mnm2c <span class="token number">1</span>/1 Running <span class="token number">0</span> 1h <span class="token number">172.33</span>.31.2 node2
kube-system monitoring-influxdb-grafana-v4-54b7854697-tw9cd <span class="token number">2</span>/2 Running <span class="token number">2</span> 1h <span class="token number">172.33</span>.96.2 node3
</code></pre>
<p>&#x5F53;&#x524D;etcd&#x4E2D;&#x7684;&#x6CE8;&#x518C;&#x7684;&#x5BBF;&#x4E3B;&#x673A;&#x7684;pod&#x5730;&#x5740;&#x7F51;&#x6BB5;&#x4FE1;&#x606F;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># etcdctl ls /kube-centos/network/subnets</span>
/kube-centos/network/subnets/172.33.68.0-24
/kube-centos/network/subnets/172.33.31.0-24
/kube-centos/network/subnets/172.33.96.0-24
</code></pre>
<p>&#x800C;&#x6BCF;&#x4E2A;node&#x4E0A;&#x7684;Pod&#x5B50;&#x7F51;&#x662F;&#x6839;&#x636E;&#x6211;&#x4EEC;&#x5728;&#x5B89;&#x88C5;flannel&#x65F6;&#x914D;&#x7F6E;&#x6765;&#x5212;&#x5206;&#x7684;&#xFF0C;&#x5728;etcd&#x4E2D;&#x67E5;&#x770B;&#x8BE5;&#x914D;&#x7F6E;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># etcdctl get /kube-centos/network/config</span>
<span class="token punctuation">{</span><span class="token string">&quot;Network&quot;</span><span class="token builtin class-name">:</span><span class="token string">&quot;172.33.0.0/16&quot;</span>,<span class="token string">&quot;SubnetLen&quot;</span>:24,<span class="token string">&quot;Backend&quot;</span>:<span class="token punctuation">{</span><span class="token string">&quot;Type&quot;</span><span class="token builtin class-name">:</span><span class="token string">&quot;host-gw&quot;</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
</code></pre>
<p>&#x6211;&#x4EEC;&#x77E5;&#x9053;Kubernetes&#x96C6;&#x7FA4;&#x5185;&#x90E8;&#x5B58;&#x5728;&#x4E09;&#x7C7B;IP&#xFF0C;&#x5206;&#x522B;&#x662F;&#xFF1A;</p>
<ul>
<li>Node IP&#xFF1A;&#x5BBF;&#x4E3B;&#x673A;&#x7684;IP&#x5730;&#x5740;</li>
<li>Pod IP&#xFF1A;&#x4F7F;&#x7528;&#x7F51;&#x7EDC;&#x63D2;&#x4EF6;&#x521B;&#x5EFA;&#x7684;IP&#xFF08;&#x5982;flannel&#xFF09;&#xFF0C;&#x4F7F;&#x8DE8;&#x4E3B;&#x673A;&#x7684;Pod&#x53EF;&#x4EE5;&#x4E92;&#x901A;</li>
<li>Cluster IP&#xFF1A;&#x865A;&#x62DF;IP&#xFF0C;&#x901A;&#x8FC7;iptables&#x89C4;&#x5219;&#x8BBF;&#x95EE;&#x670D;&#x52A1;</li>
</ul>
<p>&#x5728;&#x5B89;&#x88C5;node&#x8282;&#x70B9;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x8282;&#x70B9;&#x4E0A;&#x7684;&#x8FDB;&#x7A0B;&#x662F;&#x6309;&#x7167;flannel -&gt; docker -&gt; kubelet -&gt; kube-proxy&#x7684;&#x987A;&#x5E8F;&#x542F;&#x52A8;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x4E0B;&#x9762;&#x4E5F;&#x4F1A;&#x6309;&#x7167;&#x8BE5;&#x987A;&#x5E8F;&#x6765;&#x8BB2;&#x89E3;&#xFF0C;flannel&#x7684;&#x7F51;&#x7EDC;&#x5212;&#x5206;&#x548C;&#x5982;&#x4F55;&#x4E0E;docker&#x4EA4;&#x4E92;&#xFF0C;&#x5982;&#x4F55;&#x901A;&#x8FC7;iptables&#x8BBF;&#x95EE;service&#x3002;</p>
<h3 id="flannel">Flannel</h3>
<p>Flannel&#x662F;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#x7684;&#x65B9;&#x5F0F;&#x90E8;&#x7F72;&#x5728;&#x6BCF;&#x4E2A;node&#x4E0A;&#xFF0C;&#x4E3B;&#x8981;&#x5B9E;&#x73B0;&#x4E24;&#x4E2A;&#x529F;&#x80FD;&#xFF1A;</p>
<ul>
<li>&#x4E3A;&#x6BCF;&#x4E2A;node&#x5206;&#x914D;subnet&#xFF0C;&#x5BB9;&#x5668;&#x5C06;&#x81EA;&#x52A8;&#x4ECE;&#x8BE5;&#x5B50;&#x7F51;&#x4E2D;&#x83B7;&#x53D6;IP&#x5730;&#x5740;</li>
<li>&#x5F53;&#x6709;node&#x52A0;&#x5165;&#x5230;&#x7F51;&#x7EDC;&#x4E2D;&#x65F6;&#xFF0C;&#x4E3A;&#x6BCF;&#x4E2A;node&#x589E;&#x52A0;&#x8DEF;&#x7531;&#x914D;&#x7F6E;</li>
</ul>
<p>&#x4E0B;&#x9762;&#x662F;&#x4F7F;&#x7528;<code>host-gw</code> backend&#x7684;flannel&#x7F51;&#x7EDC;&#x67B6;&#x6784;&#x56FE;&#xFF1A;</p>
<figure id="fig3.2.1.1"><a href="../images/flannel-networking.png" data-lightbox="3f416b12-af11-4f22-965f-d1e6c2ee96b6" data-title="flannel&#x7F51;&#x7EDC;&#x67B6;&#x6784;&#xFF08;&#x56FE;&#x7247;&#x6765;&#x81EA;openshift&#xFF09;"><img src="../images/flannel-networking.png" alt="flannel&#x7F51;&#x7EDC;&#x67B6;&#x6784;&#xFF08;&#x56FE;&#x7247;&#x6765;&#x81EA;openshift&#xFF09;"></a><figcaption>&#x56FE; 3.2.1.1&#xFF1A;flannel&#x7F51;&#x7EDC;&#x67B6;&#x6784;&#xFF08;&#x56FE;&#x7247;&#x6765;&#x81EA;openshift&#xFF09;</figcaption></figure>
<p><strong>&#x6CE8;&#x610F;</strong>&#xFF1A;&#x4EE5;&#x4E0A;IP&#x975E;&#x672C;&#x793A;&#x4F8B;&#x4E2D;&#x7684;IP&#xFF0C;&#x4F46;&#x662F;&#x4E0D;&#x5F71;&#x54CD;&#x8BFB;&#x8005;&#x7406;&#x89E3;&#x3002;</p>
<p>Node1&#x4E0A;&#x7684;flannel&#x914D;&#x7F6E;&#x5982;&#x4E0B;:</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># cat /usr/lib/systemd/system/flanneld.service</span>
<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span>
<span class="token assign-left variable">Description</span><span class="token operator">=</span>Flanneld overlay address etcd agent
<span class="token assign-left variable">After</span><span class="token operator">=</span>network.target
<span class="token assign-left variable">After</span><span class="token operator">=</span>network-online.target
<span class="token assign-left variable">Wants</span><span class="token operator">=</span>network-online.target
<span class="token assign-left variable">After</span><span class="token operator">=</span>etcd.service
<span class="token assign-left variable">Before</span><span class="token operator">=</span>docker.service
<span class="token punctuation">[</span>Service<span class="token punctuation">]</span>
<span class="token assign-left variable">Type</span><span class="token operator">=</span>notify
<span class="token assign-left variable">EnvironmentFile</span><span class="token operator">=</span>/etc/sysconfig/flanneld
<span class="token assign-left variable">EnvironmentFile</span><span class="token operator">=</span>-/etc/sysconfig/docker-network
<span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/flanneld-start <span class="token variable">$FLANNEL_OPTIONS</span>
<span class="token assign-left variable">ExecStartPost</span><span class="token operator">=</span>/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
<span class="token assign-left variable">Restart</span><span class="token operator">=</span>on-failure
<span class="token punctuation">[</span>Install<span class="token punctuation">]</span>
<span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target
<span class="token assign-left variable">RequiredBy</span><span class="token operator">=</span>docker.service
</code></pre>
<p>&#x5176;&#x4E2D;&#x6709;&#x4E24;&#x4E2A;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x6587;&#x4EF6;&#x7684;&#x914D;&#x7F6E;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># cat /etc/sysconfig/flanneld</span>
<span class="token comment"># Flanneld configuration options</span>
<span class="token assign-left variable">FLANNEL_ETCD_ENDPOINTS</span><span class="token operator">=</span><span class="token string">&quot;http://172.17.8.101:2379&quot;</span>
<span class="token assign-left variable">FLANNEL_ETCD_PREFIX</span><span class="token operator">=</span><span class="token string">&quot;/kube-centos/network&quot;</span>
<span class="token assign-left variable">FLANNEL_OPTIONS</span><span class="token operator">=</span><span class="token string">&quot;-iface=eth2&quot;</span>
</code></pre>
<p>&#x4E0A;&#x9762;&#x7684;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x4EC5;&#x4F9B;flanneld&#x4F7F;&#x7528;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># cat /etc/sysconfig/docker-network</span>
<span class="token comment"># /etc/sysconfig/docker-network</span>
<span class="token assign-left variable">DOCKER_NETWORK_OPTIONS</span><span class="token operator">=</span>
</code></pre>
<p>&#x8FD8;&#x6709;&#x4E00;&#x4E2A;<code>ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker</code>&#xFF0C;&#x5176;&#x4E2D;&#x7684;<code>/usr/libexec/flannel/mk-docker-opts.sh</code>&#x811A;&#x672C;&#x662F;&#x5728;flanneld&#x542F;&#x52A8;&#x540E;&#x8FD0;&#x884C;&#xFF0C;&#x5C06;&#x4F1A;&#x751F;&#x6210;&#x4E24;&#x4E2A;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#xFF1A;</p>
<ul>
<li>/run/flannel/docker</li>
<li>/run/flannel/subnet.env</li>
</ul>
<p>&#x6211;&#x4EEC;&#x518D;&#x6765;&#x770B;&#x4E0B;<code>/run/flannel/docker</code>&#x7684;&#x914D;&#x7F6E;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># cat /run/flannel/docker</span>
<span class="token assign-left variable">DOCKER_OPT_BIP</span><span class="token operator">=</span><span class="token string">&quot;--bip=172.33.68.1/24&quot;</span>
<span class="token assign-left variable">DOCKER_OPT_IPMASQ</span><span class="token operator">=</span><span class="token string">&quot;--ip-masq=true&quot;</span>
<span class="token assign-left variable">DOCKER_OPT_MTU</span><span class="token operator">=</span><span class="token string">&quot;--mtu=1500&quot;</span>
<span class="token assign-left variable">DOCKER_NETWORK_OPTIONS</span><span class="token operator">=</span><span class="token string">&quot; --bip=172.33.68.1/24 --ip-masq=true --mtu=1500&quot;</span>
</code></pre>
<p>&#x5982;&#x679C;&#x4F60;&#x4F7F;&#x7528;<code>systemctl</code>&#x547D;&#x4EE4;&#x5148;&#x542F;&#x52A8;flannel&#x540E;&#x542F;&#x52A8;docker&#x7684;&#x8BDD;&#xFF0C;docker&#x5C06;&#x4F1A;&#x8BFB;&#x53D6;&#x4EE5;&#x4E0A;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x518D;&#x6765;&#x770B;&#x4E0B;<code>/run/flannel/subnet.env</code>&#x7684;&#x914D;&#x7F6E;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># cat /run/flannel/subnet.env</span>
<span class="token assign-left variable">FLANNEL_NETWORK</span><span class="token operator">=</span><span class="token number">172.33</span>.0.0/16
<span class="token assign-left variable">FLANNEL_SUBNET</span><span class="token operator">=</span><span class="token number">172.33</span>.68.1/24
<span class="token assign-left variable">FLANNEL_MTU</span><span class="token operator">=</span><span class="token number">1500</span>
<span class="token assign-left variable">FLANNEL_IPMASQ</span><span class="token operator">=</span>false
</code></pre>
<p>&#x4EE5;&#x4E0A;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x662F;flannel&#x5411;etcd&#x4E2D;&#x6CE8;&#x518C;&#x7684;&#x3002;</p>
<h3 id="docker">Docker</h3>
<p>Node1&#x7684;docker&#x914D;&#x7F6E;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># cat /usr/lib/systemd/system/docker.service</span>
<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span>
<span class="token assign-left variable">Description</span><span class="token operator">=</span>Docker Application Container Engine
<span class="token assign-left variable">Documentation</span><span class="token operator">=</span>http://docs.docker.com
<span class="token assign-left variable">After</span><span class="token operator">=</span>network.target rhel-push-plugin.socket registries.service
<span class="token assign-left variable">Wants</span><span class="token operator">=</span>docker-storage-setup.service
<span class="token assign-left variable">Requires</span><span class="token operator">=</span>docker-cleanup.timer
<span class="token punctuation">[</span>Service<span class="token punctuation">]</span>
<span class="token assign-left variable">Type</span><span class="token operator">=</span>notify
<span class="token assign-left variable">NotifyAccess</span><span class="token operator">=</span>all
<span class="token assign-left variable">EnvironmentFile</span><span class="token operator">=</span>-/run/containers/registries.conf
<span class="token assign-left variable">EnvironmentFile</span><span class="token operator">=</span>-/etc/sysconfig/docker
<span class="token assign-left variable">EnvironmentFile</span><span class="token operator">=</span>-/etc/sysconfig/docker-storage
<span class="token assign-left variable">EnvironmentFile</span><span class="token operator">=</span>-/etc/sysconfig/docker-network
<span class="token assign-left variable">Environment</span><span class="token operator">=</span>GOTRACEBACK<span class="token operator">=</span>crash
<span class="token assign-left variable">Environment</span><span class="token operator">=</span>DOCKER_HTTP_HOST_COMPAT<span class="token operator">=</span><span class="token number">1</span>
<span class="token assign-left variable">Environment</span><span class="token operator">=</span><span class="token environment constant">PATH</span><span class="token operator">=</span>/usr/libexec/docker:/usr/bin:/usr/sbin
<span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/dockerd-current <span class="token punctuation">\</span>
--add-runtime docker-runc<span class="token operator">=</span>/usr/libexec/docker/docker-runc-current <span class="token punctuation">\</span>
--default-runtime<span class="token operator">=</span>docker-runc <span class="token punctuation">\</span>
--exec-opt native.cgroupdriver<span class="token operator">=</span>systemd <span class="token punctuation">\</span>
--userland-proxy-path<span class="token operator">=</span>/usr/libexec/docker/docker-proxy-current <span class="token punctuation">\</span>
<span class="token variable">$OPTIONS</span> <span class="token punctuation">\</span>
<span class="token variable">$DOCKER_STORAGE_OPTIONS</span> <span class="token punctuation">\</span>
<span class="token variable">$DOCKER_NETWORK_OPTIONS</span> <span class="token punctuation">\</span>
<span class="token variable">$ADD_REGISTRY</span> <span class="token punctuation">\</span>
<span class="token variable">$BLOCK_REGISTRY</span> <span class="token punctuation">\</span>
<span class="token variable">$INSECURE_REGISTRY</span><span class="token punctuation">\</span>
<span class="token variable">$REGISTRIES</span>
<span class="token assign-left variable">ExecReload</span><span class="token operator">=</span>/bin/kill -s HUP <span class="token variable">$MAINPID</span>
<span class="token assign-left variable">LimitNOFILE</span><span class="token operator">=</span><span class="token number">1048576</span>
<span class="token assign-left variable">LimitNPROC</span><span class="token operator">=</span><span class="token number">1048576</span>
<span class="token assign-left variable">LimitCORE</span><span class="token operator">=</span>infinity
<span class="token assign-left variable">TimeoutStartSec</span><span class="token operator">=</span><span class="token number">0</span>
<span class="token assign-left variable">Restart</span><span class="token operator">=</span>on-abnormal
<span class="token assign-left variable">MountFlags</span><span class="token operator">=</span>slave
<span class="token assign-left variable">KillMode</span><span class="token operator">=</span>process
<span class="token punctuation">[</span>Install<span class="token punctuation">]</span>
<span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target
</code></pre>
<p>&#x67E5;&#x770B;Node1&#x4E0A;&#x7684;docker&#x542F;&#x52A8;&#x53C2;&#x6570;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># systemctl status -l docker</span>
&#x25CF; docker.service - Docker Application Container Engine
Loaded: loaded <span class="token punctuation">(</span>/usr/lib/systemd/system/docker.service<span class="token punctuation">;</span> enabled<span class="token punctuation">;</span> vendor preset: disabled<span class="token punctuation">)</span>
Drop-In: /usr/lib/systemd/system/docker.service.d
&#x2514;&#x2500;flannel.conf
Active: active <span class="token punctuation">(</span>running<span class="token punctuation">)</span> since Fri <span class="token number">2018</span>-02-02 <span class="token number">22</span>:52:43 CST<span class="token punctuation">;</span> 2h 28min ago
Docs: http://docs.docker.com
Main PID: <span class="token number">4334</span> <span class="token punctuation">(</span>dockerd-current<span class="token punctuation">)</span>
CGroup: /system.slice/docker.service
&#x2023; <span class="token number">4334</span> /usr/bin/dockerd-current --add-runtime docker-runc<span class="token operator">=</span>/usr/libexec/docker/docker-runc-current --default-runtime<span class="token operator">=</span>docker-runc --exec-opt native.cgroupdriver<span class="token operator">=</span>systemd --userland-proxy-path<span class="token operator">=</span>/usr/libexec/docker/docker-proxy-current --selinux-enabled --log-driver<span class="token operator">=</span>journald --signature-verification<span class="token operator">=</span>false --bip<span class="token operator">=</span><span class="token number">172.33</span>.68.1/24 --ip-masq<span class="token operator">=</span>true --mtu<span class="token operator">=</span><span class="token number">1500</span>
</code></pre>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x5728;docker&#x5728;&#x542F;&#x52A8;&#x65F6;&#x6709;&#x5982;&#x4E0B;&#x53C2;&#x6570;&#xFF1A;<code>--bip=172.33.68.1/24 --ip-masq=true --mtu=1500</code>&#x3002;&#x4E0A;&#x8FF0;&#x53C2;&#x6570;flannel&#x542F;&#x52A8;&#x65F6;&#x8FD0;&#x884C;&#x7684;&#x811A;&#x672C;&#x751F;&#x6210;&#x7684;&#xFF0C;&#x901A;&#x8FC7;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x4F20;&#x9012;&#x8FC7;&#x6765;&#x7684;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x67E5;&#x770B;&#x4E0B;node1&#x5BBF;&#x4E3B;&#x673A;&#x4E0A;&#x7684;&#x7F51;&#x7EDC;&#x63A5;&#x53E3;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># ip addr</span>
<span class="token number">1</span>: lo: <span class="token operator">&lt;</span>LOOPBACK,UP,LOWER_UP<span class="token operator">&gt;</span> mtu <span class="token number">65536</span> qdisc noqueue state UNKNOWN qlen <span class="token number">1</span>
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet <span class="token number">127.0</span>.0.1/8 scope <span class="token function">host</span> lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope <span class="token function">host</span>
valid_lft forever preferred_lft forever
<span class="token number">2</span>: eth0: <span class="token operator">&lt;</span>BROADCAST,MULTICAST,UP,LOWER_UP<span class="token operator">&gt;</span> mtu <span class="token number">1500</span> qdisc pfifo_fast state UP qlen <span class="token number">1000</span>
link/ether <span class="token number">52</span>:54:00:00:57:32 brd ff:ff:ff:ff:ff:ff
inet <span class="token number">10.0</span>.2.15/24 brd <span class="token number">10.0</span>.2.255 scope global dynamic eth0
valid_lft 85095sec preferred_lft 85095sec
inet6 fe80::5054:ff:fe00:5732/64 scope <span class="token function">link</span>
valid_lft forever preferred_lft forever
<span class="token number">3</span>: eth1: <span class="token operator">&lt;</span>BROADCAST,MULTICAST,UP,LOWER_UP<span class="token operator">&gt;</span> mtu <span class="token number">1500</span> qdisc pfifo_fast state UP qlen <span class="token number">1000</span>
link/ether 08:00:27:7b:0f:b1 brd ff:ff:ff:ff:ff:ff
inet <span class="token number">172.17</span>.8.101/24 brd <span class="token number">172.17</span>.8.255 scope global eth1
valid_lft forever preferred_lft forever
<span class="token number">4</span>: eth2: <span class="token operator">&lt;</span>BROADCAST,MULTICAST,UP,LOWER_UP<span class="token operator">&gt;</span> mtu <span class="token number">1500</span> qdisc pfifo_fast state UP qlen <span class="token number">1000</span>
link/ether 08:00:27:ef:25:06 brd ff:ff:ff:ff:ff:ff
inet <span class="token number">172.30</span>.113.231/21 brd <span class="token number">172.30</span>.119.255 scope global dynamic eth2
valid_lft 85096sec preferred_lft 85096sec
inet6 fe80::a00:27ff:feef:2506/64 scope <span class="token function">link</span>
valid_lft forever preferred_lft forever
<span class="token number">5</span>: docker0: <span class="token operator">&lt;</span>BROADCAST,MULTICAST,UP,LOWER_UP<span class="token operator">&gt;</span> mtu <span class="token number">1500</span> qdisc noqueue state UP
link/ether 02:42:d0:ae:80:ea brd ff:ff:ff:ff:ff:ff
inet <span class="token number">172.33</span>.68.1/24 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:d0ff:feae:80ea/64 scope <span class="token function">link</span>
valid_lft forever preferred_lft forever
<span class="token number">7</span>: veth295bef2@if6: <span class="token operator">&lt;</span>BROADCAST,MULTICAST,UP,LOWER_UP<span class="token operator">&gt;</span> mtu <span class="token number">1500</span> qdisc noqueue master docker0 state UP
link/ether 6a:72:d7:9f:29:19 brd ff:ff:ff:ff:ff:ff link-netnsid <span class="token number">0</span>
inet6 fe80::6872:d7ff:fe9f:2919/64 scope <span class="token function">link</span>
valid_lft forever preferred_lft forever
</code></pre>
<p>&#x6211;&#x4EEC;&#x5206;&#x7C7B;&#x6765;&#x89E3;&#x91CA;&#x4E0B;&#x8BE5;&#x865A;&#x62DF;&#x673A;&#x4E2D;&#x7684;&#x7F51;&#x7EDC;&#x63A5;&#x53E3;&#x3002;</p>
<ul>
<li>lo&#xFF1A;&#x56DE;&#x73AF;&#x7F51;&#x7EDC;&#xFF0C;127.0.0.1</li>
<li>eth0&#xFF1A;NAT&#x7F51;&#x7EDC;&#xFF0C;&#x865A;&#x62DF;&#x673A;&#x521B;&#x5EFA;&#x65F6;&#x81EA;&#x52A8;&#x5206;&#x914D;&#xFF0C;&#x4EC5;&#x53EF;&#x4EE5;&#x5728;&#x51E0;&#x53F0;&#x865A;&#x62DF;&#x673A;&#x4E4B;&#x95F4;&#x8BBF;&#x95EE;</li>
<li>eth1&#xFF1A;bridge&#x7F51;&#x7EDC;&#xFF0C;&#x4F7F;&#x7528;vagrant&#x5206;&#x914D;&#x7ED9;&#x865A;&#x62DF;&#x673A;&#x7684;&#x5730;&#x5740;&#xFF0C;&#x865A;&#x62DF;&#x673A;&#x4E4B;&#x95F4;&#x548C;&#x672C;&#x5730;&#x7535;&#x8111;&#x90FD;&#x53EF;&#x4EE5;&#x8BBF;&#x95EE;</li>
<li>eth2&#xFF1A;bridge&#x7F51;&#x7EDC;&#xFF0C;&#x4F7F;&#x7528;DHCP&#x5206;&#x914D;&#xFF0C;&#x7528;&#x4E8E;&#x8BBF;&#x95EE;&#x4E92;&#x8054;&#x7F51;&#x7684;&#x7F51;&#x5361;</li>
<li>docker0&#xFF1A;bridge&#x7F51;&#x7EDC;&#xFF0C;docker&#x9ED8;&#x8BA4;&#x4F7F;&#x7528;&#x7684;&#x7F51;&#x5361;&#xFF0C;&#x4F5C;&#x4E3A;&#x8BE5;&#x8282;&#x70B9;&#x4E0A;&#x6240;&#x6709;&#x5BB9;&#x5668;&#x7684;&#x865A;&#x62DF;&#x4EA4;&#x6362;&#x673A;</li>
<li>veth295bef2@if6&#xFF1A;veth pair&#xFF0C;&#x8FDE;&#x63A5;docker0&#x548C;Pod&#x4E2D;&#x7684;&#x5BB9;&#x5668;&#x3002;veth pair&#x53EF;&#x4EE5;&#x7406;&#x89E3;&#x4E3A;&#x4F7F;&#x7528;&#x7F51;&#x7EBF;&#x8FDE;&#x63A5;&#x597D;&#x7684;&#x4E24;&#x4E2A;&#x63A5;&#x53E3;&#xFF0C;&#x628A;&#x4E24;&#x4E2A;&#x7AEF;&#x53E3;&#x653E;&#x5230;&#x4E24;&#x4E2A;namespace&#x4E2D;&#xFF0C;&#x90A3;&#x4E48;&#x8FD9;&#x4E24;&#x4E2A;namespace&#x5C31;&#x80FD;&#x6253;&#x901A;&#x3002;&#x53C2;&#x8003;<a href="http://cizixs.com/2017/02/10/network-virtualization-network-namespace" target="_blank">linux &#x7F51;&#x7EDC;&#x865A;&#x62DF;&#x5316;&#xFF1A; network namespace &#x7B80;&#x4ECB;</a>&#x3002;</li>
</ul>
<p>&#x6211;&#x4EEC;&#x518D;&#x770B;&#x4E0B;&#x8BE5;&#x8282;&#x70B9;&#x7684;docker&#x4E0A;&#x6709;&#x54EA;&#x4E9B;&#x7F51;&#x7EDC;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># docker network ls</span>
NETWORK ID NAME DRIVER SCOPE
940bb75e653b bridge bridge <span class="token builtin class-name">local</span>
d94c046e105d <span class="token function">host</span> <span class="token function">host</span> <span class="token builtin class-name">local</span>
2db7597fd546 none null <span class="token builtin class-name">local</span>
</code></pre>
<p>&#x518D;&#x68C0;&#x67E5;&#x4E0B;bridge&#x7F51;&#x7EDC;<code>940bb75e653b</code>&#x7684;&#x4FE1;&#x606F;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># docker network inspect 940bb75e653b</span>
<span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">&quot;Name&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;bridge&quot;</span>,
<span class="token string">&quot;Id&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;940bb75e653bfa10dab4cce8813c2b3ce17501e4e4935f7dc13805a61b732d2c&quot;</span>,
<span class="token string">&quot;Scope&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;local&quot;</span>,
<span class="token string">&quot;Driver&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;bridge&quot;</span>,
<span class="token string">&quot;EnableIPv6&quot;</span><span class="token builtin class-name">:</span> false,
<span class="token string">&quot;IPAM&quot;</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;Driver&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;default&quot;</span>,
<span class="token string">&quot;Options&quot;</span><span class="token builtin class-name">:</span> null,
<span class="token string">&quot;Config&quot;</span><span class="token builtin class-name">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">&quot;Subnet&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;172.33.68.1/24&quot;</span>,
<span class="token string">&quot;Gateway&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;172.33.68.1&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>,
<span class="token string">&quot;Internal&quot;</span><span class="token builtin class-name">:</span> false,
<span class="token string">&quot;Containers&quot;</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;944d4aa660e30e1be9a18d30c9dcfa3b0504d1e5dbd00f3004b76582f1c9a85b&quot;</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;Name&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;k8s_POD_coredns-5984fb8cbb-sjqv9_kube-system_c5a2e959-082a-11e8-b4cd-525400005732_0&quot;</span>,
<span class="token string">&quot;EndpointID&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;7397d7282e464fc4ec5756d6b328df889cdf46134dbbe3753517e175d3844a85&quot;</span>,
<span class="token string">&quot;MacAddress&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;02:42:ac:21:44:02&quot;</span>,
<span class="token string">&quot;IPv4Address&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;172.33.68.2/24&quot;</span>,
<span class="token string">&quot;IPv6Address&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>,
<span class="token string">&quot;Options&quot;</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;com.docker.network.bridge.default_bridge&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;true&quot;</span>,
<span class="token string">&quot;com.docker.network.bridge.enable_icc&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;true&quot;</span>,
<span class="token string">&quot;com.docker.network.bridge.enable_ip_masquerade&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;true&quot;</span>,
<span class="token string">&quot;com.docker.network.bridge.host_binding_ipv4&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;0.0.0.0&quot;</span>,
<span class="token string">&quot;com.docker.network.bridge.name&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;docker0&quot;</span>,
<span class="token string">&quot;com.docker.network.driver.mtu&quot;</span><span class="token builtin class-name">:</span> <span class="token string">&quot;1500&quot;</span>
<span class="token punctuation">}</span>,
<span class="token string">&quot;Labels&quot;</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
</code></pre>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x8BE5;&#x7F51;&#x7EDC;&#x4E2D;&#x7684;<code>Config</code>&#x4E0E;docker&#x7684;&#x542F;&#x52A8;&#x914D;&#x7F6E;&#x76F8;&#x7B26;&#x3002;</p>
<p>Node1&#x4E0A;&#x8FD0;&#x884C;&#x7684;&#x5BB9;&#x5668;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># docker ps</span>
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a37407a234dd docker.io/coredns/coredns@sha256:adf2e5b4504ef9ffa43f16010bd064273338759e92f6f616dd159115748799bc <span class="token string">&quot;/coredns -conf /etc/&quot;</span> About an hour ago Up About an hour k8s_coredns_coredns-5984fb8cbb-sjqv9_kube-system_c5a2e959-082a-11e8-b4cd-525400005732_0
944d4aa660e3 docker.io/openshift/origin-pod <span class="token string">&quot;/usr/bin/pod&quot;</span> About an hour ago Up About an hour k8s_POD_coredns-5984fb8cbb-sjqv9_kube-system_c5a2e959-082a-11e8-b4cd-525400005732_0
</code></pre>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x5F53;&#x524D;&#x5DF2;&#x7ECF;&#x6709;2&#x4E2A;&#x5BB9;&#x5668;&#x5728;&#x8FD0;&#x884C;&#x3002;</p>
<p>Node1&#x4E0A;&#x7684;&#x8DEF;&#x7531;&#x4FE1;&#x606F;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># route -n</span>
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
<span class="token number">0.0</span>.0.0 <span class="token number">10.0</span>.2.2 <span class="token number">0.0</span>.0.0 UG <span class="token number">100</span> <span class="token number">0</span> <span class="token number">0</span> eth0
<span class="token number">0.0</span>.0.0 <span class="token number">172.30</span>.116.1 <span class="token number">0.0</span>.0.0 UG <span class="token number">101</span> <span class="token number">0</span> <span class="token number">0</span> eth2
<span class="token number">10.0</span>.2.0 <span class="token number">0.0</span>.0.0 <span class="token number">255.255</span>.255.0 U <span class="token number">100</span> <span class="token number">0</span> <span class="token number">0</span> eth0
<span class="token number">172.17</span>.8.0 <span class="token number">0.0</span>.0.0 <span class="token number">255.255</span>.255.0 U <span class="token number">100</span> <span class="token number">0</span> <span class="token number">0</span> eth1
<span class="token number">172.30</span>.112.0 <span class="token number">0.0</span>.0.0 <span class="token number">255.255</span>.248.0 U <span class="token number">100</span> <span class="token number">0</span> <span class="token number">0</span> eth2
<span class="token number">172.33</span>.68.0 <span class="token number">0.0</span>.0.0 <span class="token number">255.255</span>.255.0 U <span class="token number">0</span> <span class="token number">0</span> <span class="token number">0</span> docker0
<span class="token number">172.33</span>.96.0 <span class="token number">172.30</span>.118.65 <span class="token number">255.255</span>.255.0 UG <span class="token number">0</span> <span class="token number">0</span> <span class="token number">0</span> eth2
</code></pre>
<p>&#x4EE5;&#x4E0A;&#x8DEF;&#x7531;&#x4FE1;&#x606F;&#x662F;&#x7531;flannel&#x6DFB;&#x52A0;&#x7684;&#xFF0C;&#x5F53;&#x6709;&#x65B0;&#x7684;&#x8282;&#x70B9;&#x52A0;&#x5165;&#x5230;Kubernetes&#x96C6;&#x7FA4;&#x4E2D;&#x540E;&#xFF0C;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x7684;&#x8DEF;&#x7531;&#x8868;&#x90FD;&#x5C06;&#x589E;&#x52A0;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x5728;node&#x4E0A;&#x6765;<code>traceroute</code>&#x4E0B;node3&#x4E0A;&#x7684;<code>coredns-5984fb8cbb-tkfrc</code>&#x5BB9;&#x5668;&#xFF0C;&#x5176;IP&#x5730;&#x5740;&#x662F;<code>172.33.96.3</code>&#xFF0C;&#x770B;&#x770B;&#x5176;&#x8DEF;&#x7531;&#x4FE1;&#x606F;&#x3002;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># traceroute 172.33.96.3</span>
<span class="token function">traceroute</span> to <span class="token number">172.33</span>.96.3 <span class="token punctuation">(</span><span class="token number">172.33</span>.96.3<span class="token punctuation">)</span>, <span class="token number">30</span> hops max, <span class="token number">60</span> byte packets
<span class="token number">1</span> <span class="token number">172.30</span>.118.65 <span class="token punctuation">(</span><span class="token number">172.30</span>.118.65<span class="token punctuation">)</span> <span class="token number">0.518</span> ms <span class="token number">0.367</span> ms <span class="token number">0.398</span> ms
<span class="token number">2</span> <span class="token number">172.33</span>.96.3 <span class="token punctuation">(</span><span class="token number">172.33</span>.96.3<span class="token punctuation">)</span> <span class="token number">0.451</span> ms <span class="token number">0.352</span> ms <span class="token number">0.223</span> ms
</code></pre>
<p>&#x6211;&#x4EEC;&#x770B;&#x5230;&#x8DEF;&#x7531;&#x76F4;&#x63A5;&#x7ECF;&#x8FC7;node3&#x7684;&#x516C;&#x7F51;IP&#x540E;&#x5C31;&#x5230;&#x8FBE;&#x4E86;node3&#x8282;&#x70B9;&#x4E0A;&#x7684;Pod&#x3002;</p>
<p>Node1&#x7684;iptables&#x4FE1;&#x606F;&#xFF1A;</p>
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@node1 ~<span class="token punctuation">]</span><span class="token comment"># iptables -L</span>
Chain INPUT <span class="token punctuation">(</span>policy ACCEPT<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
KUBE-FIREWALL all -- anywhere anywhere
KUBE-SERVICES all -- anywhere anywhere /* kubernetes <span class="token function">service</span> portals */
Chain FORWARD <span class="token punctuation">(</span>policy ACCEPT<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
KUBE-FORWARD all -- anywhere anywhere /* kubernetes forward rules */
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT <span class="token punctuation">(</span>policy ACCEPT<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
KUBE-FIREWALL all -- anywhere anywhere
KUBE-SERVICES all -- anywhere anywhere /* kubernetes <span class="token function">service</span> portals */
Chain DOCKER <span class="token punctuation">(</span><span class="token number">1</span> references<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
Chain DOCKER-ISOLATION <span class="token punctuation">(</span><span class="token number">1</span> references<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
RETURN all -- anywhere anywhere
Chain KUBE-FIREWALL <span class="token punctuation">(</span><span class="token number">2</span> references<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
DROP all -- anywhere anywhere /* kubernetes firewall <span class="token keyword">for</span> dropping marked packets */ mark match 0x8000/0x8000
Chain KUBE-FORWARD <span class="token punctuation">(</span><span class="token number">1</span> references<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
ACCEPT all -- anywhere anywhere /* kubernetes forwarding rules */ mark match 0x4000/0x4000
ACCEPT all -- <span class="token number">10.254</span>.0.0/16 anywhere /* kubernetes forwarding conntrack pod <span class="token builtin class-name">source</span> rule */ ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere <span class="token number">10.254</span>.0.0/16 /* kubernetes forwarding conntrack pod destination rule */ ctstate RELATED,ESTABLISHED
Chain KUBE-SERVICES <span class="token punctuation">(</span><span class="token number">2</span> references<span class="token punctuation">)</span>
target prot opt <span class="token builtin class-name">source</span> destination
</code></pre>
<p>&#x4ECE;&#x4E0A;&#x9762;&#x7684;iptables&#x4E2D;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6CE8;&#x5165;&#x4E86;&#x5F88;&#x591A;Kuberentes service&#x7684;&#x89C4;&#x5219;&#x3002;</p>
<h2 id="&#x53C2;&#x8003;">&#x53C2;&#x8003;</h2>
<ul>
<li><a href="https://github.com/coreos/flannel" target="_blank">coreos/flannel - github.com</a></li>
<li><a href="http://cizixs.com/2017/02/10/network-virtualization-network-namespace" target="_blank">linux &#x7F51;&#x7EDC;&#x865A;&#x62DF;&#x5316;&#xFF1A; network namespace &#x7B80;&#x4ECB;</a></li>
<li><a href="https://segmentfault.com/a/1190000009251098" target="_blank">Linux&#x865A;&#x62DF;&#x7F51;&#x7EDC;&#x8BBE;&#x5907;&#x4E4B;veth</a></li>
<li><a href="http://hustcat.github.io/flannel-host-gw-network/" target="_blank">flannel host-gw network</a></li>
<li><a href="https://docs.openshift.com/container-platform/3.4/architecture/additional_concepts/flannel.html" target="_blank">flannel - openshift.com</a></li>
</ul>
<footer class="page-footer"><span class="copyright"><a href="https://cloudnative.to/contact/" target="_blank">&#x52A0;&#x5165;&#x4E91;&#x539F;&#x751F;&#x793E;&#x533A;&#xB7;&#x5171;&#x8C31;&#x4E91;&#x539F;&#x751F;&#x65B0;&#x7BC7;&#x7AE0;</a><p></p>Copyright &#xA9; 2017-2020 | Distributed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" target="_blank">CC BY 4.0</a> | <a href="https://jimmysong.io" target="_blank">jimmysong.io</a> all right reserved&#xFF0C;powered by Gitbook</span><span class="footer-modification"> Updated at
2020-06-22 07:18:58
</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="networking.html" class="navigation navigation-prev " aria-label="Previous page: Kubernetes 中的网络">
<i class="fa fa-angle-left"></i>
</a>
<a href="calico.html" class="navigation navigation-next " aria-label="Next page: Kubernetes 中的网络解析 —— 以 calico 为例">
<i class="fa fa-angle-right"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Kubernetes 中的网络解析 —— 以 flannel 为例","level":"3.2.1","depth":2,"next":{"title":"Kubernetes 中的网络解析 —— 以 calico 为例","level":"3.2.2","depth":2,"path":"concepts/calico.md","ref":"concepts/calico.md","articles":[]},"previous":{"title":"Kubernetes 中的网络","level":"3.2","depth":1,"path":"concepts/networking.md","ref":"concepts/networking.md","articles":[{"title":"Kubernetes 中的网络解析 —— 以 flannel 为例","level":"3.2.1","depth":2,"path":"concepts/flannel.md","ref":"concepts/flannel.md","articles":[]},{"title":"Kubernetes 中的网络解析 —— 以 calico 为例","level":"3.2.2","depth":2,"path":"concepts/calico.md","ref":"concepts/calico.md","articles":[]},{"title":"具备 API 感知的网络和安全性管理开源软件 Cilium","level":"3.2.3","depth":2,"path":"concepts/cilium.md","ref":"concepts/cilium.md","articles":[{"title":"Cilium 架构设计与概念解析","level":"3.2.3.1","depth":3,"path":"concepts/cilium-concepts.md","ref":"concepts/cilium-concepts.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","-highlight","prism","prism-themes","sitemap-general","lightbox","ga","copy-code-button","alerts"],"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":"<a href=https://cloudnative.to/contact/>加入云原生社区·共谱云原生新篇章</a></p>Copyright © 2017-2020 | Distributed under <a href=https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh>CC BY 4.0</a> | <a href=https://jimmysong.io>jimmysong.io</a>","modify_label":" Updated at ","modify_format":"YYYY-MM-DD HH:mm:ss"},"prism":{"css":["prism-themes/themes/prism-ghcolors.css"]},"github":{"url":"https://github.com/rootsongjc/kubernetes-handbook"},"editlink":{"label":"编辑本页","multilingual":false,"base":"https://github.com/rootsongjc/kubernetes-handbook/blob/master/"},"splitter":{},"codesnippet":{},"sitemap-general":{"prefix":"https://jimmysong.io/kubernetes-handbook/"},"fontsettings":{"theme":"white","family":"sans","size":2},"favicon":{"shortcut":"favicon.ico","bookmark":"favicon.ico"},"lightbox":{"jquery":true,"sameUuid":false},"page-toc-button":{},"back-to-top-button":{},"prism-themes":{},"alerts":{},"github-buttons":{"repo":"rootsongjc/kubernetes-handbook","types":["star"],"size":"small"},"3-ba":{"configuration":"auto","token":"11f7d254cfa4e0ca44b175c66d379ecc"},"copy-code-button":{},"ga":{"configuration":"auto","token":"UA-93485976-1"},"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":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__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":"index.html#fig1.1.1","level":"1.1","list_caption":"Figure: Stargazers over time","alt":"Stargazers over time","nro":1,"url":"https://starcharts.herokuapp.com/rootsongjc/kubernetes-handbook.svg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Stargazers over time","attributes":{},"skip":false,"key":"1.1.1"},{"backlink":"cloud-native/play-with-kubernetes.html#fig2.3.1","level":"2.3","list_caption":"Figure: Play with Kubernetes网页截图","alt":"Play with Kubernetes网页截图","nro":2,"url":"../images/play-with-kubernetes.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Play with Kubernetes网页截图","attributes":{},"skip":false,"key":"2.3.1"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.1","level":"2.4","list_caption":"Figure: Kubernetes dashboard","alt":"Kubernetes dashboard","nro":3,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/dashboard-animation.gif","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes dashboard","attributes":{},"skip":false,"key":"2.4.1"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.2","level":"2.4","list_caption":"Figure: Grafana","alt":"Grafana","nro":4,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/grafana-animation.gif","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana","attributes":{},"skip":false,"key":"2.4.2"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.3","level":"2.4","list_caption":"Figure: Traefik dashboard","alt":"Traefik dashboard","nro":5,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/traefik-ingress.gif","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Traefik dashboard","attributes":{},"skip":false,"key":"2.4.3"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.4","level":"2.4","list_caption":"Figure: bookinfo示例","alt":"bookinfo示例","nro":6,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/bookinfo-demo.gif","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"bookinfo示例","attributes":{},"skip":false,"key":"2.4.4"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.5","level":"2.4","list_caption":"Figure: vistio视图动画","alt":"vistio视图动画","nro":7,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/vistio-animation.gif","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"vistio视图动画","attributes":{},"skip":false,"key":"2.4.5"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.6","level":"2.4","list_caption":"Figure: Kiali页面","alt":"Kiali页面","nro":8,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/kiali.gif","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kiali页面","attributes":{},"skip":false,"key":"2.4.6"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.4.7","level":"2.4","list_caption":"Figure: Scope页面","alt":"Scope页面","nro":9,"url":"https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster/raw/master/images/weave-scope-animation.gif","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Scope页面","attributes":{},"skip":false,"key":"2.4.7"},{"backlink":"cloud-native/setup-kubernetes-with-rancher-and-aliyun.html#fig2.5.1","level":"2.5","list_caption":"Figure: Rancher 界面","alt":"Rancher 界面","nro":10,"url":"../images/rancher-web.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Rancher 界面","attributes":{},"skip":false,"key":"2.5.1"},{"backlink":"cloud-native/setup-kubernetes-with-rancher-and-aliyun.html#fig2.5.2","level":"2.5","list_caption":"Figure: 自定义节点信息","alt":"自定义节点信息","nro":11,"url":"../images/rancher-customize-node.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"自定义节点信息","attributes":{},"skip":false,"key":"2.5.2"},{"backlink":"cloud-native/setup-kubernetes-with-rancher-and-aliyun.html#fig2.5.3","level":"2.5","list_caption":"Figure: Rancher 集群监控页面","alt":"Rancher 集群监控页面","nro":12,"url":"../images/rancher-cluster.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Rancher 集群监控页面","attributes":{},"skip":false,"key":"2.5.3"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.1","level":"2.6","list_caption":"Figure: 云计算演进历程","alt":"云计算演进历程","nro":13,"url":"../images/cloud-computing-evolution-road.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云计算演进历程","attributes":{},"skip":false,"key":"2.6.1"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.2","level":"2.6","list_caption":"Figure: 来自Twitter @MarcWilczek","alt":"来自Twitter @MarcWilczek","nro":14,"url":"../images/cloud-native-comes-of-age.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"来自Twitter @MarcWilczek","attributes":{},"skip":false,"key":"2.6.2"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.3","level":"2.6","list_caption":"Figure: Cloud native思维导图","alt":"Cloud native思维导图","nro":15,"url":"../images/cloud-native-architecutre-mindnode.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cloud native思维导图","attributes":{},"skip":false,"key":"2.6.3"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.4","level":"2.6","list_caption":"Figure: 十二因素应用","alt":"十二因素应用","nro":16,"url":"../images/12-factor-app.png","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"十二因素应用","attributes":{},"skip":false,"key":"2.6.4"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.5","level":"2.6","list_caption":"Figure: 容器生态","alt":"容器生态","nro":17,"url":"../images/container-ecosystem.png","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"容器生态","attributes":{},"skip":false,"key":"2.6.5"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.6","level":"2.6","list_caption":"Figure: 使用Jenkins进行持续集成与发布流程图","alt":"使用Jenkins进行持续集成与发布流程图","nro":18,"url":"../images/kubernetes-jenkins-ci-cd.png","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"使用Jenkins进行持续集成与发布流程图","attributes":{},"skip":false,"key":"2.6.6"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.7","level":"2.6","list_caption":"Figure: filebeat日志收集架构图","alt":"filebeat日志收集架构图","nro":19,"url":"../images/filebeat-log-collector-arch.png","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"filebeat日志收集架构图","attributes":{},"skip":false,"key":"2.6.7"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.8","level":"2.6","list_caption":"Figure: API文档","alt":"API文档","nro":20,"url":"../images/k8s-app-monitor-test-api-doc.jpg","index":8,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"API文档","attributes":{},"skip":false,"key":"2.6.8"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.9","level":"2.6","list_caption":"Figure: 迁移步骤示意图","alt":"迁移步骤示意图","nro":21,"url":"../images/migrating-hadoop-yarn-to-kubernetes.png","index":9,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"迁移步骤示意图","attributes":{},"skip":false,"key":"2.6.9"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.10","level":"2.6","list_caption":"Figure: service mesh架构图","alt":"service mesh架构图","nro":22,"url":"../images/serivce-mesh-control-plane.png","index":10,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"service mesh架构图","attributes":{},"skip":false,"key":"2.6.10"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.11","level":"2.6","list_caption":"Figure: kibana界面","alt":"kibana界面","nro":23,"url":"../images/filebeat-docker-test.jpg","index":11,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kibana界面","attributes":{},"skip":false,"key":"2.6.11"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.12","level":"2.6","list_caption":"Figure: Grafana界面示意图1","alt":"Grafana界面示意图1","nro":24,"url":"../images/kubernetes-devops-example-grafana-1.png","index":12,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana界面示意图1","attributes":{},"skip":false,"key":"2.6.12"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.13","level":"2.6","list_caption":"Figure: Grafana界面示意图2","alt":"Grafana界面示意图2","nro":25,"url":"../images/kubernetes-devops-example-grafana-2.png","index":13,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana界面示意图2","attributes":{},"skip":false,"key":"2.6.13"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.14","level":"2.6","list_caption":"Figure: Grafana界面示意图3","alt":"Grafana界面示意图3","nro":26,"url":"../images/kubernetes-devops-example-grafana-3.png","index":14,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana界面示意图3","attributes":{},"skip":false,"key":"2.6.14"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.15","level":"2.6","list_caption":"Figure: dashboard","alt":"dashboard","nro":27,"url":"../images/spark-job-on-kubernetes-example-1.jpg","index":15,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"dashboard","attributes":{},"skip":false,"key":"2.6.15"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.6.16","level":"2.6","list_caption":"Figure: Grafana","alt":"Grafana","nro":28,"url":"../images/spark-job-on-kubernetes-example-2.jpg","index":16,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana","attributes":{},"skip":false,"key":"2.6.16"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.1","level":"2.7","list_caption":"Figure: 容器生态图 Container ecosystem","alt":"容器生态图 Container ecosystem","nro":29,"url":"../images/container-ecosystem.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"容器生态图 Container ecosystem","attributes":{},"skip":false,"key":"2.7.1"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.2","level":"2.7","list_caption":"Figure: Kubernetes架构","alt":"Kubernetes架构","nro":30,"url":"../images/kubernetes-high-level-component-archtecture.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes架构","attributes":{},"skip":false,"key":"2.7.2"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.3","level":"2.7","list_caption":"Figure: Cloud Native Core target","alt":"Cloud Native Core target","nro":31,"url":"../images/cloud-native-core-target.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cloud Native Core target","attributes":{},"skip":false,"key":"2.7.3"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.4","level":"2.7","list_caption":"Figure: FaaS Landscape","alt":"FaaS Landscape","nro":32,"url":"../images/redpoint-faas-landscape.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS Landscape","attributes":{},"skip":false,"key":"2.7.4"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.5","level":"2.7","list_caption":"Figure: Workloads running on Kubernetes","alt":"Workloads running on Kubernetes","nro":33,"url":"../images/0069RVTdgy1fv5mxr6fxtj31kw11q484.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Workloads running on Kubernetes","attributes":{},"skip":false,"key":"2.7.5"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.6","level":"2.7","list_caption":"Figure: Gartner技术爆发趋势图2017","alt":"Gartner技术爆发趋势图2017","nro":34,"url":"../images/0069RVTdgy1fv5my2jtxzj315o0z8dkr.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Gartner技术爆发趋势图2017","attributes":{},"skip":false,"key":"2.7.6"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.7","level":"2.7","list_caption":"Figure: Microservices concerns","alt":"Microservices concerns","nro":35,"url":"../images/microservices-concerns.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Microservices concerns","attributes":{},"skip":false,"key":"2.7.7"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.8","level":"2.7","list_caption":"Figure: 两种服务发现方式","alt":"两种服务发现方式","nro":36,"url":"../images/service-discovery-in-microservices.png","index":8,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"两种服务发现方式","attributes":{},"skip":false,"key":"2.7.8"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.9","level":"2.7","list_caption":"Figure: Cloud Native Features","alt":"Cloud Native Features","nro":37,"url":"https://jimmysong.io/kubernetes-handbook/images/cloud-native-architecutre-mindnode.jpg","index":9,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cloud Native Features","attributes":{},"skip":false,"key":"2.7.9"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.10","level":"2.7","list_caption":"Figure: Cloud Native Landscape v1.0","alt":"Cloud Native Landscape v1.0","nro":38,"url":"../images/0069RVTdgy1fv5myp6ednj31kw0w0u0x.jpg","index":10,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cloud Native Landscape v1.0","attributes":{},"skip":false,"key":"2.7.10"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.11","level":"2.7","list_caption":"Figure: Building a Cloud Native Architecture with Kubernetes followed 12 factor app","alt":"Building a Cloud Native Architecture with Kubernetes followed 12 factor app","nro":39,"url":"../images/building-cloud-native-architecture-with-kubernetes.png","index":11,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Building a Cloud Native Architecture with Kubernetes followed 12 factor app","attributes":{},"skip":false,"key":"2.7.11"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.12","level":"2.7","list_caption":"Figure: Creating Kubernetes native app","alt":"Creating Kubernetes native app","nro":40,"url":"../images/creating-kubernetes-native-app.jpg","index":12,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Creating Kubernetes native app","attributes":{},"skip":false,"key":"2.7.12"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.13","level":"2.7","list_caption":"Figure: istio vs linkerd","alt":"istio vs linkerd","nro":41,"url":"../images/istio-vs-linkerd.jpg","index":13,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"istio vs linkerd","attributes":{},"skip":false,"key":"2.7.13"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.14","level":"2.7","list_caption":"Figure: Deployment pipeline","alt":"Deployment pipeline","nro":42,"url":"../images/0069RVTdgy1fv5mzj8rj6j318g1ewtfc.jpg","index":14,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Deployment pipeline","attributes":{},"skip":false,"key":"2.7.14"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.15","level":"2.7","list_caption":"Figure: Spark on Kubernetes with different schedulers","alt":"Spark on Kubernetes with different schedulers","nro":43,"url":"../images/spark-on-kubernetes-with-different-schedulers.jpg","index":15,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spark on Kubernetes with different schedulers","attributes":{},"skip":false,"key":"2.7.15"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.16","level":"2.7","list_caption":"Figure: Kubernetes solutions","alt":"Kubernetes solutions","nro":44,"url":"../images/0069RVTdgy1fv5mzywc83j31fk1i8qg4.jpg","index":16,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes solutions","attributes":{},"skip":false,"key":"2.7.16"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.7.17","level":"2.7","list_caption":"Figure: Kubernetes SIG","alt":"Kubernetes SIG","nro":45,"url":"../images/kubernetes-sigs.jpg","index":17,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes SIG","attributes":{},"skip":false,"key":"2.7.17"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.8.1.1","level":"2.8.1","list_caption":"Figure: 云原生编程语言ballerina","alt":"云原生编程语言ballerina","nro":46,"url":"../images/philosophy-page-diagrams-top.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言ballerina","attributes":{},"skip":false,"key":"2.8.1.1"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.8.1.2","level":"2.8.1","list_caption":"Figure: 云原生编程语言Ballerina的序列图设计理念","alt":"云原生编程语言Ballerina的序列图设计理念","nro":47,"url":"../images/philosophy-principle-diagrams-01.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言Ballerina的序列图设计理念","attributes":{},"skip":false,"key":"2.8.1.2"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.8.1.3","level":"2.8.1","list_caption":"Figure: 云原生编程语言Ballerina的并发理念","alt":"云原生编程语言Ballerina的并发理念","nro":48,"url":"../images/philosophy-principle-diagrams-02.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言Ballerina的并发理念","attributes":{},"skip":false,"key":"2.8.1.3"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.8.1.4","level":"2.8.1","list_caption":"Figure: 云原生编程语言ballerina运行时架构","alt":"云原生编程语言ballerina运行时架构","nro":49,"url":"../images/philosophy-diagrams-for-site-02.png","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言ballerina运行时架构","attributes":{},"skip":false,"key":"2.8.1.4"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.8.1.5","level":"2.8.1","list_caption":"Figure: 云原生编程语言ballerina部署架构图","alt":"云原生编程语言ballerina部署架构图","nro":50,"url":"../images/philosophy-diagrams-for-site-03.png","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言ballerina部署架构图","attributes":{},"skip":false,"key":"2.8.1.5"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.8.1.6","level":"2.8.1","list_caption":"Figure: 云原生编程语言ballerina生命周期架构图","alt":"云原生编程语言ballerina生命周期架构图","nro":51,"url":"../images/philosophy-diagrams-for-site-04.png","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言ballerina生命周期架构图","attributes":{},"skip":false,"key":"2.8.1.6"},{"backlink":"cloud-native/cloud-native-programming-language-pulumi.html#fig2.8.2.1","level":"2.8.2","list_caption":"Figure: 云原生编程语言Pulumi","alt":"云原生编程语言Pulumi","nro":52,"url":"../images/00704eQkgy1fsm4v0a6qwj30xc0m8t9d.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言Pulumi","attributes":{},"skip":false,"key":"2.8.2.1"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.1","level":"2.9","list_caption":"Figure: Kubernetes 云原生的操作系统","alt":"Kubernetes 云原生的操作系统","nro":53,"url":"../images/00704eQkgy1frr4z08j6oj31p20w2n6n.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 云原生的操作系统","attributes":{},"skip":false,"key":"2.9.1"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.2","level":"2.9","list_caption":"Figure: 操作系统层次","alt":"操作系统层次","nro":54,"url":"../images/00704eQkgy1frr52hl4eaj31qy15en74.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"操作系统层次","attributes":{},"skip":false,"key":"2.9.2"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.3","level":"2.9","list_caption":"Figure: 云原生景观图","alt":"云原生景观图","nro":55,"url":"../images/00704eQkgy1frr53j3aiuj32fs1dc7wi.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生景观图","attributes":{},"skip":false,"key":"2.9.3"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.4","level":"2.9","list_caption":"Figure: KubeVirt架构图","alt":"KubeVirt架构图","nro":56,"url":"../images/00704eQkgy1frr54de5oyj31qw14qn2x.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"KubeVirt架构图","attributes":{},"skip":false,"key":"2.9.4"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.5","level":"2.9","list_caption":"Figure: Kubernetes中的资源隔离","alt":"Kubernetes中的资源隔离","nro":57,"url":"../images/00704eQkgy1frr54ztql2j329q0zwwlf.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes中的资源隔离","attributes":{},"skip":false,"key":"2.9.5"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.6","level":"2.9","list_caption":"Figure: OpenEBS 控制平面架构","alt":"OpenEBS 控制平面架构","nro":58,"url":"../images/00704eQkgy1frr56m7z2sj31y010y17y.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenEBS 控制平面架构","attributes":{},"skip":false,"key":"2.9.6"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.7","level":"2.9","list_caption":"Figure: OpenEBS 的存储卷管理","alt":"OpenEBS 的存储卷管理","nro":59,"url":"../images/00704eQkgy1frr57nm2mnj31xk11qqej.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenEBS 的存储卷管理","attributes":{},"skip":false,"key":"2.9.7"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.8","level":"2.9","list_caption":"Figure: Hadoop YARN 迁移到 Kubernetes的示例","alt":"Hadoop YARN 迁移到 Kubernetes的示例","nro":60,"url":"../images/00704eQkgy1frr58ebf2lj323o11219r.jpg","index":8,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Hadoop YARN 迁移到 Kubernetes的示例","attributes":{},"skip":false,"key":"2.9.8"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.9","level":"2.9","list_caption":"Figure: Spark on Yarn with Kubernetes","alt":"Spark on Yarn with Kubernetes","nro":61,"url":"../images/00704eQkgy1frr59gzzwsj32gg16k4qp.jpg","index":9,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spark on Yarn with Kubernetes","attributes":{},"skip":false,"key":"2.9.9"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.10","level":"2.9","list_caption":"Figure: 云原生与12因素应用","alt":"云原生与12因素应用","nro":62,"url":"../images/00704eQkgy1frr5arzvetj31no12mdre.jpg","index":10,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生与12因素应用","attributes":{},"skip":false,"key":"2.9.10"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.11","level":"2.9","list_caption":"Figure: 云原生编程语言","alt":"云原生编程语言","nro":63,"url":"../images/00704eQkgy1frr5c8bwmtj31ou152qc3.jpg","index":11,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言","attributes":{},"skip":false,"key":"2.9.11"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.12","level":"2.9","list_caption":"Figure: Gitkube","alt":"Gitkube","nro":64,"url":"../images/00704eQkgy1frr5bulhuhj329m10iwua.jpg","index":12,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Gitkube","attributes":{},"skip":false,"key":"2.9.12"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.13","level":"2.9","list_caption":"Figure: Kuberentes中的流量管理","alt":"Kuberentes中的流量管理","nro":65,"url":"../images/00704eQkgy1frr5dsurx6j320i140tpf.jpg","index":13,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kuberentes中的流量管理","attributes":{},"skip":false,"key":"2.9.13"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.14","level":"2.9","list_caption":"Figure: Istio Service Mesh架构图","alt":"Istio Service Mesh架构图","nro":66,"url":"../images/00704eQkgy1frr5exqm7kj320u18mh2t.jpg","index":14,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio Service Mesh架构图","attributes":{},"skip":false,"key":"2.9.14"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.15","level":"2.9","list_caption":"Figure: Service Mesh架构","alt":"Service Mesh架构","nro":67,"url":"../images/00704eQkgy1frr5fxzoltj32f81akqr2.jpg","index":15,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh架构","attributes":{},"skip":false,"key":"2.9.15"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.9.16","level":"2.9","list_caption":"Figure: Envoy proxy架构图","alt":"Envoy proxy架构图","nro":68,"url":"../images/envoy-arch.png","index":16,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Envoy proxy架构图","attributes":{},"skip":false,"key":"2.9.16"},{"backlink":"cloud-native/define-cloud-native-app.html#fig2.10.1","level":"2.10","list_caption":"Figure: 云原生应用模型","alt":"云原生应用模型","nro":69,"url":"../images/cloud-native-app-model.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生应用模型","attributes":{},"skip":false,"key":"2.10.1"},{"backlink":"cloud-native/define-cloud-native-app.html#fig2.10.2","level":"2.10","list_caption":"Figure: 云原生应用模型中的目标角色","alt":"云原生应用模型中的目标角色","nro":70,"url":"../images/roles.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生应用模型中的目标角色","attributes":{},"skip":false,"key":"2.10.2"},{"backlink":"concepts/index.html#fig3.1.1","level":"3.1","list_caption":"Figure: Borg架构","alt":"Borg架构","nro":71,"url":"../images/borg.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Borg架构","attributes":{},"skip":false,"key":"3.1.1"},{"backlink":"concepts/index.html#fig3.1.2","level":"3.1","list_caption":"Figure: Kubernetes架构","alt":"Kubernetes架构","nro":72,"url":"../images/architecture.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes架构","attributes":{},"skip":false,"key":"3.1.2"},{"backlink":"concepts/index.html#fig3.1.3","level":"3.1","list_caption":"Figure: Kuberentes架构图片来自于网络","alt":"Kuberentes架构图片来自于网络","nro":73,"url":"../images/kubernetes-high-level-component-archtecture.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kuberentes架构图片来自于网络","attributes":{},"skip":false,"key":"3.1.3"},{"backlink":"concepts/index.html#fig3.1.4","level":"3.1","list_caption":"Figure: kubernetes整体架构示意图","alt":"kubernetes整体架构示意图","nro":74,"url":"../images/kubernetes-whole-arch.png","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes整体架构示意图","attributes":{},"skip":false,"key":"3.1.4"},{"backlink":"concepts/index.html#fig3.1.5","level":"3.1","list_caption":"Figure: Kubernetes master架构示意图","alt":"Kubernetes master架构示意图","nro":75,"url":"../images/kubernetes-master-arch.png","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes master架构示意图","attributes":{},"skip":false,"key":"3.1.5"},{"backlink":"concepts/index.html#fig3.1.6","level":"3.1","list_caption":"Figure: kubernetes node架构示意图","alt":"kubernetes node架构示意图","nro":76,"url":"../images/kubernetes-node-arch.png","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes node架构示意图","attributes":{},"skip":false,"key":"3.1.6"},{"backlink":"concepts/index.html#fig3.1.7","level":"3.1","list_caption":"Figure: Kubernetes分层架构示意图","alt":"Kubernetes分层架构示意图","nro":77,"url":"../images/kubernetes-layers-arch.png","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes分层架构示意图","attributes":{},"skip":false,"key":"3.1.7"},{"backlink":"concepts/concepts.html#fig3.1.1.1","level":"3.1.1","list_caption":"Figure: Kubernetes 分层架构示意图","alt":"Kubernetes 分层架构示意图","nro":78,"url":"../images/006tNc79ly1fzniqvmi51j31gq0s0q5u.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 分层架构示意图","attributes":{},"skip":false,"key":"3.1.1.1"},{"backlink":"concepts/open-interfaces.html#fig3.1.3.1","level":"3.1.3","list_caption":"Figure: 开放接口","alt":"开放接口","nro":79,"url":"../images/open-interfaces.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"开放接口","attributes":{},"skip":false,"key":"3.1.3.1"},{"backlink":"concepts/cri.html#fig3.1.3.1.1","level":"3.1.3.1","list_caption":"Figure: CRI架构-图片来自kubernetes blog","alt":"CRI架构-图片来自kubernetes blog","nro":80,"url":"../images/cri-architecture.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CRI架构-图片来自kubernetes blog","attributes":{},"skip":false,"key":"3.1.3.1.1"},{"backlink":"concepts/flannel.html#fig3.2.1.1","level":"3.2.1","list_caption":"Figure: flannel网络架构图片来自openshift","alt":"flannel网络架构图片来自openshift","nro":81,"url":"../images/flannel-networking.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"flannel网络架构图片来自openshift","attributes":{},"skip":false,"key":"3.2.1.1"},{"backlink":"concepts/calico.html#fig3.2.2.1","level":"3.2.2","list_caption":"Figure: Calico","alt":"Calico","nro":82,"url":"../images/006tNc79gy1fz65bt7ieej30c90bsgn2.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Calico","attributes":{},"skip":false,"key":"3.2.2.1"},{"backlink":"concepts/calico.html#fig3.2.2.2","level":"3.2.2","list_caption":"Figure: CRI架构-图片来自https://www.jianshu.com/p/f0177b84de66","alt":"CRI架构-图片来自https://www.jianshu.com/p/f0177b84de66","nro":83,"url":"../images/calico.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CRI架构-图片来自https://www.jianshu.com/p/f0177b84de66","attributes":{},"skip":false,"key":"3.2.2.2"},{"backlink":"concepts/cilium.html#fig3.2.3.1","level":"3.2.3","list_caption":"Figure: Cilium","alt":"Cilium","nro":84,"url":"../images/006tNbRwly1fwqi98i51ij30sc0j80zn.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cilium","attributes":{},"skip":false,"key":"3.2.3.1"},{"backlink":"concepts/cilium-concepts.html#fig3.2.3.1.1","level":"3.2.3.1","list_caption":"Figure: Cilium 组件(来自 Cilium 官网)","alt":"Cilium 组件(来自 Cilium 官网)","nro":85,"url":"../images/006tNbRwly1fwztvhg0gmj318z143tdv.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cilium 组件(来自 Cilium 官网)","attributes":{},"skip":false,"key":"3.2.3.1.1"},{"backlink":"concepts/cilium-concepts.html#fig3.2.3.1.2","level":"3.2.3.1","list_caption":"Figure: Cilium 网络配置策略","alt":"Cilium 网络配置策略","nro":86,"url":"../images/006tNbRwly1fwzreaalj6j30dz0dy3z3.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Cilium 网络配置策略","attributes":{},"skip":false,"key":"3.2.3.1.2"},{"backlink":"concepts/pod-overview.html#fig3.4.1.1","level":"3.4.1","list_caption":"Figure: pod diagram","alt":"pod diagram","nro":87,"url":"../images/pod-overview.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"pod diagram","attributes":{},"skip":false,"key":"3.4.1.1"},{"backlink":"concepts/pod.html#fig3.4.2.1","level":"3.4.2","list_caption":"Figure: Pod示意图","alt":"Pod示意图","nro":88,"url":"../images/pod-overview.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Pod示意图","attributes":{},"skip":false,"key":"3.4.2.1"},{"backlink":"concepts/pod.html#fig3.4.2.2","level":"3.4.2","list_caption":"Figure: Pod Cheatsheet","alt":"Pod Cheatsheet","nro":89,"url":"../images/kubernetes-pod-cheatsheet.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Pod Cheatsheet","attributes":{},"skip":false,"key":"3.4.2.2"},{"backlink":"concepts/pause-container.html#fig3.4.4.1","level":"3.4.4","list_caption":"Figure: Pause容器","alt":"Pause容器","nro":90,"url":"../images/pause-container.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Pause容器","attributes":{},"skip":false,"key":"3.4.4.1"},{"backlink":"concepts/pod-lifecycle.html#fig3.4.6.1","level":"3.4.6","list_caption":"Figure: Pod的生命周期示意图图片来自网络","alt":"Pod的生命周期示意图图片来自网络","nro":91,"url":"../images/kubernetes-pod-life-cycle.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Pod的生命周期示意图图片来自网络","attributes":{},"skip":false,"key":"3.4.6.1"},{"backlink":"concepts/label.html#fig3.5.3.1","level":"3.5.3","list_caption":"Figure: label示意图","alt":"label示意图","nro":92,"url":"../images/labels.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"label示意图","attributes":{},"skip":false,"key":"3.5.3.1"},{"backlink":"concepts/deployment.html#fig3.6.1.1","level":"3.6.1","list_caption":"Figure: kubernetes deployment cheatsheet","alt":"kubernetes deployment cheatsheet","nro":93,"url":"../images/deployment-cheatsheet.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes deployment cheatsheet","attributes":{},"skip":false,"key":"3.6.1.1"},{"backlink":"concepts/horizontal-pod-autoscaling.html#fig3.6.7.1","level":"3.6.7","list_caption":"Figure: horizontal-pod-autoscaler","alt":"horizontal-pod-autoscaler","nro":94,"url":"../images/horizontal-pod-autoscaler.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"horizontal-pod-autoscaler","attributes":{},"skip":false,"key":"3.6.7.1"},{"backlink":"concepts/service.html#fig3.7.1.1","level":"3.7.1","list_caption":"Figure: userspace代理模式下Service概览图","alt":"userspace代理模式下Service概览图","nro":95,"url":"../images/services-userspace-overview.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"userspace代理模式下Service概览图","attributes":{},"skip":false,"key":"3.7.1.1"},{"backlink":"concepts/service.html#fig3.7.1.2","level":"3.7.1","list_caption":"Figure: iptables代理模式下Service概览图","alt":"iptables代理模式下Service概览图","nro":96,"url":"../images/services-iptables-overview.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"iptables代理模式下Service概览图","attributes":{},"skip":false,"key":"3.7.1.2"},{"backlink":"concepts/service.html#fig3.7.1.3","level":"3.7.1","list_caption":"Figure: ipvs代理模式下Service概览图","alt":"ipvs代理模式下Service概览图","nro":97,"url":"../images/service-ipvs-overview.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"ipvs代理模式下Service概览图","attributes":{},"skip":false,"key":"3.7.1.3"},{"backlink":"concepts/service-catalog.html#fig3.10.5.1","level":"3.10.5","list_caption":"Figure: Service Catalog Architecture","alt":"Service Catalog Architecture","nro":98,"url":"../images/service-catalog-architecture.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Catalog Architecture","attributes":{},"skip":false,"key":"3.10.5.1"},{"backlink":"concepts/service-catalog.html#fig3.10.5.2","level":"3.10.5","list_caption":"Figure: List Services","alt":"List Services","nro":99,"url":"../images/service-catalog-list.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"List Services","attributes":{},"skip":false,"key":"3.10.5.2"},{"backlink":"concepts/service-catalog.html#fig3.10.5.3","level":"3.10.5","list_caption":"Figure: Provision a Service","alt":"Provision a Service","nro":100,"url":"../images/service-catalog-provision.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Provision a Service","attributes":{},"skip":false,"key":"3.10.5.3"},{"backlink":"concepts/service-catalog.html#fig3.10.5.4","level":"3.10.5","list_caption":"Figure: Bind to a managed service","alt":"Bind to a managed service","nro":101,"url":"../images/service-catalog-bind.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Bind to a managed service","attributes":{},"skip":false,"key":"3.10.5.4"},{"backlink":"concepts/service-catalog.html#fig3.10.5.5","level":"3.10.5","list_caption":"Figure: Map connection credentials","alt":"Map connection credentials","nro":102,"url":"../images/service-catalog-map.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Map connection credentials","attributes":{},"skip":false,"key":"3.10.5.5"},{"backlink":"guide/using-kubectl.html#fig4.3.2.1","level":"4.3.2","list_caption":"Figure: kubectl cheatsheet","alt":"kubectl cheatsheet","nro":103,"url":"../images/kubernetes-kubectl-cheatsheet.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubectl cheatsheet","attributes":{},"skip":false,"key":"4.3.2.1"},{"backlink":"guide/using-kubectl.html#fig4.3.2.2","level":"4.3.2","list_caption":"Figure: 增加kubeclt命令的工具图片来自网络","alt":"增加kubeclt命令的工具图片来自网络","nro":104,"url":"../images/tools-to-supercharge-kubectl.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"增加kubeclt命令的工具图片来自网络","attributes":{},"skip":false,"key":"4.3.2.2"},{"backlink":"guide/using-kubectl.html#fig4.3.2.3","level":"4.3.2","list_caption":"Figure: 增强的kubectl命令","alt":"增强的kubectl命令","nro":105,"url":"../images/supercharged-kubectl.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"增强的kubectl命令","attributes":{},"skip":false,"key":"4.3.2.3"},{"backlink":"guide/using-kubectl.html#fig4.3.2.4","level":"4.3.2","list_caption":"Figure: kube-shell页面","alt":"kube-shell页面","nro":106,"url":"../images/kube-shell.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kube-shell页面","attributes":{},"skip":false,"key":"4.3.2.4"},{"backlink":"guide/ip-masq-agent.html#fig4.4.5.1","level":"4.4.5","list_caption":"Figure: IP伪装代理示意图","alt":"IP伪装代理示意图","nro":107,"url":"../images/ip-masq.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"IP伪装代理示意图","attributes":{},"skip":false,"key":"4.4.5.1"},{"backlink":"guide/auth-with-kubeconfig-or-token.html#fig4.4.6.1","level":"4.4.6","list_caption":"Figure: kubeconfig文件","alt":"kubeconfig文件","nro":108,"url":"../images/brand-kubeconfig-yaml.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubeconfig文件","attributes":{},"skip":false,"key":"4.4.6.1"},{"backlink":"guide/authentication.html#fig4.4.7.1","level":"4.4.7","list_caption":"Figure: Kubernetes OpenID Connect Flow","alt":"Kubernetes OpenID Connect Flow","nro":109,"url":"../images/kubernetes-oidc-login.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes OpenID Connect Flow","attributes":{},"skip":false,"key":"4.4.7.1"},{"backlink":"guide/cabin-mobile-dashboard-for-kubernetes.html#fig4.5.6.1","level":"4.5.6","list_caption":"Figure: App Store","alt":"App Store","nro":110,"url":"../images/cabin-kubernetes-mobile-dashboard-1.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"App Store","attributes":{},"skip":false,"key":"4.5.6.1"},{"backlink":"guide/cabin-mobile-dashboard-for-kubernetes.html#fig4.5.6.2","level":"4.5.6","list_caption":"Figure: 在手机上操作Kubernetes集群","alt":"在手机上操作Kubernetes集群","nro":111,"url":"../images/cabin-kubernetes-mobile-dashboard-4.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"在手机上操作Kubernetes集群","attributes":{},"skip":false,"key":"4.5.6.2"},{"backlink":"guide/kubernetes-desktop-client.html#fig4.5.7.1","level":"4.5.7","list_caption":"Figure: Kubernetic客户端","alt":"Kubernetic客户端","nro":112,"url":"../images/kubernetic-desktop-ui.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetic客户端","attributes":{},"skip":false,"key":"4.5.7.1"},{"backlink":"guide/kubernator-kubernetes-ui.html#fig4.5.8.1","level":"4.5.8","list_caption":"Figure: Kubernator catalog页面","alt":"Kubernator catalog页面","nro":113,"url":"../images/kubernator-catalog.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernator catalog页面","attributes":{},"skip":false,"key":"4.5.8.1"},{"backlink":"guide/kubernator-kubernetes-ui.html#fig4.5.8.2","level":"4.5.8","list_caption":"Figure: Kubernator rbac页面","alt":"Kubernator rbac页面","nro":114,"url":"../images/kubernator-rbac.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernator rbac页面","attributes":{},"skip":false,"key":"4.5.8.2"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.1","level":"4.6.1","list_caption":"Figure: 流程图","alt":"流程图","nro":115,"url":"../images/how-to-use-kubernetes-with-istio.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"流程图","attributes":{},"skip":false,"key":"4.6.1.1"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.2","level":"4.6.1","list_caption":"Figure: API","alt":"API","nro":116,"url":"../images/k8s-app-monitor-test-api-doc.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"API","attributes":{},"skip":false,"key":"4.6.1.2"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.3","level":"4.6.1","list_caption":"Figure: wercker构建页面","alt":"wercker构建页面","nro":117,"url":"../images/k8s-app-monitor-agent-wercker.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"wercker构建页面","attributes":{},"skip":false,"key":"4.6.1.3"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.4","level":"4.6.1","list_caption":"Figure: 图表","alt":"图表","nro":118,"url":"../images/k8s-app-monitor-agent.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"图表","attributes":{},"skip":false,"key":"4.6.1.4"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.5","level":"4.6.1","list_caption":"Figure: Grafana页面","alt":"Grafana页面","nro":119,"url":"../images/k8s-app-monitor-istio-grafana.png","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana页面","attributes":{},"skip":false,"key":"4.6.1.5"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.6","level":"4.6.1","list_caption":"Figure: servicegraph页面","alt":"servicegraph页面","nro":120,"url":"../images/k8s-app-monitor-istio-servicegraph-dotviz.png","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"servicegraph页面","attributes":{},"skip":false,"key":"4.6.1.6"},{"backlink":"guide/deploy-applications-in-kubernetes.html#fig4.6.1.7","level":"4.6.1","list_caption":"Figure: Zipkin页面","alt":"Zipkin页面","nro":121,"url":"../images/k8s-app-monitor-istio-zipkin.png","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Zipkin页面","attributes":{},"skip":false,"key":"4.6.1.7"},{"backlink":"guide/migrating-hadoop-yarn-to-kubernetes.html#fig4.6.2.1","level":"4.6.2","list_caption":"Figure: 将单体应用迁移到云原生(图片来自DevOpsDay Toronto)","alt":"将单体应用迁移到云原生(图片来自DevOpsDay Toronto)","nro":122,"url":"../images/migrating-monolith-to-kubernetes.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"将单体应用迁移到云原生(图片来自DevOpsDay Toronto)","attributes":{},"skip":false,"key":"4.6.2.1"},{"backlink":"guide/migrating-hadoop-yarn-to-kubernetes.html#fig4.6.2.2","level":"4.6.2","list_caption":"Figure: spark on yarn with kubernetes","alt":"spark on yarn with kubernetes","nro":123,"url":"../images/spark-on-yarn-with-kubernetes.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"spark on yarn with kubernetes","attributes":{},"skip":false,"key":"4.6.2.2"},{"backlink":"guide/migrating-hadoop-yarn-to-kubernetes.html#fig4.6.2.3","level":"4.6.2","list_caption":"Figure: Terms","alt":"Terms","nro":124,"url":"../images/terms-in-kubernetes-app-deployment.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Terms","attributes":{},"skip":false,"key":"4.6.2.3"},{"backlink":"guide/migrating-hadoop-yarn-to-kubernetes.html#fig4.6.2.4","level":"4.6.2","list_caption":"Figure: 分解步骤解析","alt":"分解步骤解析","nro":125,"url":"../images/migrating-hadoop-yarn-to-kubernetes.png","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"分解步骤解析","attributes":{},"skip":false,"key":"4.6.2.4"},{"backlink":"practice/node-installation.html#fig5.2.7.1","level":"5.2.7","list_caption":"Figure: nginx欢迎页面","alt":"nginx欢迎页面","nro":126,"url":"../images/kubernetes-installation-test-nginx.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"nginx欢迎页面","attributes":{},"skip":false,"key":"5.2.7.1"},{"backlink":"practice/dashboard-addon-installation.html#fig5.2.9.1","level":"5.2.9","list_caption":"Figure: kubernetes dashboard","alt":"kubernetes dashboard","nro":127,"url":"../images/kubernetes-dashboard-raw.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes dashboard","attributes":{},"skip":false,"key":"5.2.9.1"},{"backlink":"practice/dashboard-addon-installation.html#fig5.2.9.2","level":"5.2.9","list_caption":"Figure: V1.6.3版本的dashboard界面","alt":"V1.6.3版本的dashboard界面","nro":128,"url":"../images/dashboard-v163.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"V1.6.3版本的dashboard界面","attributes":{},"skip":false,"key":"5.2.9.2"},{"backlink":"practice/dashboard-addon-installation.html#fig5.2.9.3","level":"5.2.9","list_caption":"Figure: pod无法正常启动","alt":"pod无法正常启动","nro":129,"url":"../images/dashboard-addon-installation001.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"pod无法正常启动","attributes":{},"skip":false,"key":"5.2.9.3"},{"backlink":"practice/heapster-addon-installation.html#fig5.2.10.1","level":"5.2.10","list_caption":"Figure: dashboard-heapster","alt":"dashboard-heapster","nro":130,"url":"../images/kubernetes-dashboard-with-heapster.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"dashboard-heapster","attributes":{},"skip":false,"key":"5.2.10.1"},{"backlink":"practice/heapster-addon-installation.html#fig5.2.10.2","level":"5.2.10","list_caption":"Figure: grafana","alt":"grafana","nro":131,"url":"../images/kubernetes-heapster-grafana.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"grafana","attributes":{},"skip":false,"key":"5.2.10.2"},{"backlink":"practice/heapster-addon-installation.html#fig5.2.10.3","level":"5.2.10","list_caption":"Figure: kubernetes-influxdb-heapster","alt":"kubernetes-influxdb-heapster","nro":132,"url":"../images/kubernetes-influxdb-heapster.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes-influxdb-heapster","attributes":{},"skip":false,"key":"5.2.10.3"},{"backlink":"practice/heapster-addon-installation.html#fig5.2.10.4","level":"5.2.10","list_caption":"Figure: 修改grafana模板","alt":"修改grafana模板","nro":133,"url":"../images/grafana-dashboard-setting.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"修改grafana模板","attributes":{},"skip":false,"key":"5.2.10.4"},{"backlink":"practice/efk-addon-installation.html#fig5.2.11.1","level":"5.2.11","list_caption":"Figure: es-setting","alt":"es-setting","nro":134,"url":"../images/es-setting.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"es-setting","attributes":{},"skip":false,"key":"5.2.11.1"},{"backlink":"practice/efk-addon-installation.html#fig5.2.11.2","level":"5.2.11","list_caption":"Figure: es-home","alt":"es-home","nro":135,"url":"../images/kubernetes-efk-kibana.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"es-home","attributes":{},"skip":false,"key":"5.2.11.2"},{"backlink":"practice/traefik-ingress-installation.html#fig5.4.1.1","level":"5.4.1","list_caption":"Figure: kubernetes-dashboard","alt":"kubernetes-dashboard","nro":136,"url":"../images/traefik-dashboard.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes-dashboard","attributes":{},"skip":false,"key":"5.4.1.1"},{"backlink":"practice/traefik-ingress-installation.html#fig5.4.1.2","level":"5.4.1","list_caption":"Figure: traefik-nginx","alt":"traefik-nginx","nro":137,"url":"../images/traefik-nginx.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"traefik-nginx","attributes":{},"skip":false,"key":"5.4.1.2"},{"backlink":"practice/traefik-ingress-installation.html#fig5.4.1.3","level":"5.4.1","list_caption":"Figure: traefik-guestbook","alt":"traefik-guestbook","nro":138,"url":"../images/traefik-guestbook.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"traefik-guestbook","attributes":{},"skip":false,"key":"5.4.1.3"},{"backlink":"practice/distributed-load-test.html#fig5.4.2.1","level":"5.4.2","list_caption":"Figure: 使用dashboard来扩容","alt":"使用dashboard来扩容","nro":139,"url":"../images/dashbaord-scale.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"使用dashboard来扩容","attributes":{},"skip":false,"key":"5.4.2.1"},{"backlink":"practice/distributed-load-test.html#fig5.4.2.2","level":"5.4.2","list_caption":"Figure: Traefik的UI","alt":"Traefik的UI","nro":140,"url":"../images/traefik-dashboard-locust.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Traefik的UI","attributes":{},"skip":false,"key":"5.4.2.2"},{"backlink":"practice/distributed-load-test.html#fig5.4.2.3","level":"5.4.2","list_caption":"Figure: Locust启动界面","alt":"Locust启动界面","nro":141,"url":"../images/locust-start-swarming.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Locust启动界面","attributes":{},"skip":false,"key":"5.4.2.3"},{"backlink":"practice/distributed-load-test.html#fig5.4.2.4","level":"5.4.2","list_caption":"Figure: Dashboard查看页面","alt":"Dashboard查看页面","nro":142,"url":"../images/sample-webapp-rc.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Dashboard查看页面","attributes":{},"skip":false,"key":"5.4.2.4"},{"backlink":"practice/distributed-load-test.html#fig5.4.2.5","level":"5.4.2","list_caption":"Figure: Locust测试结果页面","alt":"Locust测试结果页面","nro":143,"url":"../images/locust-dashboard.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Locust测试结果页面","attributes":{},"skip":false,"key":"5.4.2.5"},{"backlink":"practice/network-and-cluster-perfermance-test.html#fig5.4.3.1","level":"5.4.3","list_caption":"Figure: kubernetes-dashboard","alt":"kubernetes-dashboard","nro":144,"url":"../images/kubenetes-e2e-test.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes-dashboard","attributes":{},"skip":false,"key":"5.4.3.1"},{"backlink":"practice/network-and-cluster-perfermance-test.html#fig5.4.3.2","level":"5.4.3","list_caption":"Figure: locust测试页面","alt":"locust测试页面","nro":145,"url":"../images/kubernetes-locust-test.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"locust测试页面","attributes":{},"skip":false,"key":"5.4.3.2"},{"backlink":"practice/edge-node-configuration.html#fig5.4.4.1","level":"5.4.4","list_caption":"Figure: 边缘节点架构","alt":"边缘节点架构","nro":146,"url":"../images/kubernetes-edge-node-architecture.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"边缘节点架构","attributes":{},"skip":false,"key":"5.4.4.1"},{"backlink":"practice/edge-node-configuration.html#fig5.4.4.2","level":"5.4.4","list_caption":"Figure: 使用域名来访问Kubernetes中的服务","alt":"使用域名来访问Kubernetes中的服务","nro":147,"url":"../images/accessing-kubernetes-services-with-dns-name.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"使用域名来访问Kubernetes中的服务","attributes":{},"skip":false,"key":"5.4.4.2"},{"backlink":"practice/configuring-dns.html#fig5.4.6.1.1","level":"5.4.6.1","list_caption":"Figure: DNS lookup flow","alt":"DNS lookup flow","nro":148,"url":"https://d33wubrfki0l68.cloudfront.net/340889cb80e81dcd19a16bc34697a7907e2b229a/24ad0/docs/tasks/administer-cluster/dns-custom-nameservers/dns.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"DNS lookup flow","attributes":{},"skip":false,"key":"5.4.6.1.1"},{"backlink":"practice/master-ha.html#fig5.5.1.1","level":"5.5.1","list_caption":"Figure: Master HA架构图","alt":"Master HA架构图","nro":149,"url":"../images/master-ha.JPG","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Master HA架构图","attributes":{},"skip":false,"key":"5.5.1.1"},{"backlink":"practice/app-log-collection.html#fig5.5.3.1","level":"5.5.3","list_caption":"Figure: filebeat日志收集架构图","alt":"filebeat日志收集架构图","nro":150,"url":"../images/filebeat-log-collector.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"filebeat日志收集架构图","attributes":{},"skip":false,"key":"5.5.3.1"},{"backlink":"practice/app-log-collection.html#fig5.5.3.2","level":"5.5.3","list_caption":"Figure: Kibana页面","alt":"Kibana页面","nro":151,"url":"../images/filebeat-docker-test.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kibana页面","attributes":{},"skip":false,"key":"5.5.3.2"},{"backlink":"practice/app-log-collection.html#fig5.5.3.3","level":"5.5.3","list_caption":"Figure: filebeat收集的日志详细信息","alt":"filebeat收集的日志详细信息","nro":152,"url":"../images/kubernetes-filebeat-detail.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"filebeat收集的日志详细信息","attributes":{},"skip":false,"key":"5.5.3.3"},{"backlink":"practice/monitor.html#fig5.5.5.1","level":"5.5.5","list_caption":"Figure: Kubernetes集群中的监控","alt":"Kubernetes集群中的监控","nro":153,"url":"../images/monitoring-in-kubernetes.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes集群中的监控","attributes":{},"skip":false,"key":"5.5.5.1"},{"backlink":"practice/monitor.html#fig5.5.5.2","level":"5.5.5","list_caption":"Figure: kubernetes的容器命名规则示意图","alt":"kubernetes的容器命名规则示意图","nro":154,"url":"../images/kubernetes-container-naming-rule.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubernetes的容器命名规则示意图","attributes":{},"skip":false,"key":"5.5.5.2"},{"backlink":"practice/monitor.html#fig5.5.5.3","level":"5.5.5","list_caption":"Figure: Heapster架构图改进版","alt":"Heapster架构图改进版","nro":155,"url":"../images/kubernetes-heapster-monitoring.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Heapster架构图改进版","attributes":{},"skip":false,"key":"5.5.5.3"},{"backlink":"practice/monitor.html#fig5.5.5.4","level":"5.5.5","list_caption":"Figure: 应用监控架构图","alt":"应用监控架构图","nro":156,"url":"../images/kubernetes-app-monitoring.png","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"应用监控架构图","attributes":{},"skip":false,"key":"5.5.5.4"},{"backlink":"practice/monitor.html#fig5.5.5.5","level":"5.5.5","list_caption":"Figure: 应用拓扑图","alt":"应用拓扑图","nro":157,"url":"../images/weave-scope-service-topology.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"应用拓扑图","attributes":{},"skip":false,"key":"5.5.5.5"},{"backlink":"practice/data-persistence-problem.html#fig5.5.6.1","level":"5.5.6","list_caption":"Figure: 日志持久化收集解决方案示意图","alt":"日志持久化收集解决方案示意图","nro":158,"url":"../images/log-persistence-logstash.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"日志持久化收集解决方案示意图","attributes":{},"skip":false,"key":"5.5.6.1"},{"backlink":"practice/storage-for-containers-using-glusterfs-with-openshift.html#fig5.6.1.3.1","level":"5.6.1.3","list_caption":"Figure: 创建存储","alt":"创建存储","nro":159,"url":"../images/create-gluster-storage.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"创建存储","attributes":{},"skip":false,"key":"5.6.1.3.1"},{"backlink":"practice/storage-for-containers-using-glusterfs-with-openshift.html#fig5.6.1.3.2","level":"5.6.1.3","list_caption":"Figure: Screen Shot 2017-03-24 at 11.09.34.png","alt":"Screen Shot 2017-03-24 at 11.09.34.png","nro":160,"url":"https://keithtenzer.files.wordpress.com/2017/03/screen-shot-2017-03-24-at-11-09-341.png?w=440","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Screen Shot 2017-03-24 at 11.09.34.png","attributes":{},"skip":false,"key":"5.6.1.3.2"},{"backlink":"practice/openebs.html#fig5.6.4.1","level":"5.6.4","list_caption":"Figure: OpenEBS集群数据平面图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md","alt":"OpenEBS集群数据平面图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md","nro":161,"url":"../images/OpenEBS-Data-Plane.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenEBS集群数据平面图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md","attributes":{},"skip":false,"key":"5.6.4.1"},{"backlink":"practice/openebs.html#fig5.6.4.2","level":"5.6.4","list_caption":"Figure: OpenEBS集群的控制平面(图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md","alt":"OpenEBS集群的控制平面(图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md","nro":162,"url":"../images/OpenEBS-Control-Plane.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenEBS集群的控制平面(图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md","attributes":{},"skip":false,"key":"5.6.4.2"},{"backlink":"practice/using-openebs-for-persistent-storage.html#fig5.6.4.1.1","level":"5.6.4.1","list_caption":"Figure: Kubernetes iSCSI架构","alt":"Kubernetes iSCSI架构","nro":163,"url":"../images/iscsi-on-kubernetes.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes iSCSI架构","attributes":{},"skip":false,"key":"5.6.4.1.1"},{"backlink":"practice/using-heapster-to-get-object-metrics.html#fig5.7.1.1.1","level":"5.7.1.1","list_caption":"Figure: Heapster架构图","alt":"Heapster架构图","nro":164,"url":"../images/heapster-architecture.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Heapster架构图","attributes":{},"skip":false,"key":"5.7.1.1.1"},{"backlink":"practice/prometheus.html#fig5.7.2.1","level":"5.7.2","list_caption":"Figure: Prometheus 架构图","alt":"Prometheus 架构图","nro":165,"url":"../images/006tNbRwly1fwcgsn11fej311j0mjadw.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Prometheus 架构图","attributes":{},"skip":false,"key":"5.7.2.1"},{"backlink":"practice/using-prometheus-to-monitor-kuberentes-cluster.html#fig5.7.2.1.1","level":"5.7.2.1","list_caption":"Figure: Grafana页面","alt":"Grafana页面","nro":166,"url":"../images/kubernetes-prometheus-monitoring.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Grafana页面","attributes":{},"skip":false,"key":"5.7.2.1.1"},{"backlink":"practice/promql.html#fig5.7.2.2.1","level":"5.7.2.2","list_caption":"Figure: Prometheus 的查询页面","alt":"Prometheus 的查询页面","nro":167,"url":"../images/006tNbRwly1fwcl7v28rhj30xl0onadv.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Prometheus 的查询页面","attributes":{},"skip":false,"key":"5.7.2.2.1"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.1","level":"5.7.3","list_caption":"Figure: Vistio的集群级别可视化","alt":"Vistio的集群级别可视化","nro":168,"url":"../images/00704eQkgy1fshft5oxlwj318g0pe0wp.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Vistio的集群级别可视化","attributes":{},"skip":false,"key":"5.7.3.1"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.2","level":"5.7.3","list_caption":"Figure: Prometheus查询","alt":"Prometheus查询","nro":169,"url":"../images/00704eQkgy1fshg0vw25ij318g0jzqjq.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Prometheus查询","attributes":{},"skip":false,"key":"5.7.3.2"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.3","level":"5.7.3","list_caption":"Figure: vistio-api的期望输出","alt":"vistio-api的期望输出","nro":170,"url":"../images/00704eQkgy1fshi61t04oj310q17c0y1.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"vistio-api的期望输出","attributes":{},"skip":false,"key":"5.7.3.3"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.4","level":"5.7.3","list_caption":"Figure: Vistio主页面","alt":"Vistio主页面","nro":171,"url":"../images/00704eQkgy1fshi98duzgj318g0l2406.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Vistio主页面","attributes":{},"skip":false,"key":"5.7.3.4"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.5","level":"5.7.3","list_caption":"Figure: istio mesh的网络流量","alt":"istio mesh的网络流量","nro":172,"url":"../images/00704eQkgy1fshibdwcj3j318g0p8th1.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"istio mesh的网络流量","attributes":{},"skip":false,"key":"5.7.3.5"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.6","level":"5.7.3","list_caption":"Figure: 查明网络问题","alt":"查明网络问题","nro":173,"url":"../images/00704eQkgy1fshicc7or1j318g0p8ahr.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"查明网络问题","attributes":{},"skip":false,"key":"5.7.3.6"},{"backlink":"practice/vistio-visualize-your-istio-mesh.html#fig5.7.3.7","level":"5.7.3","list_caption":"Figure: vistio api的不正确输出","alt":"vistio api的不正确输出","nro":174,"url":"../images/00704eQkgy1fshie7wxkyj30ks0f4myd.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"vistio api的不正确输出","attributes":{},"skip":false,"key":"5.7.3.7"},{"backlink":"practice/opentracing.html#fig5.8.1.1","level":"5.8.1","list_caption":"Figure: Jaeger UI","alt":"Jaeger UI","nro":175,"url":"../images/006tNbRwly1fwjg48fh7xj31kw0wedrg.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Jaeger UI","attributes":{},"skip":false,"key":"5.8.1.1"},{"backlink":"practice/opentracing.html#fig5.8.1.2","level":"5.8.1","list_caption":"Figure: Chrome Inspector","alt":"Chrome Inspector","nro":176,"url":"../images/006tNbRwly1fwjkfbvfluj30y70hf0y9.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Chrome Inspector","attributes":{},"skip":false,"key":"5.8.1.2"},{"backlink":"practice/helm.html#fig5.9.1.1","level":"5.9.1","list_caption":"Figure: Helm 架构图(来自 IBM Developer Blog","alt":"Helm 架构图(来自 IBM Developer Blog","nro":177,"url":"../images/helm-chart.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Helm 架构图(来自 IBM Developer Blog","attributes":{},"skip":false,"key":"5.9.1.1"},{"backlink":"practice/create-private-charts-repo.html#fig5.9.2.1","level":"5.9.2","list_caption":"Figure: Helm monocular界面","alt":"Helm monocular界面","nro":178,"url":"../images/helm-monocular-jimmysong.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Helm monocular界面","attributes":{},"skip":false,"key":"5.9.2.1"},{"backlink":"practice/ci-cd.html#fig5.10.1","level":"5.10","list_caption":"Figure: CI/CD with Kubernetes","alt":"CI/CD with Kubernetes","nro":179,"url":"../images/00704eQkgy1fsaxszh01vj30da0j2jvn.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CI/CD with Kubernetes","attributes":{},"skip":false,"key":"5.10.1"},{"backlink":"practice/ci-cd.html#fig5.10.2","level":"5.10","list_caption":"Figure: Kubernetes改变了应用的基础架构","alt":"Kubernetes改变了应用的基础架构","nro":180,"url":"../images/00704eQkgy1fsayashxz3j31c00w6aed.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes改变了应用的基础架构","attributes":{},"skip":false,"key":"5.10.2"},{"backlink":"practice/ci-cd.html#fig5.10.3","level":"5.10","list_caption":"Figure: Kubernetes中的CI/CD","alt":"Kubernetes中的CI/CD","nro":181,"url":"../images/00704eQkgy1fsayfzk3ezj31bu0tkdky.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes中的CI/CD","attributes":{},"skip":false,"key":"5.10.3"},{"backlink":"practice/ci-cd.html#fig5.10.4","level":"5.10","list_caption":"Figure: 云原生工作负载","alt":"云原生工作负载","nro":182,"url":"../images/00704eQkgy1fsayrk6vppj31bu0w0gsd.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生工作负载","attributes":{},"skip":false,"key":"5.10.4"},{"backlink":"practice/ci-cd.html#fig5.10.5","level":"5.10","list_caption":"Figure: 云原生工作负载映射到Kuberentes原语","alt":"云原生工作负载映射到Kuberentes原语","nro":183,"url":"../images/00704eQkgy1fsaytbabxgj31c00w2n4r.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生工作负载映射到Kuberentes原语","attributes":{},"skip":false,"key":"5.10.5"},{"backlink":"practice/ci-cd.html#fig5.10.6","level":"5.10","list_caption":"Figure: spinnaker中的组件及角色交互关系","alt":"spinnaker中的组件及角色交互关系","nro":184,"url":"../images/00704eQkgy1fsaz2wirz9j31bs0vygsb.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"spinnaker中的组件及角色交互关系","attributes":{},"skip":false,"key":"5.10.6"},{"backlink":"practice/ci-cd.html#fig5.10.7","level":"5.10","list_caption":"Figure: Spinnaker部署流水线","alt":"Spinnaker部署流水线","nro":185,"url":"../images/00704eQkgy1fsaz3yo227j31c60mgdim.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spinnaker部署流水线","attributes":{},"skip":false,"key":"5.10.7"},{"backlink":"practice/ci-cd.html#fig5.10.8","level":"5.10","list_caption":"Figure: Spinnaker的预发布流水线","alt":"Spinnaker的预发布流水线","nro":186,"url":"../images/00704eQkgy1fsaz50k2atj31bs0mitbn.jpg","index":8,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spinnaker的预发布流水线","attributes":{},"skip":false,"key":"5.10.8"},{"backlink":"practice/ci-cd.html#fig5.10.9","level":"5.10","list_caption":"Figure: Spinnaker的生产流水线","alt":"Spinnaker的生产流水线","nro":187,"url":"../images/00704eQkgy1fsaz5n5qs9j31by0motbm.jpg","index":9,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spinnaker的生产流水线","attributes":{},"skip":false,"key":"5.10.9"},{"backlink":"practice/ci-cd.html#fig5.10.10","level":"5.10","list_caption":"Figure: 可观察性","alt":"可观察性","nro":188,"url":"../images/00704eQkgy1fsazabn0b9j31by0w6791.jpg","index":10,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"可观察性","attributes":{},"skip":false,"key":"5.10.10"},{"backlink":"practice/ci-cd.html#fig5.10.11","level":"5.10","list_caption":"Figure: Prometheus生态系统中的组件","alt":"Prometheus生态系统中的组件","nro":189,"url":"../images/00704eQkgy1fsazcclee6j31c20w6n5y.jpg","index":11,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Prometheus生态系统中的组件","attributes":{},"skip":false,"key":"5.10.11"},{"backlink":"practice/jenkins-ci-cd.html#fig5.10.1.1","level":"5.10.1","list_caption":"Figure: 基于Jenkins的持续集成与发布","alt":"基于Jenkins的持续集成与发布","nro":190,"url":"../images/kubernetes-jenkins-ci-cd.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"基于Jenkins的持续集成与发布","attributes":{},"skip":false,"key":"5.10.1.1"},{"backlink":"practice/drone-ci-cd.html#fig5.10.2.1","level":"5.10.2","list_caption":"Figure: OAuth注册","alt":"OAuth注册","nro":191,"url":"../images/github-oauth-register.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OAuth注册","attributes":{},"skip":false,"key":"5.10.2.1"},{"backlink":"practice/drone-ci-cd.html#fig5.10.2.2","level":"5.10.2","list_caption":"Figure: OAuth key","alt":"OAuth key","nro":192,"url":"../images/github-oauth-drone-key.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OAuth key","attributes":{},"skip":false,"key":"5.10.2.2"},{"backlink":"practice/drone-ci-cd.html#fig5.10.2.3","level":"5.10.2","list_caption":"Figure: Drone登陆界面","alt":"Drone登陆界面","nro":193,"url":"../images/drone-login-github.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Drone登陆界面","attributes":{},"skip":false,"key":"5.10.2.3"},{"backlink":"practice/drone-ci-cd.html#fig5.10.2.4","level":"5.10.2","list_caption":"Figure: Github启用repo设置","alt":"Github启用repo设置","nro":194,"url":"../images/drone-github-active.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Github启用repo设置","attributes":{},"skip":false,"key":"5.10.2.4"},{"backlink":"practice/drone-ci-cd.html#fig5.10.2.5","level":"5.10.2","list_caption":"Figure: Github单个repo设置","alt":"Github单个repo设置","nro":195,"url":"../images/drone-github-repo-setting.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Github单个repo设置","attributes":{},"skip":false,"key":"5.10.2.5"},{"backlink":"practice/manually-upgrade.html#fig5.11.1.1","level":"5.11.1","list_caption":"Figure: Kubernetes零宕机时间升级建议","alt":"Kubernetes零宕机时间升级建议","nro":196,"url":"../images/zero-downtime-kubernetes-upgrade-tips.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes零宕机时间升级建议","attributes":{},"skip":false,"key":"5.11.1.1"},{"backlink":"practice/manually-upgrade.html#fig5.11.1.2","level":"5.11.1","list_caption":"Figure: Kuberentes API对象的版本演进","alt":"Kuberentes API对象的版本演进","nro":197,"url":"../images/kubernetes-apversions-changes.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kuberentes API对象的版本演进","attributes":{},"skip":false,"key":"5.11.1.2"},{"backlink":"practice/dashboard-upgrade.html#fig5.11.2.1","level":"5.11.2","list_caption":"Figure: 登陆界面","alt":"登陆界面","nro":198,"url":"../images/kubernetes-dashboard-1.7.1-login.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"登陆界面","attributes":{},"skip":false,"key":"5.11.2.1"},{"backlink":"practice/dashboard-upgrade.html#fig5.11.2.2","level":"5.11.2","list_caption":"Figure: Dashboard首页","alt":"Dashboard首页","nro":199,"url":"../images/kubernetes-dashboard-1.7.1-default-page.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Dashboard首页","attributes":{},"skip":false,"key":"5.11.2.2"},{"backlink":"practice/dashboard-upgrade.html#fig5.11.2.3","level":"5.11.2","list_caption":"Figure: Dashboard用户空间页面","alt":"Dashboard用户空间页面","nro":200,"url":"../images/kubernetes-dashboard-1.7.1-brand.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Dashboard用户空间页面","attributes":{},"skip":false,"key":"5.11.2.3"},{"backlink":"practice/dashboard-upgrade.html#fig5.11.2.4","level":"5.11.2","list_caption":"Figure: kubeconfig文件","alt":"kubeconfig文件","nro":201,"url":"../images/brand-kubeconfig-yaml.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"kubeconfig文件","attributes":{},"skip":false,"key":"5.11.2.4"},{"backlink":"usecases/microservices.html#fig6.2.1","level":"6.2","list_caption":"Figure: 微服务关注的部分","alt":"微服务关注的部分","nro":202,"url":"../images/microservices-concerns.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"微服务关注的部分","attributes":{},"skip":false,"key":"6.2.1"},{"backlink":"usecases/service-discovery-in-microservices.html#fig6.2.1.1","level":"6.2.1","list_caption":"Figure: 微服务中的服务发现","alt":"微服务中的服务发现","nro":203,"url":"../images/service-discovery-in-microservices.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"微服务中的服务发现","attributes":{},"skip":false,"key":"6.2.1.1"},{"backlink":"usecases/microservices-for-java-developers.html#fig6.2.2.1","level":"6.2.2","list_caption":"Figure: Spring技术栈","alt":"Spring技术栈","nro":204,"url":"../images/spring-stack.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spring技术栈","attributes":{},"skip":false,"key":"6.2.2.1"},{"backlink":"usecases/microservices-for-java-developers.html#fig6.2.2.2","level":"6.2.2","list_caption":"Figure: Spring Boot的知识点","alt":"Spring Boot的知识点","nro":205,"url":"../images/spring-boot-note-spots.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spring Boot的知识点","attributes":{},"skip":false,"key":"6.2.2.2"},{"backlink":"usecases/service-mesh.html#fig6.3.1","level":"6.3","list_caption":"Figure: 下一代异构微服务架构","alt":"下一代异构微服务架构","nro":206,"url":"../images/polyglot-microservices-serivce-mesh.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"下一代异构微服务架构","attributes":{},"skip":false,"key":"6.3.1"},{"backlink":"usecases/service-mesh.html#fig6.3.2","level":"6.3","list_caption":"Figure: Service Mesh 架构图","alt":"Service Mesh 架构图","nro":207,"url":"../images/serivce-mesh-control-plane.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh 架构图","attributes":{},"skip":false,"key":"6.3.2"},{"backlink":"usecases/service-mesh.html#fig6.3.3","level":"6.3","list_caption":"Figure: Istio vs linkerd","alt":"Istio vs linkerd","nro":208,"url":"../images/istio-vs-linkerd.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio vs linkerd","attributes":{},"skip":false,"key":"6.3.3"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.1","level":"6.3.1.1","list_caption":"Figure: Service Mesh模型对比","alt":"Service Mesh模型对比","nro":209,"url":"../images/0069RVTdly1fuafvbnuc7j310a0oqdm9.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh模型对比","attributes":{},"skip":false,"key":"6.3.1.1.1"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.2","level":"6.3.1.1","list_caption":"Figure: 网状网络拓扑","alt":"网状网络拓扑","nro":210,"url":"../images/0069RVTdly1fuaie8jan8j310a0kitem.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"网状网络拓扑","attributes":{},"skip":false,"key":"6.3.1.1.2"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.3","level":"6.3.1.1","list_caption":"Figure: Service Mesh架构图","alt":"Service Mesh架构图","nro":211,"url":"../images/0069RVTdly1fuail4d24jj31080rkgr7.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh架构图","attributes":{},"skip":false,"key":"6.3.1.1.3"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.4","level":"6.3.1.1","list_caption":"Figure: Istio Mixer","alt":"Istio Mixer","nro":212,"url":"../images/0069RVTdly1fuam4ln45jj30yu0o6wkc.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio Mixer","attributes":{},"skip":false,"key":"6.3.1.1.4"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.5","level":"6.3.1.1","list_caption":"Figure: Istio架构图","alt":"Istio架构图","nro":213,"url":"../images/0069RVTdly1fuamvq97cuj30yu0wg7cr.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio架构图","attributes":{},"skip":false,"key":"6.3.1.1.5"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.6","level":"6.3.1.1","list_caption":"Figure: OSI模型","alt":"OSI模型","nro":214,"url":"../images/0069RVTdly1fuanez4qbtj30v4183n7p.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OSI模型","attributes":{},"skip":false,"key":"6.3.1.1.6"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.3.1.1.7","level":"6.3.1.1","list_caption":"Figure: 在L5解耦","alt":"在L5解耦","nro":215,"url":"../images/006tNbRwly1fubfiiryirj30w20ayjui.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"在L5解耦","attributes":{},"skip":false,"key":"6.3.1.1.7"},{"backlink":"usecases/comparing-service-mesh-technologies.html#fig6.3.1.2.1","level":"6.3.1.2","list_caption":"Figure: 客户端库","alt":"客户端库","nro":216,"url":"../images/006tNbRwly1fubnx0q9bpj30vq0pq465.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"客户端库","attributes":{},"skip":false,"key":"6.3.1.2.1"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.3.1.3.1","level":"6.3.1.3","list_caption":"Figure: Service Mesh架构图","alt":"Service Mesh架构图","nro":217,"url":"../images/006tNbRwly1fubs6ts3sgj30vo0osdnj.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh架构图","attributes":{},"skip":false,"key":"6.3.1.3.1"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.3.1.3.2","level":"6.3.1.3","list_caption":"Figure: Ingress或边缘代理架构图","alt":"Ingress或边缘代理架构图","nro":218,"url":"../images/006tNbRwly1fubsk4v16hj30vo0bq75z.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Ingress或边缘代理架构图","attributes":{},"skip":false,"key":"6.3.1.3.2"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.3.1.3.3","level":"6.3.1.3","list_caption":"Figure: 路由器网格架构图","alt":"路由器网格架构图","nro":219,"url":"../images/006tNbRwly1fubsxrph3dj30vq0duq53.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"路由器网格架构图","attributes":{},"skip":false,"key":"6.3.1.3.3"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.3.1.3.4","level":"6.3.1.3","list_caption":"Figure: Proxy per Node架构图","alt":"Proxy per Node架构图","nro":220,"url":"../images/006tNbRwly1fubt5a97h7j30vq0bcq5p.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Proxy per Node架构图","attributes":{},"skip":false,"key":"6.3.1.3.4"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.3.1.3.5","level":"6.3.1.3","list_caption":"Figure: Sidecar代理/Fabric模型架构图","alt":"Sidecar代理/Fabric模型架构图","nro":221,"url":"../images/006tNbRwly1fubvi0dnhlj30vo0ekwhx.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar代理/Fabric模型架构图","attributes":{},"skip":false,"key":"6.3.1.3.5"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.3.1.3.6","level":"6.3.1.3","list_caption":"Figure: Sidecar代理/控制平面架构图","alt":"Sidecar代理/控制平面架构图","nro":222,"url":"../images/006tNbRwly1fubvr83wvgj30vq0mmdip.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar代理/控制平面架构图","attributes":{},"skip":false,"key":"6.3.1.3.6"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.3.1.4.1","level":"6.3.1.4","list_caption":"Figure: nginMesh架构图","alt":"nginMesh架构图","nro":223,"url":"../images/006tNbRwly1fucp8yralaj30vu0sijx8.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"nginMesh架构图","attributes":{},"skip":false,"key":"6.3.1.4.1"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.3.1.4.2","level":"6.3.1.4","list_caption":"Figure: Mixer adapter","alt":"Mixer adapter","nro":224,"url":"../images/006tNbRwly1fucplat3l9j30vo0lw43l.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Mixer adapter","attributes":{},"skip":false,"key":"6.3.1.4.2"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.3.1.4.3","level":"6.3.1.4","list_caption":"Figure: SOFAMesh","alt":"SOFAMesh","nro":225,"url":"../images/mosn-with-service-mesh.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"SOFAMesh","attributes":{},"skip":false,"key":"6.3.1.4.3"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.3.1.4.4","level":"6.3.1.4","list_caption":"Figure: SOFAMosn模块架构图","alt":"SOFAMosn模块架构图","nro":226,"url":"../images/006tNbRwly1fucpc5fn8wj31kw0sfdnu.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"SOFAMosn模块架构图","attributes":{},"skip":false,"key":"6.3.1.4.4"},{"backlink":"usecases/istio.html#fig6.3.2.1","level":"6.3.2","list_caption":"Figure: Istio的mindmap","alt":"Istio的mindmap","nro":227,"url":"../images/istio-mindmap.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio的mindmap","attributes":{},"skip":false,"key":"6.3.2.1"},{"backlink":"usecases/istio.html#fig6.3.2.2","level":"6.3.2","list_caption":"Figure: Istio架构图","alt":"Istio架构图","nro":228,"url":"../images/istio-arch.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio架构图","attributes":{},"skip":false,"key":"6.3.2.2"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.1","level":"6.3.2.1","list_caption":"Figure: Istio 在 Kubernetes 中的部署架构图","alt":"Istio 在 Kubernetes 中的部署架构图","nro":229,"url":"../images/istio-deployment-architecture-diagram.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio 在 Kubernetes 中的部署架构图","attributes":{},"skip":false,"key":"6.3.2.1.1"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.2","level":"6.3.2.1","list_caption":"Figure: BookInfo Sample应用架构图","alt":"BookInfo Sample应用架构图","nro":230,"url":"../images/bookinfo-sample-arch.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"BookInfo Sample应用架构图","attributes":{},"skip":false,"key":"6.3.2.1.2"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.3","level":"6.3.2.1","list_caption":"Figure: BookInfo Sample页面","alt":"BookInfo Sample页面","nro":231,"url":"../images/bookinfo-sample.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"BookInfo Sample页面","attributes":{},"skip":false,"key":"6.3.2.1.3"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.4","level":"6.3.2.1","list_caption":"Figure: Istio Grafana界面","alt":"Istio Grafana界面","nro":232,"url":"../images/istio-grafana.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio Grafana界面","attributes":{},"skip":false,"key":"6.3.2.1.4"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.5","level":"6.3.2.1","list_caption":"Figure: Prometheus页面","alt":"Prometheus页面","nro":233,"url":"../images/istio-prometheus.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Prometheus页面","attributes":{},"skip":false,"key":"6.3.2.1.5"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.6","level":"6.3.2.1","list_caption":"Figure: Zipkin页面","alt":"Zipkin页面","nro":234,"url":"../images/istio-zipkin.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Zipkin页面","attributes":{},"skip":false,"key":"6.3.2.1.6"},{"backlink":"usecases/istio-installation.html#fig6.3.2.1.7","level":"6.3.2.1","list_caption":"Figure: ServiceGraph页面","alt":"ServiceGraph页面","nro":235,"url":"../images/istio-servicegraph.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"ServiceGraph页面","attributes":{},"skip":false,"key":"6.3.2.1.7"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.1","level":"6.3.2.4","list_caption":"Figure: katacoda","alt":"katacoda","nro":236,"url":"../images/006tNc79gy1ftwe77v4u5j31kw0ziwtw.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"katacoda","attributes":{},"skip":false,"key":"6.3.2.4.1"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.2","level":"6.3.2.4","list_caption":"Figure: weavescope","alt":"weavescope","nro":237,"url":"../images/006tNc79gy1ftwhtmzhfej31kw0ziww1.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"weavescope","attributes":{},"skip":false,"key":"6.3.2.4.2"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.3","level":"6.3.2.4","list_caption":"Figure: weavescope","alt":"weavescope","nro":238,"url":"../images/006tNc79gy1ftwhvtu1vxj31kw0zitvc.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"weavescope","attributes":{},"skip":false,"key":"6.3.2.4.3"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.4","level":"6.3.2.4","list_caption":"Figure: Red Hat","alt":"Red Hat","nro":239,"url":"../images/006tNc79gy1ftwiolw1tyj31kw0zib29.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Red Hat","attributes":{},"skip":false,"key":"6.3.2.4.4"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.5","level":"6.3.2.4","list_caption":"Figure: Red Hat developers","alt":"Red Hat developers","nro":240,"url":"../images/006tNc79gy1ftwjyxiw1pj31kw0zi4qp.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Red Hat developers","attributes":{},"skip":false,"key":"6.3.2.4.5"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.6","level":"6.3.2.4","list_caption":"Figure: IBM developerWorks","alt":"IBM developerWorks","nro":241,"url":"../images/006tNc79gy1ftweryj0zrj31kw0zix6q.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"IBM developerWorks","attributes":{},"skip":false,"key":"6.3.2.4.6"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.3.2.4.7","level":"6.3.2.4","list_caption":"Figure: IBM developers","alt":"IBM developers","nro":242,"url":"../images/006tNc79gy1ftwesjg1e2j31kw0s8woq.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"IBM developers","attributes":{},"skip":false,"key":"6.3.2.4.7"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.3.2.5.1","level":"6.3.2.5","list_caption":"Figure: Sidecar 模式示意图","alt":"Sidecar 模式示意图","nro":243,"url":"../images/sidecar-pattern.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar 模式示意图","attributes":{},"skip":false,"key":"6.3.2.5.1"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.3.2.5.2","level":"6.3.2.5","list_caption":"Figure: Sidecar 流量劫持示意图","alt":"Sidecar 流量劫持示意图","nro":244,"url":"../images/envoy-sidecar-traffic-interception-jimmysong-blog.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar 流量劫持示意图","attributes":{},"skip":false,"key":"6.3.2.5.2"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.3.2.5.3","level":"6.3.2.5","list_caption":"Figure: iptables 调用链","alt":"iptables 调用链","nro":245,"url":"../images/iptables.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"iptables 调用链","attributes":{},"skip":false,"key":"6.3.2.5.3"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.3.2.5.4","level":"6.3.2.5","list_caption":"Figure: hook-connect 原理示意图","alt":"hook-connect 原理示意图","nro":246,"url":"../images/hook-connect.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"hook-connect 原理示意图","attributes":{},"skip":false,"key":"6.3.2.5.4"},{"backlink":"usecases/envoy-sidecar-routing-of-istio-service-mesh-deep-dive.html#fig6.3.2.6.1","level":"6.3.2.6","list_caption":"Figure: Bookinfo 示例","alt":"Bookinfo 示例","nro":247,"url":"../images/006tNbRwgy1fvlwjd3302j31bo0ro0x5.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Bookinfo 示例","attributes":{},"skip":false,"key":"6.3.2.6.1"},{"backlink":"usecases/linkerd.html#fig6.3.3.1","level":"6.3.3","list_caption":"Figure: source https://linkerd.io","alt":"source https://linkerd.io","nro":248,"url":"../images/diagram-individual-instance.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"source https://linkerd.io","attributes":{},"skip":false,"key":"6.3.3.1"},{"backlink":"usecases/linkerd.html#fig6.3.3.2","level":"6.3.3","list_caption":"Figure: Linkerd 部署架构图片来自https://buoyant.io/2016/10/14/a-service-mesh-for-kubernetes-part-ii-pods-are-great-until-theyre-not/","alt":"Linkerd 部署架构图片来自https://buoyant.io/2016/10/14/a-service-mesh-for-kubernetes-part-ii-pods-are-great-until-theyre-not/","nro":249,"url":"https://buoyant.io/wp-content/uploads/2017/07/buoyant-k8s-daemonset-mesh.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Linkerd 部署架构图片来自https://buoyant.io/2016/10/14/a-service-mesh-for-kubernetes-part-ii-pods-are-great-until-theyre-not/","attributes":{},"skip":false,"key":"6.3.3.2"},{"backlink":"usecases/linkerd.html#fig6.3.3.3","level":"6.3.3","list_caption":"Figure: 基于 dtab 的路由规则配置阶段发布","alt":"基于 dtab 的路由规则配置阶段发布","nro":250,"url":"https://buoyant.io/wp-content/uploads/2017/07/buoyant-4_override.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"基于 dtab 的路由规则配置阶段发布","attributes":{},"skip":false,"key":"6.3.3.3"},{"backlink":"usecases/linkerd.html#fig6.3.3.4","level":"6.3.3","list_caption":"Figure: Linkerd ingress controller","alt":"Linkerd ingress controller","nro":251,"url":"https://buoyant.io/wp-content/uploads/2017/07/buoyant-k8s-hello-world-ingress-controller-1.png","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Linkerd ingress controller","attributes":{},"skip":false,"key":"6.3.3.4"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.1","level":"6.3.3.1","list_caption":"Figure: Jenkins pipeline","alt":"Jenkins pipeline","nro":252,"url":"../images/linkerd-jenkins-pipeline.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Jenkins pipeline","attributes":{},"skip":false,"key":"6.3.3.1.1"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.2","level":"6.3.3.1","list_caption":"Figure: Jenkins config","alt":"Jenkins config","nro":253,"url":"../images/linkerd-jenkins.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Jenkins config","attributes":{},"skip":false,"key":"6.3.3.1.2"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.3","level":"6.3.3.1","list_caption":"Figure: namerd","alt":"namerd","nro":254,"url":"../images/namerd-internal.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"namerd","attributes":{},"skip":false,"key":"6.3.3.1.3"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.4","level":"6.3.3.1","list_caption":"Figure: linkerd监控","alt":"linkerd监控","nro":255,"url":"../images/linkerd-helloworld-outgoing.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"linkerd监控","attributes":{},"skip":false,"key":"6.3.3.1.4"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.5","level":"6.3.3.1","list_caption":"Figure: linkerd监控","alt":"linkerd监控","nro":256,"url":"../images/linkerd-helloworld-incoming.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"linkerd监控","attributes":{},"skip":false,"key":"6.3.3.1.5"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.6","level":"6.3.3.1","list_caption":"Figure: linkerd性能监控","alt":"linkerd性能监控","nro":257,"url":"../images/linkerd-grafana.png","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"linkerd性能监控","attributes":{},"skip":false,"key":"6.3.3.1.6"},{"backlink":"usecases/linkerd-user-guide.html#fig6.3.3.1.7","level":"6.3.3.1","list_caption":"Figure: Linkerd ingress controller","alt":"Linkerd ingress controller","nro":258,"url":"../images/linkerd-ingress-controller.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Linkerd ingress controller","attributes":{},"skip":false,"key":"6.3.3.1.7"},{"backlink":"usecases/conduit-installation.html#fig6.3.4.2.1","level":"6.3.4.2","list_caption":"Figure: Conduit dashboard","alt":"Conduit dashboard","nro":259,"url":"../images/conduit-dashboard.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Conduit dashboard","attributes":{},"skip":false,"key":"6.3.4.2.1"},{"backlink":"usecases/envoy.html#fig6.3.5.1","level":"6.3.5","list_caption":"Figure: 负载均衡器的特性以及拓扑类型","alt":"负载均衡器的特性以及拓扑类型","nro":260,"url":"../images/load-balancing-and-proxing.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"负载均衡器的特性以及拓扑类型","attributes":{},"skip":false,"key":"6.3.5.1"},{"backlink":"usecases/envoy-terminology.html#fig6.3.5.1.1","level":"6.3.5.1","list_caption":"Figure: Envoy proxy 架构图","alt":"Envoy proxy 架构图","nro":261,"url":"../images/envoy-arch.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Envoy proxy 架构图","attributes":{},"skip":false,"key":"6.3.5.1.1"},{"backlink":"usecases/envoy-front-proxy.html#fig6.3.5.2.1","level":"6.3.5.2","list_caption":"Figure: Front proxy 部署结构图转自https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/front_proxy","alt":"Front proxy 部署结构图转自https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/front_proxy","nro":262,"url":"../images/envoyproxy-docker-compose.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Front proxy 部署结构图转自https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/front_proxy","attributes":{},"skip":false,"key":"6.3.5.2.1"},{"backlink":"usecases/envoy-mesh-in-kubernetes-tutorial.html#fig6.3.5.3.1","level":"6.3.5.3","list_caption":"Figure: Envoy Mesh架构图","alt":"Envoy Mesh架构图","nro":263,"url":"../images/envoy-mesh-in-kubernetes.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Envoy Mesh架构图","attributes":{},"skip":false,"key":"6.3.5.3.1"},{"backlink":"usecases/big-data.html#fig6.4.1","level":"6.4","list_caption":"Figure: Spark on yarn with kubernetes","alt":"Spark on yarn with kubernetes","nro":264,"url":"../images/spark-on-yarn-with-kubernetes.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Spark on yarn with kubernetes","attributes":{},"skip":false,"key":"6.4.1"},{"backlink":"usecases/big-data.html#fig6.4.2","level":"6.4","list_caption":"Figure: 在kubernetes上使用多种调度方式","alt":"在kubernetes上使用多种调度方式","nro":265,"url":"../images/spark-on-kubernetes-with-different-schedulers.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"在kubernetes上使用多种调度方式","attributes":{},"skip":false,"key":"6.4.2"},{"backlink":"usecases/spark-standalone-on-kubernetes.html#fig6.4.1.1","level":"6.4.1","list_caption":"Figure: spark master ui","alt":"spark master ui","nro":266,"url":"../images/spark-ui.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"spark master ui","attributes":{},"skip":false,"key":"6.4.1.1"},{"backlink":"usecases/spark-standalone-on-kubernetes.html#fig6.4.1.2","level":"6.4.1","list_caption":"Figure: zeppelin ui","alt":"zeppelin ui","nro":267,"url":"../images/zeppelin-ui.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"zeppelin ui","attributes":{},"skip":false,"key":"6.4.1.2"},{"backlink":"usecases/serverless.html#fig6.5.1","level":"6.5","list_caption":"Figure: Serverless Landscape","alt":"Serverless Landscape","nro":268,"url":"../images/006tNbRwly1fx0ie2kb90j31kw0ynha3.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless Landscape","attributes":{},"skip":false,"key":"6.5.1"},{"backlink":"usecases/serverless.html#fig6.5.2","level":"6.5","list_caption":"Figure: 从物理机到函数计算","alt":"从物理机到函数计算","nro":269,"url":"../images/from-bare-metal-to-functions.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"从物理机到函数计算","attributes":{},"skip":false,"key":"6.5.2"},{"backlink":"usecases/serverless.html#fig6.5.3","level":"6.5","list_caption":"Figure: FaaS Landscape","alt":"FaaS Landscape","nro":270,"url":"../images/redpoint-faas-landscape.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS Landscape","attributes":{},"skip":false,"key":"6.5.3"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.1","level":"6.5.1","list_caption":"Figure: Serverless 在云原生技术中的地位","alt":"Serverless 在云原生技术中的地位","nro":271,"url":"../images/cloud-landscape-zh.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless 在云原生技术中的地位","attributes":{},"skip":false,"key":"6.5.1.1"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.2","level":"6.5.1","list_caption":"Figure: 服务端软件的运行环境","alt":"服务端软件的运行环境","nro":272,"url":"../images/serverless-server-side-software.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"服务端软件的运行环境","attributes":{},"skip":false,"key":"6.5.1.2"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.3","level":"6.5.1","list_caption":"Figure: FaaS应用架构","alt":"FaaS应用架构","nro":273,"url":"../images/serverless-faas-platform.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS应用架构","attributes":{},"skip":false,"key":"6.5.1.3"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.4","level":"6.5.1","list_caption":"Figure: Serverless 中的函数定义","alt":"Serverless 中的函数定义","nro":274,"url":"../images/006y8mN6ly1g7ldey3l7gj31ti0mwta9.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless 中的函数定义","attributes":{},"skip":false,"key":"6.5.1.4"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.5","level":"6.5.1","list_caption":"Figure: FaaS 中的函数","alt":"FaaS 中的函数","nro":275,"url":"../images/006y8mN6ly1g7ldhm7bxyj31040u0q5n.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS 中的函数","attributes":{},"skip":false,"key":"6.5.1.5"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.6","level":"6.5.1","list_caption":"Figure: 传统应用程序架构","alt":"传统应用程序架构","nro":276,"url":"../images/non-serverless-game-arch.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"传统应用程序架构","attributes":{},"skip":false,"key":"6.5.1.6"},{"backlink":"usecases/understanding-serverless.html#fig6.5.1.7","level":"6.5.1","list_caption":"Figure: Serverless架构","alt":"Serverless架构","nro":277,"url":"../images/serverless-game-arch.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless架构","attributes":{},"skip":false,"key":"6.5.1.7"},{"backlink":"usecases/openfaas-quick-start.html#fig6.5.2.1.1","level":"6.5.2.1","list_caption":"Figure: OpenFaaS架构","alt":"OpenFaaS架构","nro":278,"url":"../images/openfaas-arch.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaaS架构","attributes":{},"skip":false,"key":"6.5.2.1.1"},{"backlink":"usecases/openfaas-quick-start.html#fig6.5.2.1.2","level":"6.5.2.1","list_caption":"Figure: OpenFaaS Prometheus","alt":"OpenFaaS Prometheus","nro":279,"url":"../images/openfaas-prometheus.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaaS Prometheus","attributes":{},"skip":false,"key":"6.5.2.1.2"},{"backlink":"usecases/openfaas-quick-start.html#fig6.5.2.1.3","level":"6.5.2.1","list_caption":"Figure: OpenFaas Grafana监控","alt":"OpenFaas Grafana监控","nro":280,"url":"../images/openfaas-grafana.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaas Grafana监控","attributes":{},"skip":false,"key":"6.5.2.1.3"},{"backlink":"usecases/openfaas-quick-start.html#fig6.5.2.1.4","level":"6.5.2.1","list_caption":"Figure: OpenFaas Dashboard","alt":"OpenFaas Dashboard","nro":281,"url":"../images/openfaas-deploy-a-function.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaas Dashboard","attributes":{},"skip":false,"key":"6.5.2.1.4"},{"backlink":"usecases/openfaas-quick-start.html#fig6.5.2.1.5","level":"6.5.2.1","list_caption":"Figure: NodeInfo执行结果","alt":"NodeInfo执行结果","nro":282,"url":"../images/openfaas-nodeinfo.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"NodeInfo执行结果","attributes":{},"skip":false,"key":"6.5.2.1.5"},{"backlink":"usecases/knative.html#fig6.5.3.1","level":"6.5.3","list_caption":"Figure: Knative logo","alt":"Knative logo","nro":283,"url":"https://tva1.sinaimg.cn/large/006y8mN6ly1g7pg0iwbzfj30d8080dfp.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Knative logo","attributes":{},"skip":false,"key":"6.5.3.1"},{"backlink":"usecases/knative.html#fig6.5.3.2","level":"6.5.3","list_caption":"Figure: Knative 受众(图片来自 knative.dev","alt":"Knative 受众(图片来自 knative.dev","nro":284,"url":"https://tva1.sinaimg.cn/large/006y8mN6ly1g7po5i7cgqj31ap0u075l.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Knative 受众(图片来自 knative.dev","attributes":{},"skip":false,"key":"6.5.3.2"},{"backlink":"usecases/oam.html#fig6.6.1.1","level":"6.6.1","list_caption":"Figure: OAM 的原理","alt":"OAM 的原理","nro":285,"url":"../images/oam-principle.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OAM 的原理","attributes":{},"skip":false,"key":"6.6.1.1"},{"backlink":"usecases/edge-computing.html#fig6.7.1","level":"6.7","list_caption":"Figure: KubeEdge logo","alt":"KubeEdge logo","nro":286,"url":"https://tva1.sinaimg.cn/large/006y8mN6ly1g7vfsugr2fj306y06yjra.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"KubeEdge logo","attributes":{},"skip":false,"key":"6.7.1"},{"backlink":"develop/sigs-and-working-group.html#fig7.2.1","level":"7.2","list_caption":"Figure: Kubernetes SIG","alt":"Kubernetes SIG","nro":287,"url":"../images/kubernetes-sigs.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes SIG","attributes":{},"skip":false,"key":"7.2.1"},{"backlink":"develop/testing.html#fig7.4.1","level":"7.4","list_caption":"Figure: test-infra架构图图片来自官方GitHub","alt":"test-infra架构图图片来自官方GitHub","nro":288,"url":"../images/kubernetes-test-architecture.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"test-infra架构图图片来自官方GitHub","attributes":{},"skip":false,"key":"7.4.1"},{"backlink":"develop/client-go-sample.html#fig7.5.1","level":"7.5","list_caption":"Figure: 使用kubernetes dashboard进行故障排查","alt":"使用kubernetes dashboard进行故障排查","nro":289,"url":"../images/kubernetes-client-go-sample-update.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"使用kubernetes dashboard进行故障排查","attributes":{},"skip":false,"key":"7.5.1"},{"backlink":"cloud-native/cncf.html#fig8.1.1","level":"8.1","list_caption":"Figure: CNCF landscape","alt":"CNCF landscape","nro":290,"url":"../images/006tNbRwly1fxmx633ymqj31dp0u0kjn.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF landscape","attributes":{},"skip":false,"key":"8.1.1"},{"backlink":"cloud-native/cncf.html#fig8.1.2","level":"8.1","list_caption":"Figure: CNCF项目成熟度级别","alt":"CNCF项目成熟度级别","nro":291,"url":"../images/cncf-graduation-criteria-v2.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF项目成熟度级别","attributes":{},"skip":false,"key":"8.1.2"},{"backlink":"cloud-native/cncf-charter.html#fig8.2.1","level":"8.2","list_caption":"Figure: CNCF组织架构图","alt":"CNCF组织架构图","nro":292,"url":"../images/cncf-org-arch.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF组织架构图","attributes":{},"skip":false,"key":"8.2.1"},{"backlink":"cloud-native/cncf-charter.html#fig8.2.2","level":"8.2","list_caption":"Figure: 云原生的理想分层架构","alt":"云原生的理想分层架构","nro":293,"url":"../images/006tKfTcly1ft3zgjlisxj30n70ffjth.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生的理想分层架构","attributes":{},"skip":false,"key":"8.2.2"},{"backlink":"cloud-native/cncf-sandbox-criteria.html#fig8.4.1","level":"8.4","list_caption":"Figure: sandbox 流程","alt":"sandbox 流程","nro":294,"url":"../images/sandbox-process.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"sandbox 流程","attributes":{},"skip":false,"key":"8.4.1"},{"backlink":"cloud-native/cncf-project-governing.html#fig8.5.1","level":"8.5","list_caption":"Figure: CNCF 项目的成熟度分类","alt":"CNCF 项目的成熟度分类","nro":295,"url":"../images/cncf-graduation.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF 项目的成熟度分类","attributes":{},"skip":false,"key":"8.5.1"},{"backlink":"cloud-native/cncf-project-governing.html#fig8.5.2","level":"8.5","list_caption":"Figure: CNCF中的项目运作","alt":"CNCF中的项目运作","nro":296,"url":"../images/006tNc79ly1g1yz80ag98j31cs0n2gr7.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF中的项目运作","attributes":{},"skip":false,"key":"8.5.2"},{"backlink":"cloud-native/cncf-project-governing.html#fig8.5.3","level":"8.5","list_caption":"Figure: CNCF项目成熟度级别","alt":"CNCF项目成熟度级别","nro":297,"url":"../images/cncf-graduation-criteria-v2.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF项目成熟度级别","attributes":{},"skip":false,"key":"8.5.3"},{"backlink":"appendix/material-share.html#fig9.3.1","level":"9.3","list_caption":"Figure: Kubernetes 资源图标示例","alt":"Kubernetes 资源图标示例","nro":298,"url":"../images/006tNc79ly1fzmnolp5ghj30z90u0gwf.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 资源图标示例","attributes":{},"skip":false,"key":"9.3.1"},{"backlink":"appendix/issues.html#fig9.6.1","level":"9.6","list_caption":"Figure: pvc-storage-limit","alt":"pvc-storage-limit","nro":299,"url":"../images/pvc-storage-limit.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"pvc-storage-limit","attributes":{},"skip":false,"key":"9.6.1"},{"backlink":"appendix/kubernetes-1.14-changelog.html#fig9.7.8.1","level":"9.7.8","list_caption":"Figure: 大鱿鱼kubectl log","alt":"大鱿鱼kubectl log","nro":300,"url":"../images/006tKfTcly1g1gbdpsdbgj303c03cwel.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"大鱿鱼kubectl log","attributes":{},"skip":false,"key":"9.7.8.1"},{"backlink":"appendix/kubernetes-1.14-changelog.html#fig9.7.8.2","level":"9.7.8","list_caption":"Figure: Kubernetes 吉祥物 kubee-cuddle","alt":"Kubernetes 吉祥物 kubee-cuddle","nro":301,"url":"../images/006tKfTcly1g1gbjvx2ugj305k05mmx9.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 吉祥物 kubee-cuddle","attributes":{},"skip":false,"key":"9.7.8.2"},{"backlink":"appendix/kubernetes-1.15-changelog.html#fig9.7.9.1","level":"9.7.9","list_caption":"Figure: KubeAdmin Logo","alt":"KubeAdmin Logo","nro":302,"url":"https://d33wubrfki0l68.cloudfront.net/285b361256db9bb624c22ff9cd32557b4bc61aba/759c7/images/blog/2019-06-19-kubernetes-1-15-release-announcement/kubeadm-logo.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"KubeAdmin Logo","attributes":{},"skip":false,"key":"9.7.9.1"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.1","level":"9.8.2","list_caption":"Figure: Kubernetes 搜索趋势(来自 Google trends)","alt":"Kubernetes 搜索趋势(来自 Google trends)","nro":303,"url":"../images/006tNc79ly1fzne6y4f2ej31q60fedho.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 搜索趋势(来自 Google trends)","attributes":{},"skip":false,"key":"9.8.2.1"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.2","level":"9.8.2","list_caption":"Figure: Kubernetes 的百度指数","alt":"Kubernetes 的百度指数","nro":304,"url":"../images/006tNc79ly1fznegoocmvj31y00hmgon.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 的百度指数","attributes":{},"skip":false,"key":"9.8.2.2"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.3","level":"9.8.2","list_caption":"Figure: Istio 中的 CRD","alt":"Istio 中的 CRD","nro":305,"url":"../images/006tNc79ly1fzna87wmfij30u00zc4qp.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio 中的 CRD","attributes":{},"skip":false,"key":"9.8.2.3"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.4","level":"9.8.2","list_caption":"Figure: 2019 Q1 软件架构趋势 - 来自 InfoQ","alt":"2019 Q1 软件架构趋势 - 来自 InfoQ","nro":306,"url":"../images/006tNc79ly1fzor2k6f7wj313j0u0dl3.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"2019 Q1 软件架构趋势 - 来自 InfoQ","attributes":{},"skip":false,"key":"9.8.2.4"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.5","level":"9.8.2","list_caption":"Figure: ServiceMesher 社区 Logo","alt":"ServiceMesher 社区 Logo","nro":307,"url":"../images/006tNc79ly1fznadbp63qj31jt0beq9s.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"ServiceMesher 社区 Logo","attributes":{},"skip":false,"key":"9.8.2.5"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.6","level":"9.8.2","list_caption":"Figure: ServiceMesher社区2018年活动一览","alt":"ServiceMesher社区2018年活动一览","nro":308,"url":"../images/006tNc79ly1fzm9vs4o3aj31s00u0x6p.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"ServiceMesher社区2018年活动一览","attributes":{},"skip":false,"key":"9.8.2.6"},{"backlink":"appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.html#fig9.8.2.7","level":"9.8.2","list_caption":"Figure: CNCF Landscape 中的 Serverless 单元","alt":"CNCF Landscape 中的 Serverless 单元","nro":309,"url":"../images/006tNc79ly1fznbh3vfbwj310f0jxgxj.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF Landscape 中的 Serverless 单元","attributes":{},"skip":false,"key":"9.8.2.7"},{"backlink":"appendix/cncf-annual-report-2018.html#fig9.9.1.1","level":"9.9.1","list_caption":"Figure: CNCF 项目成熟度级别","alt":"CNCF 项目成熟度级别","nro":310,"url":"../images/006tNc79ly1g04s0oznytj31tg0ok7ca.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CNCF 项目成熟度级别","attributes":{},"skip":false,"key":"9.9.1.1"},{"backlink":"appendix/cncf-annual-report-2018.html#fig9.9.1.2","level":"9.9.1","list_caption":"Figure: KCSP","alt":"KCSP","nro":311,"url":"../images/006tNc79ly1g04tl97vm4j318v0h7dpt.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"KCSP","attributes":{},"skip":false,"key":"9.9.1.2"},{"backlink":"appendix/about-cka-candidate.html#fig9.11.1","level":"9.11","list_caption":"Figure: cka-question","alt":"cka-question","nro":312,"url":"../images/cka-question.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"cka-question","attributes":{},"skip":false,"key":"9.11.1"},{"backlink":"appendix/about-cka-candidate.html#fig9.11.2","level":"9.11","list_caption":"Figure: CKA mindmap","alt":"CKA mindmap","nro":313,"url":"../images/cka-mindmap.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"CKA mindmap","attributes":{},"skip":false,"key":"9.11.2"}]},"title":"Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)","language":"zh-hans","links":{"sidebar":{"回到主页":"https://jimmysong.io","Awesome Cloud Native":"https://jimmysong.io/awesome-cloud-native","云原生社区":"https://cloudnative.to","中国云原生发展白皮书2020":"https://cloudnativeindustryalliance.github.io/whitepaper2020/","云原生应用白皮书":"https://jimmysong.io/guide-to-cloud-native-app/"}},"gitbook":"*","description":"Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册本书记录了本人从零开始学习和使用Kubernetes的心路历程着重于经验分享和总结同时也会有相关的概念解析希望能够帮助大家少踩坑少走弯路还会指引大家关注Kubernetes生态周边如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native等领域。"},"file":{"path":"concepts/flannel.md","mtime":"2020-06-22T07:18:58.819Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-06-22T07:20:12.337Z"},"basePath":"..","book":{"language":""}});
});
</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-lightbox/js/lightbox.min.js"></script>
<script src="../gitbook/gitbook-plugin-ga/plugin.js"></script>
<script src="../gitbook/gitbook-plugin-copy-code-button/toggle.js"></script>
<script src="../gitbook/gitbook-plugin-alerts/plugin.js"></script>
<script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
<script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
</body>
</html>