kubernetes-handbook/cloud-native/cloud-native-programming-la...

4930 lines
275 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>云原生编程语言 Ballerina · 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="cloud-native-programming-language-pulumi.html" />
<link rel="prev" href="cloud-native-programming-languages.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">云原生开源项目大全</a>
</li>
<li>
<a href="https://cloudnative.to" 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-definition.html">
<a href="cloud-native-definition.html">
<b>2.1.</b>
云原生Cloud Native的定义
</a>
</li>
<li class="chapter " data-level="2.2" data-path="cloud-native-philosophy.html">
<a href="cloud-native-philosophy.html">
<b>2.2.</b>
云原生的设计哲学
</a>
</li>
<li class="chapter " data-level="2.3" data-path="quick-start.html">
<a href="quick-start.html">
<b>2.3.</b>
云原生新手入门指南
</a>
</li>
<li class="chapter " data-level="2.4" data-path="play-with-kubernetes.html">
<a href="play-with-kubernetes.html">
<b>2.4.</b>
Play with Kubernetes
</a>
</li>
<li class="chapter " data-level="2.5" data-path="cloud-native-local-quick-start.html">
<a href="cloud-native-local-quick-start.html">
<b>2.5.</b>
快速部署一个云原生本地实验环境
</a>
</li>
<li class="chapter " data-level="2.6" data-path="setup-kubernetes-with-rancher-and-aliyun.html">
<a href="setup-kubernetes-with-rancher-and-aliyun.html">
<b>2.6.</b>
使用 Rancher 在阿里云上部署 Kubenretes 集群
</a>
</li>
<li class="chapter " data-level="2.7" data-path="kubernetes-and-cloud-native-app-overview.html">
<a href="kubernetes-and-cloud-native-app-overview.html">
<b>2.7.</b>
Kubernetes 与云原生应用概览
</a>
</li>
<li class="chapter " data-level="2.8" data-path="from-kubernetes-to-cloud-native.html">
<a href="from-kubernetes-to-cloud-native.html">
<b>2.8.</b>
云原生应用之路 —— 从 Kubernetes 到 Cloud Native
</a>
</li>
<li class="chapter " data-level="2.9" data-path="define-cloud-native-app.html">
<a href="define-cloud-native-app.html">
<b>2.9.</b>
定义云原生应用
</a>
<ul class="articles">
<li class="chapter " data-level="2.9.1" data-path="oam.html">
<a href="oam.html">
<b>2.9.1.</b>
OAM
</a>
<ul class="articles">
<li class="chapter " data-level="2.9.1.1" data-path="workload.html">
<a href="workload.html">
<b>2.9.1.1.</b>
Workload
</a>
</li>
<li class="chapter " data-level="2.9.1.2" data-path="component.html">
<a href="component.html">
<b>2.9.1.2.</b>
Component
</a>
</li>
<li class="chapter " data-level="2.9.1.3" data-path="trait.html">
<a href="trait.html">
<b>2.9.1.3.</b>
Trait
</a>
</li>
<li class="chapter " data-level="2.9.1.4" data-path="application-scope.html">
<a href="application-scope.html">
<b>2.9.1.4.</b>
Application Scope
</a>
</li>
<li class="chapter " data-level="2.9.1.5" data-path="application-configuration.html">
<a href="application-configuration.html">
<b>2.9.1.5.</b>
Application Configuration
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="2.9.2" data-path="crossplane.html">
<a href="crossplane.html">
<b>2.9.2.</b>
Crossplane
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="2.10" data-path="cloud-native-programming-languages.html">
<a href="cloud-native-programming-languages.html">
<b>2.10.</b>
云原生编程语言
</a>
<ul class="articles">
<li class="chapter active" data-level="2.10.1" data-path="cloud-native-programming-language-ballerina.html">
<a href="cloud-native-programming-language-ballerina.html">
<b>2.10.1.</b>
云原生编程语言 Ballerina
</a>
</li>
<li class="chapter " data-level="2.10.2" data-path="cloud-native-programming-language-pulumi.html">
<a href="cloud-native-programming-language-pulumi.html">
<b>2.10.2.</b>
云原生编程语言 Pulumi
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="2.11" data-path="the-future-of-cloud-native.html">
<a href="the-future-of-cloud-native.html">
<b>2.11.</b>
云原生的未来
</a>
</li>
<li class="header">概念与原理</li>
<li class="chapter " data-level="3.1" data-path="../concepts/">
<a href="../concepts/">
<b>3.1.</b>
Kubernetes 架构
</a>
<ul class="articles">
<li class="chapter " data-level="3.1.1" data-path="../concepts/concepts.html">
<a href="../concepts/concepts.html">
<b>3.1.1.</b>
设计理念
</a>
</li>
<li class="chapter " data-level="3.1.2" data-path="../concepts/etcd.html">
<a href="../concepts/etcd.html">
<b>3.1.2.</b>
Etcd 解析
</a>
</li>
<li class="chapter " data-level="3.1.3" data-path="../concepts/open-interfaces.html">
<a href="../concepts/open-interfaces.html">
<b>3.1.3.</b>
开放接口
</a>
<ul class="articles">
<li class="chapter " data-level="3.1.3.1" data-path="../concepts/cri.html">
<a href="../concepts/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="../concepts/cni.html">
<a href="../concepts/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="../concepts/csi.html">
<a href="../concepts/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="../concepts/networking.html">
<a href="../concepts/networking.html">
<b>3.2.</b>
Kubernetes 中的网络
</a>
<ul class="articles">
<li class="chapter " data-level="3.2.1" data-path="../concepts/flannel.html">
<a href="../concepts/flannel.html">
<b>3.2.1.</b>
Kubernetes 中的网络解析 —— 以 flannel 为例
</a>
</li>
<li class="chapter " data-level="3.2.2" data-path="../concepts/calico.html">
<a href="../concepts/calico.html">
<b>3.2.2.</b>
Kubernetes 中的网络解析 —— 以 calico 为例
</a>
</li>
<li class="chapter " data-level="3.2.3" data-path="../concepts/cilium.html">
<a href="../concepts/cilium.html">
<b>3.2.3.</b>
具备 API 感知的网络和安全性管理开源软件 Cilium
</a>
<ul class="articles">
<li class="chapter " data-level="3.2.3.1" data-path="../concepts/cilium-concepts.html">
<a href="../concepts/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="../concepts/objects.html">
<a href="../concepts/objects.html">
<b>3.3.</b>
资源对象与基本概念解析
</a>
</li>
<li class="chapter " data-level="3.4" data-path="../concepts/pod-state-and-lifecycle.html">
<a href="../concepts/pod-state-and-lifecycle.html">
<b>3.4.</b>
Pod 状态与生命周期管理
</a>
<ul class="articles">
<li class="chapter " data-level="3.4.1" data-path="../concepts/pod-overview.html">
<a href="../concepts/pod-overview.html">
<b>3.4.1.</b>
Pod 概览
</a>
</li>
<li class="chapter " data-level="3.4.2" data-path="../concepts/pod.html">
<a href="../concepts/pod.html">
<b>3.4.2.</b>
Pod 解析
</a>
</li>
<li class="chapter " data-level="3.4.3" data-path="../concepts/init-containers.html">
<a href="../concepts/init-containers.html">
<b>3.4.3.</b>
Init 容器
</a>
</li>
<li class="chapter " data-level="3.4.4" data-path="../concepts/pause-container.html">
<a href="../concepts/pause-container.html">
<b>3.4.4.</b>
Pause 容器
</a>
</li>
<li class="chapter " data-level="3.4.5" data-path="../concepts/pod-security-policy.html">
<a href="../concepts/pod-security-policy.html">
<b>3.4.5.</b>
Pod 安全策略
</a>
</li>
<li class="chapter " data-level="3.4.6" data-path="../concepts/pod-lifecycle.html">
<a href="../concepts/pod-lifecycle.html">
<b>3.4.6.</b>
Pod 的生命周期
</a>
</li>
<li class="chapter " data-level="3.4.7" data-path="../concepts/pod-hook.html">
<a href="../concepts/pod-hook.html">
<b>3.4.7.</b>
Pod Hook
</a>
</li>
<li class="chapter " data-level="3.4.8" data-path="../concepts/pod-preset.html">
<a href="../concepts/pod-preset.html">
<b>3.4.8.</b>
Pod Preset
</a>
</li>
<li class="chapter " data-level="3.4.9" data-path="../concepts/pod-disruption-budget.html">
<a href="../concepts/pod-disruption-budget.html">
<b>3.4.9.</b>
Pod 中断与 PDBPod 中断预算)
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.5" data-path="../concepts/cluster.html">
<a href="../concepts/cluster.html">
<b>3.5.</b>
集群资源管理
</a>
<ul class="articles">
<li class="chapter " data-level="3.5.1" data-path="../concepts/node.html">
<a href="../concepts/node.html">
<b>3.5.1.</b>
Node
</a>
</li>
<li class="chapter " data-level="3.5.2" data-path="../concepts/namespace.html">
<a href="../concepts/namespace.html">
<b>3.5.2.</b>
Namespace
</a>
</li>
<li class="chapter " data-level="3.5.3" data-path="../concepts/label.html">
<a href="../concepts/label.html">
<b>3.5.3.</b>
Label
</a>
</li>
<li class="chapter " data-level="3.5.4" data-path="../concepts/annotation.html">
<a href="../concepts/annotation.html">
<b>3.5.4.</b>
Annotation
</a>
</li>
<li class="chapter " data-level="3.5.5" data-path="../concepts/taint-and-toleration.html">
<a href="../concepts/taint-and-toleration.html">
<b>3.5.5.</b>
Taint 和 Toleration污点和容忍
</a>
</li>
<li class="chapter " data-level="3.5.6" data-path="../concepts/garbage-collection.html">
<a href="../concepts/garbage-collection.html">
<b>3.5.6.</b>
垃圾收集
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.6" data-path="../concepts/controllers.html">
<a href="../concepts/controllers.html">
<b>3.6.</b>
控制器
</a>
<ul class="articles">
<li class="chapter " data-level="3.6.1" data-path="../concepts/deployment.html">
<a href="../concepts/deployment.html">
<b>3.6.1.</b>
Deployment
</a>
</li>
<li class="chapter " data-level="3.6.2" data-path="../concepts/statefulset.html">
<a href="../concepts/statefulset.html">
<b>3.6.2.</b>
StatefulSet
</a>
</li>
<li class="chapter " data-level="3.6.3" data-path="../concepts/daemonset.html">
<a href="../concepts/daemonset.html">
<b>3.6.3.</b>
DaemonSet
</a>
</li>
<li class="chapter " data-level="3.6.4" data-path="../concepts/replicaset.html">
<a href="../concepts/replicaset.html">
<b>3.6.4.</b>
ReplicationController 和 ReplicaSet
</a>
</li>
<li class="chapter " data-level="3.6.5" data-path="../concepts/job.html">
<a href="../concepts/job.html">
<b>3.6.5.</b>
Job
</a>
</li>
<li class="chapter " data-level="3.6.6" data-path="../concepts/cronjob.html">
<a href="../concepts/cronjob.html">
<b>3.6.6.</b>
CronJob
</a>
</li>
<li class="chapter " data-level="3.6.7" data-path="../concepts/horizontal-pod-autoscaling.html">
<a href="../concepts/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="../concepts/custom-metrics-hpa.html">
<a href="../concepts/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="../concepts/admission-controller.html">
<a href="../concepts/admission-controller.html">
<b>3.6.8.</b>
准入控制器Admission Controller
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.7" data-path="../concepts/service-discovery.html">
<a href="../concepts/service-discovery.html">
<b>3.7.</b>
服务发现
</a>
<ul class="articles">
<li class="chapter " data-level="3.7.1" data-path="../concepts/service.html">
<a href="../concepts/service.html">
<b>3.7.1.</b>
Service
</a>
</li>
<li class="chapter " data-level="3.7.2" data-path="../concepts/ingress.html">
<a href="../concepts/ingress.html">
<b>3.7.2.</b>
Ingress
</a>
<ul class="articles">
<li class="chapter " data-level="3.7.2.1" data-path="../concepts/traefik-ingress-controller.html">
<a href="../concepts/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="../concepts/authentication-and-permission.html">
<a href="../concepts/authentication-and-permission.html">
<b>3.8.</b>
身份与权限控制
</a>
<ul class="articles">
<li class="chapter " data-level="3.8.1" data-path="../concepts/serviceaccount.html">
<a href="../concepts/serviceaccount.html">
<b>3.8.1.</b>
ServiceAccount
</a>
</li>
<li class="chapter " data-level="3.8.2" data-path="../concepts/rbac.html">
<a href="../concepts/rbac.html">
<b>3.8.2.</b>
RBAC—— 基于角色的访问控制
</a>
</li>
<li class="chapter " data-level="3.8.3" data-path="../concepts/network-policy.html">
<a href="../concepts/network-policy.html">
<b>3.8.3.</b>
NetworkPolicy
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.9" data-path="../concepts/storage.html">
<a href="../concepts/storage.html">
<b>3.9.</b>
存储
</a>
<ul class="articles">
<li class="chapter " data-level="3.9.1" data-path="../concepts/secret.html">
<a href="../concepts/secret.html">
<b>3.9.1.</b>
Secret
</a>
</li>
<li class="chapter " data-level="3.9.2" data-path="../concepts/configmap.html">
<a href="../concepts/configmap.html">
<b>3.9.2.</b>
ConfigMap
</a>
<ul class="articles">
<li class="chapter " data-level="3.9.2.1" data-path="../concepts/configmap-hot-update.html">
<a href="../concepts/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="../concepts/volume.html">
<a href="../concepts/volume.html">
<b>3.9.3.</b>
Volume
</a>
</li>
<li class="chapter " data-level="3.9.4" data-path="../concepts/persistent-volume.html">
<a href="../concepts/persistent-volume.html">
<b>3.9.4.</b>
Persistent Volume持久化卷
</a>
</li>
<li class="chapter " data-level="3.9.5" data-path="../concepts/storageclass.html">
<a href="../concepts/storageclass.html">
<b>3.9.5.</b>
Storage Class
</a>
</li>
<li class="chapter " data-level="3.9.6" data-path="../concepts/local-persistent-storage.html">
<a href="../concepts/local-persistent-storage.html">
<b>3.9.6.</b>
本地持久化存储
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.10" data-path="../concepts/extension.html">
<a href="../concepts/extension.html">
<b>3.10.</b>
集群扩展
</a>
<ul class="articles">
<li class="chapter " data-level="3.10.1" data-path="../concepts/custom-resource.html">
<a href="../concepts/custom-resource.html">
<b>3.10.1.</b>
使用自定义资源扩展 API
</a>
</li>
<li class="chapter " data-level="3.10.2" data-path="../concepts/crd.html">
<a href="../concepts/crd.html">
<b>3.10.2.</b>
使用 CRD 扩展 Kubernetes API
</a>
</li>
<li class="chapter " data-level="3.10.3" data-path="../concepts/aggregated-api-server.html">
<a href="../concepts/aggregated-api-server.html">
<b>3.10.3.</b>
Aggregated API Server
</a>
</li>
<li class="chapter " data-level="3.10.4" data-path="../concepts/apiservice.html">
<a href="../concepts/apiservice.html">
<b>3.10.4.</b>
APIService
</a>
</li>
<li class="chapter " data-level="3.10.5" data-path="../concepts/service-catalog.html">
<a href="../concepts/service-catalog.html">
<b>3.10.5.</b>
Service Catalog
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.11" data-path="../concepts/scheduling.html">
<a href="../concepts/scheduling.html">
<b>3.11.</b>
资源调度
</a>
<ul class="articles">
<li class="chapter " data-level="3.11.1" data-path="../concepts/qos.html">
<a href="../concepts/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>
Lens - Kubernetes IDE/桌面客户端
</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>
<ul class="articles">
<li class="chapter " data-level="5.12.1.1" data-path="../practice/in-place-update.html">
<a href="../practice/in-place-update.html">
<b>5.12.1.1.</b>
原地升级
</a>
</li>
</ul>
</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/observability.html">
<a href="../usecases/observability.html">
<b>6.3.</b>
可观察性
</a>
</li>
<li class="chapter " data-level="6.4" data-path="../usecases/service-mesh.html">
<a href="../usecases/service-mesh.html">
<b>6.4.</b>
Service Mesh 服务网格
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.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.4.1.</b>
企业级服务网格架构
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.1.1" data-path="../usecases/service-mesh-fundamental.html">
<a href="../usecases/service-mesh-fundamental.html">
<b>6.4.1.1.</b>
Service Mesh 基础
</a>
</li>
<li class="chapter " data-level="6.4.1.2" data-path="../usecases/comparing-service-mesh-technologies.html">
<a href="../usecases/comparing-service-mesh-technologies.html">
<b>6.4.1.2.</b>
Service Mesh 技术对比
</a>
</li>
<li class="chapter " data-level="6.4.1.3" data-path="../usecases/service-mesh-adoption-and-evolution.html">
<a href="../usecases/service-mesh-adoption-and-evolution.html">
<b>6.4.1.3.</b>
采纳和演进
</a>
</li>
<li class="chapter " data-level="6.4.1.4" data-path="../usecases/service-mesh-customization-and-integration.html">
<a href="../usecases/service-mesh-customization-and-integration.html">
<b>6.4.1.4.</b>
定制和集成
</a>
</li>
<li class="chapter " data-level="6.4.1.5" data-path="../usecases/service-mesh-conclusion.html">
<a href="../usecases/service-mesh-conclusion.html">
<b>6.4.1.5.</b>
总结
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.4.2" data-path="../usecases/istio.html">
<a href="../usecases/istio.html">
<b>6.4.2.</b>
Istio
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.2.1" data-path="../usecases/istio-installation.html">
<a href="../usecases/istio-installation.html">
<b>6.4.2.1.</b>
安装并试用 Istio service mesh
</a>
</li>
<li class="chapter " data-level="6.4.2.2" data-path="../usecases/sidecar-spec-in-istio.html">
<a href="../usecases/sidecar-spec-in-istio.html">
<b>6.4.2.2.</b>
Istio 中 sidecar 的注入规范及示例
</a>
</li>
<li class="chapter " data-level="6.4.2.3" data-path="../usecases/istio-community-tips.html">
<a href="../usecases/istio-community-tips.html">
<b>6.4.2.3.</b>
如何参与 Istio 社区及注意事项
</a>
</li>
<li class="chapter " data-level="6.4.2.4" data-path="../usecases/istio-tutorials-collection.html">
<a href="../usecases/istio-tutorials-collection.html">
<b>6.4.2.4.</b>
Istio 免费学习资源汇总
</a>
</li>
<li class="chapter " data-level="6.4.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.4.2.5.</b>
Sidecar 的注入与流量劫持
</a>
</li>
<li class="chapter " data-level="6.4.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.4.2.6.</b>
Envoy Sidecar 代理的路由转发
</a>
</li>
<li class="chapter " data-level="6.4.2.7" data-path="../usecases/how-to-integrate-istio-with-vm.html">
<a href="../usecases/how-to-integrate-istio-with-vm.html">
<b>6.4.2.7.</b>
Istio 如何支持虚拟机
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.4.3" data-path="../usecases/linkerd.html">
<a href="../usecases/linkerd.html">
<b>6.4.3.</b>
Linkerd
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.3.1" data-path="../usecases/linkerd-user-guide.html">
<a href="../usecases/linkerd-user-guide.html">
<b>6.4.3.1.</b>
Linkerd 使用指南
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.4.4" data-path="../usecases/conduit.html">
<a href="../usecases/conduit.html">
<b>6.4.4.</b>
Conduit
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.4.1" data-path="../usecases/conduit-overview.html">
<a href="../usecases/conduit-overview.html">
<b>6.4.4.1.</b>
Condiut 概览
</a>
</li>
<li class="chapter " data-level="6.4.4.2" data-path="../usecases/conduit-installation.html">
<a href="../usecases/conduit-installation.html">
<b>6.4.4.2.</b>
安装 Conduit
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.4.5" data-path="../usecases/envoy.html">
<a href="../usecases/envoy.html">
<b>6.4.5.</b>
Envoy
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.5.1" data-path="../usecases/envoy-terminology.html">
<a href="../usecases/envoy-terminology.html">
<b>6.4.5.1.</b>
Envoy 的架构与基本术语
</a>
</li>
<li class="chapter " data-level="6.4.5.2" data-path="../usecases/envoy-front-proxy.html">
<a href="../usecases/envoy-front-proxy.html">
<b>6.4.5.2.</b>
Envoy 作为前端代理
</a>
</li>
<li class="chapter " data-level="6.4.5.3" data-path="../usecases/envoy-mesh-in-kubernetes-tutorial.html">
<a href="../usecases/envoy-mesh-in-kubernetes-tutorial.html">
<b>6.4.5.3.</b>
Envoy mesh 教程
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.4.6" data-path="../usecases/mosn.html">
<a href="../usecases/mosn.html">
<b>6.4.6.</b>
MOSN
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.5" data-path="../usecases/big-data.html">
<a href="../usecases/big-data.html">
<b>6.5.</b>
大数据
</a>
<ul class="articles">
<li class="chapter " data-level="6.5.1" data-path="../usecases/spark-standalone-on-kubernetes.html">
<a href="../usecases/spark-standalone-on-kubernetes.html">
<b>6.5.1.</b>
Spark standalone on Kubernetes
</a>
</li>
<li class="chapter " data-level="6.5.2" data-path="../usecases/running-spark-with-kubernetes-native-scheduler.html">
<a href="../usecases/running-spark-with-kubernetes-native-scheduler.html">
<b>6.5.2.</b>
运行支持 Kubernetes 原生调度的 Spark 程序
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.6" data-path="../usecases/serverless.html">
<a href="../usecases/serverless.html">
<b>6.6.</b>
Serverless 架构
</a>
<ul class="articles">
<li class="chapter " data-level="6.6.1" data-path="../usecases/understanding-serverless.html">
<a href="../usecases/understanding-serverless.html">
<b>6.6.1.</b>
理解 Serverless
</a>
</li>
<li class="chapter " data-level="6.6.2" data-path="../usecases/faas.html">
<a href="../usecases/faas.html">
<b>6.6.2.</b>
FaaS函数即服务
</a>
<ul class="articles">
<li class="chapter " data-level="6.6.2.1" data-path="../usecases/openfaas-quick-start.html">
<a href="../usecases/openfaas-quick-start.html">
<b>6.6.2.1.</b>
OpenFaaS 快速入门指南
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.6.3" data-path="../usecases/knative.html">
<a href="../usecases/knative.html">
<b>6.6.3.</b>
Knative
</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="cncf.html">
<a href="cncf.html">
<b>8.1.</b>
CNCF - 云原生计算基金会简介
</a>
</li>
<li class="chapter " data-level="8.2" data-path="cncf-charter.html">
<a href="cncf-charter.html">
<b>8.2.</b>
CNCF 章程
</a>
</li>
<li class="chapter " data-level="8.3" data-path="cncf-sig.html">
<a href="cncf-sig.html">
<b>8.3.</b>
CNCF 特别兴趣小组SIG说明
</a>
</li>
<li class="chapter " data-level="8.4" data-path="cncf-sandbox-criteria.html">
<a href="cncf-sandbox-criteria.html">
<b>8.4.</b>
开源项目加入 CNCF Sandbox 的要求
</a>
</li>
<li class="chapter " data-level="8.5" data-path="cncf-project-governing.html">
<a href="cncf-project-governing.html">
<b>8.5.</b>
CNCF 中的项目治理
</a>
</li>
<li class="chapter " data-level="8.6" data-path="cncf-ambassador.html">
<a href="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>
<li class="chapter " data-level="9.7.10" data-path="../appendix/kubernetes-1.16-changelog.html">
<a href="../appendix/kubernetes-1.16-changelog.html">
<b>9.7.10.</b>
Kubernetes1.16 更新日志
</a>
</li>
<li class="chapter " data-level="9.7.11" data-path="../appendix/kubernetes-1.17-changelog.html">
<a href="../appendix/kubernetes-1.17-changelog.html">
<b>9.7.11.</b>
Kubernetes1.17 更新日志
</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=".." >云原生编程语言 Ballerina</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="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;-ballerina">&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00; Ballerina</h1>
<p>&#x5F53;&#x6211;&#x7B2C;&#x4E00;&#x773C;&#x770B;&#x5230; <a href="https://ballerina.io" target="_blank">Ballerina</a> &#x8FD8;&#x771F;&#x6709;&#x70B9;&#x60CA;&#x8273;&#x7684;&#x611F;&#x89C9;&#x3002;Ballerina &#x8FD9;&#x4E2A;&#x5355;&#x8BCD;&#x7684;&#x610F;&#x601D;&#x662F;&#x201C;&#x82AD;&#x857E;&#x821E;&#x5973;&#x6F14;&#x5458;&#x201D;&#x3002;&#x6211;&#x60F3;&#x4ED6;&#x4EEC;&#x4E4B;&#x6240;&#x4EE5;&#x7ED9;&#x516C;&#x53F8;&#x548C;&#x8FD9;&#x4EEC;&#x8BED;&#x8A00;&#x8D77;&#x8FD9;&#x4E2A;&#x540D;&#x5B57;&#xFF0C;&#x53EF;&#x80FD;&#x662F;&#x5E0C;&#x671B;&#x5B83;&#x6210;&#x4E3A;&#x4E91;&#x539F;&#x751F;&#x8FD9;&#x4E2A;&#x5927;&#x821E;&#x53F0;&#x4E2D;&#xFF0C;Ballerina &#x80FD;&#x50CF;&#x4E00;&#x4E2A;&#x7075;&#x6D3B;&#x7684;&#x82AD;&#x857E;&#x821E;&#x8005;&#x4E00;&#x6837;&#x8F7B;&#x677E;&#x81EA;&#x5982;&#x5427;&#xFF01;</p>
<p>Ballerina &#x662F;&#x4E00;&#x6B3E;&#x5F00;&#x6E90;&#x7684;&#x7F16;&#x8BD1;&#x5F0F;&#x7684;&#x5F3A;&#x7C7B;&#x578B;&#x8BED;&#x8A00;&#xFF0C;&#x8BE5;&#x8BED;&#x8A00;&#x672C;&#x8EAB;&#x7684;&#x4EE3;&#x7801;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; <a href="https://github.com/ballerina-platform/ballerina-lang" target="_blank">GitHub</a> &#x4E0A;&#x83B7;&#x53D6;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; Ballerina &#x5B98;&#x7F51;&#x4E0A;&#x7684;&#x8BBE;&#x8BA1;&#x54F2;&#x5B66;&#x9875;&#x9762;&#x6765;&#x5BF9;&#x8FD9;&#x95E8;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x4E00;&#x63A2;&#x7A76;&#x7ADF;&#x3002;</p>
<figure id="fig2.10.1.1"><a href="../images/philosophy-page-diagrams-top.png" data-lightbox="3d0f624c-33d2-463b-9a60-2b75630a6443" data-title="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina"><img src="../images/philosophy-page-diagrams-top.png" alt="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina"></a><figcaption>&#x56FE; 2.10.1.1&#xFF1A;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina</figcaption></figure>
<p>&#x672A;&#x6765;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x5E94;&#x8BE5;&#x662F;&#x57FA;&#x4E8E; API &#x7684;&#xFF0C;&#x800C;&#x4F17;&#x591A; API &#x4E4B;&#x95F4;&#x7684;&#x901A;&#x8BAF;&#x548C;&#x96C6;&#x6210;&#x5C31;&#x6210;&#x4E86;&#x5173;&#x952E;&#x95EE;&#x9898;&#x3002;Ballerina &#x662F;&#x4E00;&#x6B3E;&#x4F7F;&#x7528;&#x6587;&#x672C;&#x548C;&#x56FE;&#x5F62;&#x8BED;&#x6CD5;&#x7F16;&#x8BD1;&#x7684;&#x3001;&#x4E8B;&#x52A1;&#x7684;&#x3001;&#x9759;&#x6001;&#x548C;&#x5F3A;&#x7C7B;&#x578B;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x3002;Ballerina &#x5305;&#x542B;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x96C6;&#x6210;&#x5230;&#x8BED;&#x8A00;&#x7684;&#x57FA;&#x672C;&#x6982;&#x5FF5;&#xFF0C;&#x5E76;&#x63D0;&#x4F9B;&#x7C7B;&#x578B;&#x5B89;&#x5168;&#xFF0C;&#x5E76;&#x53D1;&#x73AF;&#x5883;&#x4E0B;&#x5B9E;&#x73B0;&#x7684;&#x5206;&#x5E03;&#x5F0F;&#x4E8B;&#x52A1;&#xFF0C;&#x53EF;&#x9760;&#x7684;&#x6D88;&#x606F;&#x4F20;&#x9012;&#xFF0C;&#x6D41;&#x5904;&#x7406;&#x548C;&#x5DE5;&#x4F5C;&#x6D41;&#x3002;</p>
<h2 id="&#x4E3A;&#x4EC0;&#x4E48;&#x521B;&#x5EFA;-ballerina&#xFF1F;">&#x4E3A;&#x4EC0;&#x4E48;&#x521B;&#x5EFA; Ballerina&#xFF1F;</h2>
<p>&#x4E0E; ESB &#x96C6;&#x6210;&#x4ECD;&#x7136;&#x662F;&#x7011;&#x5E03;&#x5F0F;&#x5F00;&#x53D1;&#x3002;&#x4F60;&#x5FC5;&#x987B;&#x90E8;&#x7F72;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x914D;&#x7F6E;&#x8FDE;&#x63A5;&#x5668;&#xFF0C;&#x4F7F;&#x7528; XML &#x7F16;&#x7A0B;&#x670D;&#x52A1;&#x903B;&#x8F91;&#x4EE5;&#x53CA;&#x4F7F;&#x7528; XPath &#x67E5;&#x8BE2;&#x548C;&#x8F6C;&#x6362;&#x6570;&#x636E;&#x3002;&#x8FD9;&#x4E0D;&#x662F;&#x5F00;&#x53D1;&#x8005;&#x53CB;&#x597D;&#x7684;&#x3002;</p>
<p>&#x5E26;&#x6709; Spring &#x548C; Node.js &#x7B49;&#x6846;&#x67B6;&#x7684;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x7075;&#x6D3B;&#x6027;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x6CA1;&#x6709;&#x4F7F;&#x9002;&#x5408;&#x4E8E;&#x5E8F;&#x5217;&#x5E76;&#x884C;&#x5316;&#x3001;&#x5E76;&#x53D1;&#x6A21;&#x578B;&#x7F16;&#x7A0B;&#x7684;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x7ED3;&#x6784;&#x53D8;&#x5F97;&#x7B80;&#x5355;&#x3002;</p>
<p>ESB&#x3001;EAI&#x3001;BPM &#x548C; DSL &#x9700;&#x8981; XML &#x548C;&#x914D;&#x7F6E;&#x6765;&#x4E2D;&#x65AD;&#x8FED;&#x4EE3;&#x5F00;&#x53D1;&#x6D41;&#x7A0B;&#xFF1A;&#x7F16;&#x8F91;&#x3001;&#x6784;&#x5EFA;&#x3001;&#x8FD0;&#x884C;&#x548C;&#x6D4B;&#x8BD5;&#x3002;&#x8FD9;&#x4E0E;&#x8FD0;&#x884C;&#x5B9E;&#x9645;&#x5E94;&#x7528;&#x4E4B;&#x95F4;&#x662F;&#x6709;&#x4E00;&#x6761;&#x9E3F;&#x6C9F;&#x7684;&#xFF0C;&#x800C;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00; Ballerina &#x7684;&#x51FA;&#x73B0;&#x5C31;&#x662F;&#x4E3A;&#x4E86;&#x89E3;&#x51B3;&#x8FD9;&#x6761;&#x201C;&#x96C6;&#x6210;&#x9E3F;&#x6C9F;&#x201D;&#x7684;&#x3002;</p>
<h2 id="ballerina-&#x8BBE;&#x8BA1;&#x7406;&#x5FF5;">Ballerina &#x8BBE;&#x8BA1;&#x7406;&#x5FF5;</h2>
<h3 id="&#x5E8F;&#x5217;&#x56FE;">&#x5E8F;&#x5217;&#x56FE;</h3>
<figure id="fig2.10.1.2"><a href="../images/philosophy-principle-diagrams-01.png" data-lightbox="8a20a0b0-c9de-4fe1-b6ac-60313a83c6aa" data-title="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;Ballerina&#x7684;&#x5E8F;&#x5217;&#x56FE;&#x8BBE;&#x8BA1;&#x7406;&#x5FF5;"><img src="../images/philosophy-principle-diagrams-01.png" alt="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;Ballerina&#x7684;&#x5E8F;&#x5217;&#x56FE;&#x8BBE;&#x8BA1;&#x7406;&#x5FF5;"></a><figcaption>&#x56FE; 2.10.1.2&#xFF1A;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;Ballerina&#x7684;&#x5E8F;&#x5217;&#x56FE;&#x8BBE;&#x8BA1;&#x7406;&#x5FF5;</figcaption></figure>
<p><strong>&#x8BED;&#x8A00;&#x7075;&#x611F;</strong></p>
<p>&#x5E8F;&#x5217;&#x56FE;&#x53CD;&#x6620;&#x4E86;&#x8BBE;&#x8BA1;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x8BB0;&#x5F55;&#x7684;&#x4E92;&#x8054;&#x7684;&#x7CFB;&#x7EDF;&#x3002;Ballerina &#x7684;&#x8BED;&#x6CD5;&#x548C;&#x9AD8;&#x6548;&#x7684;&#x7F16;&#x7801;&#x6A21;&#x5F0F;&#x8981;&#x6C42;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x4F7F;&#x7528;&#x5F3A;&#x5927;&#x7684;&#x4EA4;&#x4E92;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#x6765;&#x7F16;&#x7801;&#x3002;</p>
<p><strong>&#x5E8F;&#x5217;&#x56FE;&#x53EF;&#x89C6;&#x5316;</strong></p>
<p>Ballerina &#x7684;&#x8BED;&#x8A00;&#x8BED;&#x4E49;&#x6A21;&#x578B;&#x65E8;&#x5728;&#x5B9A;&#x4E49;&#x72EC;&#x7ACB;&#x7684;&#x5404;&#x65B9;&#x5982;&#x4F55;&#x901A;&#x8FC7;&#x7ED3;&#x6784;&#x5316;&#x7684;&#x4EA4;&#x4E92;&#x6C9F;&#x901A;&#x3002;&#x63A5;&#x7740;&#xFF0C;&#x6BCF;&#x4E2A; Ballerina &#x7A0B;&#x5E8F;&#x90FD;&#x53EF;&#x4EE5;&#x663E;&#x793A;&#x4E3A;&#x5176;&#x6D41;&#x7A0B;&#x7684;&#x5E8F;&#x5217;&#x56FE;&#x3002;IntelliJ &#x548C; VS Code &#x7684;&#x63D2;&#x4EF6;&#x4E2D;&#x63D0;&#x4F9B;&#x4E86;&#x8FD9;&#x4E9B;&#x53EF;&#x89C6;&#x5316;&#x3002;Ballerina Composer &#x662F;&#x4E00;&#x6B3E;&#x901A;&#x8FC7;&#x5E8F;&#x5217;&#x56FE;&#x521B;&#x5EFA; Ballerina &#x670D;&#x52A1;&#x7684;&#x5DE5;&#x5177;&#x3002;</p>
<p><strong>Actor &#x4E0E; action</strong></p>
<p>&#x5BA2;&#x6237;&#x7AEF;&#x3001;worker &#x548C;&#x8FDC;&#x7A0B;&#x7CFB;&#x7EDF;&#x5728; Ballerina &#x7684;&#x5E8F;&#x5217;&#x56FE;&#x4E2D;&#x4EE5;&#x4E0D;&#x540C;&#x7684; actor &#x8868;&#x793A;&#x3002;&#x5728;&#x4EE3;&#x7801;&#x4E2D;&#xFF0C;&#x8FDC;&#x7A0B;&#x7AEF;&#x70B9;&#x901A;&#x8FC7;&#x8FDE;&#x63A5;&#x5668;&#x8FDB;&#x884C;&#x8FDE;&#x63A5;&#xFF0C;&#x8FDE;&#x63A5;&#x5668;&#x63D0;&#x4F9B;&#x7C7B;&#x578B;&#x5B89;&#x5168;&#x64CD;&#x4F5C;&#x3002;&#x5728;&#x56FE;&#x5F62;&#x4E0A;&#xFF0C;&#x6BCF;&#x4E2A;&#x8FDE;&#x63A5;&#x5668;&#x5728;&#x5E8F;&#x5217;&#x56FE;&#x4E2D;&#x8868;&#x793A;&#x4E3A;&#x4E00;&#x4E2A; actor&#xFF08;&#x5373;&#x4E00;&#x6761;&#x5782;&#x76F4;&#x7EBF;&#xFF09;&#xFF0C;action &#x8868;&#x793A;&#x4E3A;&#x4E0E;&#x8FD9;&#x4E9B;actor &#x7684;&#x4EA4;&#x4E92;&#x3002;</p>
<h3 id="&#x5E76;&#x53D1;">&#x5E76;&#x53D1;</h3>
<figure id="fig2.10.1.3"><a href="../images/philosophy-principle-diagrams-02.png" data-lightbox="0b1d9eb5-95c8-4eac-9534-42ae4ae61077" data-title="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;Ballerina&#x7684;&#x5E76;&#x53D1;&#x7406;&#x5FF5;"><img src="../images/philosophy-principle-diagrams-02.png" alt="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;Ballerina&#x7684;&#x5E76;&#x53D1;&#x7406;&#x5FF5;"></a><figcaption>&#x56FE; 2.10.1.3&#xFF1A;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;Ballerina&#x7684;&#x5E76;&#x53D1;&#x7406;&#x5FF5;</figcaption></figure>
<p><strong>&#x5E8F;&#x5217;&#x56FE;&#x548C;&#x5E76;&#x53D1;</strong></p>
<p>Ballerina &#x7684;&#x5E76;&#x53D1;&#x6A21;&#x578B;&#x662F;&#x5E76;&#x884C;&#x4F18;&#x5148;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x4E0E;&#x8FDC;&#x7A0B;&#x65B9;&#x7684;&#x4EA4;&#x4E92;&#x603B;&#x662F;&#x6D89;&#x53CA;&#x591A;&#x4E2A; worker&#x3002;Worker &#x4E4B;&#x95F4;&#x7684;&#x4EA4;&#x4E92;&#x4F5C;&#x4E3A;&#x6D88;&#x606F;&#x4F20;&#x9012;&#x8FDB;&#x884C;&#x5904;&#x7406;&#xFF0C;&#x5B83;&#x4EEC;&#x4E4B;&#x95F4;&#x6CA1;&#x6709;&#x5171;&#x4EAB;&#x72B6;&#x6001;&#x3002;</p>
<p><strong>Worker &#x8BED;&#x4E49;</strong></p>
<p>Ballerina &#x7684;&#x6267;&#x884C;&#x6A21;&#x578B;&#x7531;&#x79F0;&#x4E3A; worker &#x7684;&#x8F7B;&#x91CF;&#x7EA7;&#x5E76;&#x884C;&#x6267;&#x884C;&#x5355;&#x5143;&#x7EC4;&#x6210;&#x3002;Worker &#x4F7F;&#x7528;&#x975E;&#x963B;&#x585E;&#x7B56;&#x7565;&#x6765;&#x786E;&#x4FDD;&#x6CA1;&#x6709;&#x51FD;&#x6570;&#x9501;&#x5B9A;&#x6B63;&#x5728;&#x6267;&#x884C;&#x7684;&#x7EBF;&#x7A0B;&#xFF0C;&#x4F8B;&#x5982;&#x7B49;&#x5F85;&#x54CD;&#x5E94;&#x7684; HTTP I/O&#x8C03;&#x7528;&#x3002;</p>
<p><strong>&#x7F16;&#x7A0B;&#x6A21;&#x578B;</strong></p>
<p>Worker &#x548C; fork/join &#x8BED;&#x4E49;&#x62BD;&#x8C61;&#x4E86;&#x5E95;&#x5C42;&#x975E;&#x963B;&#x585E;&#x65B9;&#x6CD5;&#xFF0C;&#x4EE5;&#x542F;&#x7528;&#x66F4;&#x7B80;&#x5355;&#x7684;&#x5E76;&#x53D1;&#x7F16;&#x7A0B;&#x6A21;&#x578B;&#x3002;</p>
<h3 id="&#x7C7B;&#x578B;&#x7CFB;&#x7EDF;">&#x7C7B;&#x578B;&#x7CFB;&#x7EDF;</h3>
<p>&#x4E0B;&#x9762;&#x662F; Ballerina &#x4E2D;&#x652F;&#x6301;&#x7684;&#x7C7B;&#x578B;&#x3002;</p>
<pre class="language-"><code class="lang-java">any anything<span class="token punctuation">;</span>
<span class="token keyword">int</span> integer <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">float</span> floatingPoint <span class="token operator">=</span> <span class="token number">0.0</span><span class="token punctuation">;</span>
<span class="token keyword">boolean</span> b <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
string hi <span class="token operator">=</span> <span class="token string">&quot;hello&quot;</span><span class="token punctuation">;</span>
blob bl <span class="token operator">=</span> hi<span class="token punctuation">.</span><span class="token function">toBlob</span><span class="token punctuation">(</span><span class="token string">&quot;UTF-8&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
json jsonNative <span class="token operator">=</span> <span class="token punctuation">{</span> a<span class="token operator">:</span> <span class="token string">&quot;hello&quot;</span><span class="token punctuation">,</span> b<span class="token operator">:</span> <span class="token number">5</span> <span class="token punctuation">}</span><span class="token punctuation">;</span>
xml x <span class="token operator">=</span> xml `<span class="token generics"><span class="token punctuation">&lt;</span>ballerina<span class="token punctuation">&gt;</span></span>
<span class="token generics"><span class="token punctuation">&lt;</span>supports<span class="token punctuation">&gt;</span></span>XML natively<span class="token operator">&lt;</span><span class="token operator">/</span>supports<span class="token operator">&gt;</span>
<span class="token operator">&lt;</span><span class="token operator">/</span>ballerina<span class="token operator">&gt;</span>`<span class="token punctuation">;</span>
string<span class="token punctuation">[</span><span class="token punctuation">]</span> stringArray <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">&quot;hi&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;there&quot;</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> arrayOfArrays <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
json <span class="token operator">|</span> xml <span class="token operator">|</span> string unionType<span class="token punctuation">;</span>
<span class="token punctuation">(</span>string<span class="token punctuation">,</span> <span class="token keyword">int</span><span class="token punctuation">)</span> tuple <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token string">&quot;hello&quot;</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">(</span><span class="token punctuation">)</span> n <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// the empty tuple acts as &quot;null&quot;</span>
string <span class="token operator">|</span> <span class="token keyword">int</span> stringOrInt <span class="token operator">=</span> <span class="token string">&quot;this is a union type&quot;</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> <span class="token operator">|</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> intOrNull <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> inferred <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token string">&quot;hello&quot;</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
map<span class="token generics"><span class="token punctuation">&lt;</span><span class="token keyword">boolean</span><span class="token punctuation">&gt;</span></span> myMap <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">&quot;ballerina&quot;</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
type myRecord <span class="token punctuation">{</span> string a<span class="token punctuation">;</span> <span class="token keyword">int</span> b<span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span>
type myObject object <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token punctuation">{</span> string x<span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">private</span> <span class="token punctuation">{</span> string y<span class="token punctuation">;</span> <span class="token punctuation">}</span>
<span class="token keyword">new</span> <span class="token punctuation">(</span>string xi<span class="token punctuation">,</span> string yi<span class="token punctuation">)</span> <span class="token punctuation">{</span> x <span class="token operator">=</span> xi<span class="token punctuation">;</span> y <span class="token operator">=</span> yi<span class="token punctuation">;</span> <span class="token punctuation">}</span>
function <span class="token function">getX</span><span class="token punctuation">(</span><span class="token punctuation">)</span> returns <span class="token punctuation">(</span>string<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> x<span class="token punctuation">;</span> <span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
</code></pre>
<p><strong>&#x7C7B;&#x578B;&#x5B89;&#x5168;</strong></p>
<p>Ballerina &#x6709;&#x4E00;&#x4E2A;&#x7ED3;&#x6784;&#x5316;&#x7684;&#x7C7B;&#x578B;&#x7CFB;&#x7EDF;&#xFF0C;&#x5305;&#x62EC; primitive&#x3001;recored&#x3001;object&#x3001;tuple &#x548C; union &#x7C7B;&#x578B;&#x3002;&#x8BE5;&#x7C7B;&#x578B;&#x5B89;&#x5168;&#x6A21;&#x578B;&#x5728;&#x8D4B;&#x503C;&#x65F6;&#x5305;&#x542B;&#x4E86;&#x7C7B;&#x578B;&#x63A8;&#x65AD;&#xFF0C;&#x5E76;&#x4E3A;&#x8FDE;&#x63A5;&#x5668;&#x3001;&#x903B;&#x8F91;&#x548C;&#x7F51;&#x7EDC;&#x7ED1;&#x5B9A;&#x7684;&#x6709;&#x6548;&#x8D1F;&#x8F7D;&#x63D0;&#x4F9B;&#x4E86;&#x5927;&#x91CF;&#x7684;&#x7F16;&#x8BD1;&#x65F6;&#x5B8C;&#x6574;&#x6027;&#x68C0;&#x67E5;&#x3002;</p>
<p><strong>Union &#x7C7B;&#x578B;&#x548C;&#x663E;&#x5F0F; Null</strong></p>
<p>&#x5404;&#x4E2A;&#x7F51;&#x7EDC;&#x7AEF;&#x70B9;&#x901A;&#x5E38;&#x4F1A;&#x6839;&#x636E;&#x5176;&#x8F93;&#x5165;&#x548C;&#x903B;&#x8F91;&#x8FD4;&#x56DE;&#x5177;&#x6709;&#x4E0D;&#x540C;&#x6709;&#x6548;&#x8D1F;&#x8F7D;&#x7C7B;&#x578B;&#x6D88;&#x606F;&#x6216; error&#x3002;Ballerina &#x7684;&#x7C7B;&#x578B;&#x7CFB;&#x7EDF;&#x91C7;&#x7528;&#x4E86;&#x57FA;&#x4E8E; union &#x7C7B;&#x578B;&#x7684;&#x65B9;&#x6CD5;&#x3002;Union &#x7C7B;&#x578B;&#x660E;&#x786E;&#x5730;&#x91C7;&#x7528;&#x4E86;&#x8FD9;&#x79CD;&#x8BED;&#x4E49;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x521B;&#x5EFA;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x201C;&#x5305;&#x88C5;&#x201D;&#x7C7B;&#x578B;&#x3002;&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x4E5F;&#x589E;&#x5F3A;&#x4E86;&#x5BF9; null &#x503C;&#x7684;&#x5904;&#x7406;&#x3002;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x7C7B;&#x578B;&#x4E0D;&#x652F;&#x6301; null &#x503C;&#x3002;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x5FC5;&#x987B;&#x660E;&#x786E;&#x521B;&#x5EFA; union &#x7C7B;&#x578B;&#x6765;&#x5904;&#x7406; null &#x503C;&#x3002;&#x7ED3;&#x679C;&#x662F; null &#x7684;&#x5F02;&#x5E38;&#x4E0D;&#x4F1A;&#x53D1;&#x751F;&#xFF0C;&#x5E76;&#x4E14;&#x8BED;&#x8A00;&#x8BED;&#x6CD5;&#x548C;&#x7F16;&#x8BD1;&#x5668;&#x4F1A;&#x8BC6;&#x522B;&#x662F;&#x5426;&#x9700;&#x8981; null &#x5904;&#x7406;&#x903B;&#x8F91;&#x3002;</p>
<p><strong>&#x5F02;&#x6784;&#x6570;&#x636E;&#x5904;&#x7406;</strong></p>
<p>Ballerina &#x7C7B;&#x578B;&#x7CFB;&#x7EDF;&#x5185;&#x7F6E;&#x4E30;&#x5BCC;&#x7684;&#x5BF9; JSON&#x3001;XML&#x3001;&#x6D41;&#x548C;&#x8868;&#x683C;&#x7684;&#x652F;&#x6301;&#x4EE5;&#x53CA;&#x5BF9; ProtoBuf &#x548C; gRPC &#x7684;&#x76F4;&#x63A5;&#x652F;&#x6301;&#x3002;&#x8FD9;&#x6837;&#x505A;&#x7684;&#x7ED3;&#x679C;&#x662F;&#x53EF;&#x4EE5;&#x83B7;&#x5F97;&#x5904;&#x7406;&#x7F51;&#x7EDC;&#x8D1F;&#x8F7D;&#x3001;SQL &#x7F16;&#x7A0B;&#x548C;&#x6D41;&#x5904;&#x7406;&#x7684;&#x5E72;&#x51C0;&#x53EF;&#x8BFB;&#x7684;&#x4EE3;&#x7801;&#x3002;&#x6570;&#x636E;&#x8F6C;&#x6362;&#x903B;&#x8F91;&#x4E0D;&#x53D7;&#x590D;&#x6742;&#x7684;&#x751F;&#x6210;&#x7C7B;&#x578B;&#x3001;&#x7B2C;&#x4E09;&#x65B9;&#x5E93;&#x4EE3;&#x7801;&#x6216;&#x5176;&#x4ED6;&#x6DF7;&#x6DC6;&#x56E0;&#x7D20;&#x7684;&#x5F71;&#x54CD;&#x2014;&#x2014;&#x7B80;&#x5355;&#x660E;&#x4E86;&#x7684;&#x53EF;&#x8BFB;&#x4EE3;&#x7801;&#x6355;&#x6349;&#x4E0E;&#x5F02;&#x6784;&#x6570;&#x636E;&#x548C;&#x8F6C;&#x6362;&#x903B;&#x8F91;&#x7684;&#x4EA4;&#x4E92;&#x3002;</p>
<h2 id="ballerina-&#x5982;&#x4F55;&#x5DE5;&#x4F5C;&#xFF1F;">Ballerina &#x5982;&#x4F55;&#x5DE5;&#x4F5C;&#xFF1F;</h2>
<p>Ballerina &#x7684;&#x8BED;&#x6CD5;&#x3001;&#x4EE3;&#x7801;&#x548C;&#x7F16;&#x8BD1;&#x5668;&#x521B;&#x5EFA;&#x4E86;&#x8FD0;&#x884C;&#x65F6;&#x670D;&#x52A1;&#x548C;&#x90E8;&#x7F72;&#x6784;&#x4EF6;&#xFF0C;&#x8FD9;&#x4E9B;&#x5DE5;&#x4EF6;&#x90FD;&#x662F;&#x4E91;&#x539F;&#x751F;&#x5C31;&#x7EEA;&#x7684;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x9009;&#x62E9;&#x5C06;&#x5176;&#x90E8;&#x7F72;&#x5728; IaaS&#x3001;&#x7F16;&#x6392;&#x7CFB;&#x7EDF;&#x6216; service mesh &#x4E2D;&#x7684;&#x3002;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x4F53;&#x9A8C;&#x65E8;&#x5728;&#x7EF4;&#x62A4;&#x6D41;&#x7A0B;&#xFF0C;&#x5305;&#x62EC;&#x5FEB;&#x901F;&#x7684;&#x7F16;&#x8F91;&#x3001;&#x6784;&#x5EFA;&#x3001;&#x8C03;&#x8BD5;&#x5468;&#x671F;&#x5E76;&#x96C6;&#x6210;&#x5230;&#x56E2;&#x961F;&#x7684;&#x751F;&#x547D;&#x5468;&#x671F;&#x5DE5;&#x5177;&#x94FE;&#x4E2D;&#x3002;</p>
<h3 id="&#x8FD0;&#x884C;&#x65F6;&#x67B6;&#x6784;">&#x8FD0;&#x884C;&#x65F6;&#x67B6;&#x6784;</h3>
<figure id="fig2.10.1.4"><a href="../images/philosophy-diagrams-for-site-02.png" data-lightbox="b4f3ab0f-c687-43d9-b382-9fa0398abc55" data-title="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x8FD0;&#x884C;&#x65F6;&#x67B6;&#x6784;"><img src="../images/philosophy-diagrams-for-site-02.png" alt="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x8FD0;&#x884C;&#x65F6;&#x67B6;&#x6784;"></a><figcaption>&#x56FE; 2.10.1.4&#xFF1A;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x8FD0;&#x884C;&#x65F6;&#x67B6;&#x6784;</figcaption></figure>
<p><strong>Ballerina API &#x7F51;&#x5173;</strong></p>
<p>&#x5F3A;&#x5236;&#x6267;&#x884C;&#x8EAB;&#x4EFD;&#x7B56;&#x7565;&#x5E76;&#x4FDD;&#x8BC1;&#x6027;&#x80FD;&#x3002;&#x901A;&#x8FC7;&#x4EE3;&#x7801;&#x6CE8;&#x89E3;&#xFF08;&#x7C7B;&#x4F3C;&#x4E8E; Spring &#x4E2D;&#x7684;&#x6CE8;&#x89E3;&#xFF09;&#x8FDB;&#x884C;&#x914D;&#x7F6E;&#x548C;&#x90E8;&#x7F72;&#x3002;&#x53EF;&#x4EE5;&#x8FD0;&#x884C;&#x5D4C;&#x5165;&#x5F0F;&#x670D;&#x52A1;&#x3001;&#x4F5C;&#x4E3A;&#x7BA1;&#x7406;&#x591A;&#x4E2A;&#x670D;&#x52A1;&#x7684;&#x5BB9;&#x5668;&#x4EE3;&#x7406;&#x6216;&#x8005;&#x4F7F;&#x7528; API &#x7BA1;&#x7406;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#xFF08;&#x5982; WSO2 API Manager&#xFF09;&#x3002;</p>
<p><strong>Ballerina service</strong></p>
<p>&#x8868;&#x793A;&#x60A8;&#x7684; API &#x548C;&#x6267;&#x884C;&#x903B;&#x8F91;&#x3002;&#x670D;&#x52A1;&#x901A;&#x8FC7;&#x4E0D;&#x540C;&#x7684;&#x534F;&#x8BAE;&#x8FD0;&#x884C;&#xFF0C;&#x5185;&#x90E8;&#x4EE3;&#x7801;&#x7ED3;&#x6784;&#x88AB;&#x7F16;&#x8BD1;&#x4E3A;&#x652F;&#x6301; OpenAPI &#x548C; Swagger &#x7684;API&#x63A5;&#x53E3;&#x3002;&#x670D;&#x52A1;&#x4E0E;&#x7AEF;&#x70B9;&#x8FDB;&#x884C;&#x901A;&#x4FE1;&#xFF0C;&#x65E0;&#x8BBA;&#x5B83;&#x4EEC;&#x662F;&#x8C03;&#x7528;&#x5BA2;&#x6237;&#x7AEF;&#x8FD8;&#x662F;&#x5176;&#x4ED6;&#x670D;&#x52A1;&#x3002;</p>
<p><strong>Ballerina bridge</strong></p>
<p>&#x5141;&#x8BB8;&#x4F20;&#x7EDF;&#x4EE3;&#x7801;&#x548C;&#x670D;&#x52A1;&#x53C2;&#x4E0E;&#x5206;&#x5E03;&#x5F0F;&#x4E8B;&#x52A1;&#x4E2D;&#x7684; Ballerina &#x670D;&#x52A1;&#x3002;Bridge &#x5C06;&#x60A8;&#x73B0;&#x6709;&#x670D;&#x52A1;&#x4E0E;&#x672C;&#x5730;&#x4EE3;&#x7406;&#x5305;&#x88C5;&#x8D77;&#x6765;&#xFF0C;&#x901A;&#x8FC7;&#x8C03;&#x7528; Ballerina &#x670D;&#x52A1;&#x53C2;&#x4E0E;&#x548C;&#x4EE3;&#x7406;&#x5206;&#x5E03;&#x5F0F;&#x4E8B;&#x52A1;&#x3002;</p>
<p><strong>&#x6D88;&#x606F;&#x4EE3;&#x7406;&#x3001;&#x4E8B;&#x52A1;&#x534F;&#x8C03;&#x8005;&#x548C;&#x8EAB;&#x4EFD;&#x4EE3;&#x7406;</strong></p>
<p>&#x4E3A;&#x53C2;&#x4E0E;&#x4E8B;&#x52A1;&#x3001;&#x4E8B;&#x4EF6;&#x9A71;&#x52A8;&#x7684;&#x901A;&#x4FE1;&#x548C;&#x4E3A;&#x8BA4;&#x8BC1;&#x6D41;&#x7A0B;&#x7684; Ballerina &#x670D;&#x52A1;&#x63D0;&#x4F9B;&#x4EE3;&#x7406;&#x57FA;&#x7840;&#x8BBE;&#x65BD;&#x529F;&#x80FD;&#x3002;&#x8FD9;&#x4E9B;&#x7EC4;&#x4EF6;&#x53EF;&#x4EE5;&#x5D4C;&#x5165;&#x5230;&#x5355;&#x4E2A;&#x670D;&#x52A1;&#x90E8;&#x7F72;&#x4E2D;&#x6216;&#x8005;&#x8FDB;&#x884C;&#x5355;&#x72EC;&#x90E8;&#x7F72;&#x548C;&#x6269;&#x5C55;&#x4EE5;&#x7BA1;&#x7406;&#x591A;&#x4E2A;&#x670D;&#x52A1;&#x3002;</p>
<h3 id="&#x90E8;&#x7F72;&#x67B6;&#x6784;">&#x90E8;&#x7F72;&#x67B6;&#x6784;</h3>
<figure id="fig2.10.1.5"><a href="../images/philosophy-diagrams-for-site-03.png" data-lightbox="dc16baab-1a4b-4699-bcc3-58b43e25fb54" data-title="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x90E8;&#x7F72;&#x67B6;&#x6784;&#x56FE;"><img src="../images/philosophy-diagrams-for-site-03.png" alt="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x90E8;&#x7F72;&#x67B6;&#x6784;&#x56FE;"></a><figcaption>&#x56FE; 2.10.1.5&#xFF1A;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x90E8;&#x7F72;&#x67B6;&#x6784;&#x56FE;</figcaption></figure>
<p><strong>IaaS</strong></p>
<p>&#x4F7F;&#x7528;&#x4EE3;&#x7801;&#x6CE8;&#x89E3;&#x548C;&#x6784;&#x5EFA;&#x7CFB;&#x7EDF;&#xFF0C;&#x53EF;&#x4EE5;&#x6253;&#x5305; Ballerina &#x670D;&#x52A1;&#x548C;&#x5176;&#x4ED6;&#x8FD0;&#x884C;&#x65F6;&#x7EC4;&#x4EF6;&#xFF08;&#x5982; API &#x7F51;&#x5173;&#xFF09;&#x4EE5;&#x90E8;&#x7F72;&#x5230;&#x4EFB;&#x4F55;&#x4E91;&#x539F;&#x751F;&#x73AF;&#x5883;&#x4E2D;&#x3002;&#x5728; IaaS &#x73AF;&#x5883;&#x4E2D;&#xFF0C;Ballerina &#x670D;&#x52A1;&#x53EF;&#x4EE5;&#x4EE5;&#x865A;&#x62DF;&#x673A;&#x6216;&#x5BB9;&#x5668;&#x7684;&#x65B9;&#x5F0F;&#x8FD0;&#x884C;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x5728;&#x6784;&#x5EFA;&#x671F;&#x95F4;&#x5C06;&#x955C;&#x50CF;&#x63A8;&#x9001;&#x5230; registry &#x4E2D;&#x3002;</p>
<p><strong>&#x7F16;&#x6392;&#x5668;</strong></p>
<p>&#x4EE3;&#x7801;&#x6CE8;&#x89E3;&#x4F1A;&#x89E6;&#x53D1;&#x7F16;&#x8BD1;&#x5668;&#x6269;&#x5C55;&#xFF0C;&#x4ECE;&#x800C;&#x4E3A;&#x4E0D;&#x540C;&#x7684;&#x7F16;&#x6392;&#x5668;&#xFF08;&#x5982; Kubernetes &#x6216; Cloud Foundry&#xFF09;&#x751F;&#x6210; Ballerina &#x7EC4;&#x4EF6;&#x7684;&#x5DE5;&#x4EF6;&#x5305;&#x3002;&#x4F9B;&#x5E94;&#x5546;&#x6216; DevOps &#x53EF;&#x4EE5;&#x6DFB;&#x52A0;&#x81EA;&#x5B9A;&#x4E49;&#x4EE3;&#x7801;&#x6CE8;&#x89E3;&#x4EE5;&#x751F;&#x6210;&#x7279;&#x5B9A;&#x4E8E;&#x73AF;&#x5883;&#x7684;&#x90E8;&#x7F72;&#xFF0C;&#x4F8B;&#x5982;&#x81EA;&#x5B9A;&#x4E49;&#x84DD;&#x8272;&#x90E8;&#x7F72;&#x7B97;&#x6CD5;&#x3002;</p>
<p><strong>Service mesh</strong></p>
<p>Ballerina &#x53EF;&#x4EE5;&#x9009;&#x62E9;&#x65AD;&#x8DEF;&#x5668;&#x548C;&#x4E8B;&#x52A1;&#x6D41;&#x7A0B;&#x903B;&#x8F91;&#x59D4;&#x6258;&#x7ED9;&#x50CF; Istio &#x6216; Envoy &#x8FD9;&#x6837;&#x7684; service mesh&#xFF08;&#x5982;&#x679C;&#x6709;&#x7684;&#x8BDD;&#xFF09;&#x3002;&#x5982;&#x679C;&#x6CA1;&#x6709; service mesh &#x7684;&#x8BDD;&#xFF0C;Ballerina &#x670D;&#x52A1;&#x5C06;&#x5D4C;&#x5165;&#x76F8;&#x5E94;&#x7684;&#x529F;&#x80FD;&#x3002;</p>
<h3 id="&#x751F;&#x547D;&#x5468;&#x671F;">&#x751F;&#x547D;&#x5468;&#x671F;</h3>
<figure id="fig2.10.1.6"><a href="../images/philosophy-diagrams-for-site-04.png" data-lightbox="4fc9d08f-8cd9-46dd-b9e2-c4b2b6571591" data-title="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x751F;&#x547D;&#x5468;&#x671F;&#x67B6;&#x6784;&#x56FE;"><img src="../images/philosophy-diagrams-for-site-04.png" alt="&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x751F;&#x547D;&#x5468;&#x671F;&#x67B6;&#x6784;&#x56FE;"></a><figcaption>&#x56FE; 2.10.1.6&#xFF1A;&#x4E91;&#x539F;&#x751F;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;ballerina&#x751F;&#x547D;&#x5468;&#x671F;&#x67B6;&#x6784;&#x56FE;</figcaption></figure>
<p><strong>Ballerina &#x5DE5;&#x5177;</strong></p>
<p>&#x4F7F;&#x7528;&#x6211;&#x4EEC;&#x7684;&#x8BED;&#x8A00;&#x670D;&#x52A1;&#x5668;&#x53EF;&#x4EE5;&#x5728; VS Code &#x548C; IntelliJ &#x4E2D;&#x83B7;&#x53D6;&#x81EA;&#x52A8;&#x8865;&#x5168;&#x548C;&#x8C03;&#x8BD5;&#x7B49;&#x667A;&#x80FD;&#x611F;&#x77E5;&#x3002;Ballerina &#x7684;&#x5173;&#x952E;&#x5B57;&#x548C;&#x8BED;&#x6CD5;&#x7ED3;&#x6784;&#x53EF;&#x4EE5;&#x7528;&#x5E8F;&#x5217;&#x56FE;&#x7684;&#x65B9;&#x5F0F;&#x6765;&#x8868;&#x793A;&#x3002;&#x4F7F;&#x7528; Ballerina Composer &#x53EF;&#x4EE5;&#x53EF;&#x89C6;&#x5316;&#x7684;&#x7F16;&#x8F91; Ballerina &#x4EE3;&#x7801;&#x3002;&#x53E6;&#x5916;&#x5B83;&#x4E5F;&#x53EF;&#x4EE5;&#x505A;&#x53EF;&#x89C6;&#x5316;&#x5F97;&#x8FD0;&#x884C;&#x65F6;&#x548C;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x8FFD;&#x8E2A;&#x3002;</p>
<p><strong>Ballerina &#x6784;&#x5EFA;</strong></p>
<p>&#x5C06;&#x670D;&#x52A1;&#x7F16;&#x8BD1;&#x4E3A;&#x7ECF;&#x8FC7;&#x4F18;&#x5316;&#x7684;&#x5B57;&#x8282;&#x7801;&#xFF0C;&#x4EE5;&#x4FBF;&#x4F7F;&#x7528;&#x5185;&#x5B58;&#x8C03;&#x4F18;&#x540E;&#x7684; BVM &#x8FD0;&#x884C;&#x3002;&#x63D0;&#x4F9B;&#x4E86;&#x4F7F;&#x7528;Testerina &#x7684;&#x9879;&#x76EE;&#x7ED3;&#x6784;&#x3001;&#x4F9D;&#x8D56;&#x7BA1;&#x7406;&#x3001;&#x5305;&#x7BA1;&#x7406;&#x548C;&#x5355;&#x5143;&#x6D4B;&#x8BD5;&#x3002;&#x6784;&#x5EFA;&#x9501;&#x53EF;&#x4EE5;&#x8F7B;&#x677E;&#x5730;&#x91CD;&#x65B0;&#x521B;&#x5EFA;&#x670D;&#x52A1;&#x548C;&#x90E8;&#x7F72;&#x3002;&#x751F;&#x6210;&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;&#xFF08;.balx&#xFF09;&#x6216;&#x5E93;&#xFF08;.balo&#xFF09;&#x3002;</p>
<p><strong>CI/CD</strong></p>
<p>&#x90E8;&#x7F72;&#x4EE3;&#x7801;&#x6CE8;&#x89E3;&#x4F1A;&#x89E6;&#x53D1;&#x6784;&#x5EFA;&#x6269;&#x5C55;&#xFF0C;&#x4ECE;&#x800C;&#x4E3A;&#x6301;&#x7EED;&#x96C6;&#x6210;&#x3001;&#x6301;&#x7EED;&#x4EA4;&#x4ED8;&#x6216;&#x7F16;&#x6392;&#x5668;&#x73AF;&#x5883;&#x751F;&#x6210;&#x5DE5;&#x4EF6;&#x3002;&#x5C06;&#x6784;&#x5EFA;&#x5DE5;&#x4EF6;&#x63A8;&#x9001;&#x5230;&#x60A8;&#x7684; CI/CD &#x7CFB;&#x7EDF;&#x6216;&#x5B8C;&#x5168;&#x8DF3;&#x8FC7;&#x3002;</p>
<p><strong>Registry</strong></p>
<p>&#x5C06;&#x7AEF;&#x70B9;&#x8FDE;&#x63A5;&#x5668;&#x3001;&#x81EA;&#x5B9A;&#x4E49;&#x6CE8;&#x89E3;&#x548C;&#x4EE3;&#x7801;&#x529F;&#x80FD;&#x4F5C;&#x4E3A;&#x53EF;&#x5171;&#x4EAB;&#x8F6F;&#x4EF6;&#x5305;&#x7EC4;&#x5408;&#x5728;&#x4E00;&#x8D77;&#x3002;&#x53EF;&#x4EE5;&#x5728;&#x5168;&#x7403;&#x5171;&#x4EAB;&#x8D44;&#x6E90;&#x5E93;&#x2014;&#x2014;Ballerina Central &#x4E2D; pull &#x6216; push &#x7248;&#x672C;&#x5316;&#x7684;&#x8F6F;&#x4EF6;&#x5305;&#x3002;</p>
<h2 id="ballerina-&#x7684;&#x8BED;&#x8A00;&#x7279;&#x6027;">Ballerina &#x7684;&#x8BED;&#x8A00;&#x7279;&#x6027;</h2>
<p>Ballerina &#x8BBE;&#x8BA1;&#x4E3A;&#x4E91;&#x4F18;&#x5148;&#xFF0C;&#x5185;&#x7F6E;&#x5BF9;&#x73B0;&#x4EE3; Web &#x534F;&#x8BAE;&#x548C;&#x6570;&#x636E;&#x683C;&#x5F0F;&#x7684;&#x652F;&#x6301;&#xFF0C;&#x5B8C;&#x5168;&#x652F;&#x6301;&#x56FE;&#x7075;&#x5B8C;&#x5907;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#xFF0C;&#x4EE5;&#x53CA;&#x5BF9;&#x5FAE;&#x670D;&#x52A1;&#x67B6;&#x6784;&#x7684;&#x539F;&#x751F;&#x652F;&#x6301;&#x3002;</p>
<ul>
<li>API &#x6784;&#x9020;</li>
<li>&#x903B;&#x8F91;&#x8BED;&#x8A00;</li>
<li>&#x5F02;&#x6B65;</li>
<li>Json &#x548C; XML</li>
<li>&#x6CE8;&#x89E3;</li>
<li>&#x7A33;&#x5B9A;&#x548C;&#x5F3A;&#x5927;&#x7684;&#x7C7B;&#x578B;</li>
<li>stream</li>
</ul>
<h2 id="ballerina-&#x4E2D;&#x96C6;&#x6210;&#x4E86;&#x54EA;&#x4E9B;&#x5185;&#x5BB9;&#xFF1F;">Ballerina &#x4E2D;&#x96C6;&#x6210;&#x4E86;&#x54EA;&#x4E9B;&#x5185;&#x5BB9;&#xFF1F;</h2>
<p>Ballerina &#x662F;&#x4E00;&#x79CD;&#x65E8;&#x5728;<strong>&#x96C6;&#x6210;&#x7B80;&#x5316;</strong>&#x7684;&#x8BED;&#x8A00;&#x3002;&#x57FA;&#x4E8E;&#x987A;&#x5E8F;&#x56FE;&#x7684;&#x4EA4;&#x4E92;&#xFF0C;Ballerina &#x5185;&#x7F6E;&#x4E86;&#x5BF9;&#x901A;&#x7528;&#x96C6;&#x6210;&#x6A21;&#x5F0F;&#x548C;&#x8FDE;&#x63A5;&#x5668;&#x7684;&#x652F;&#x6301;&#xFF0C;&#x5305;&#x62EC;&#x5206;&#x5E03;&#x5F0F;&#x4E8B;&#x52A1;&#x3001;&#x8865;&#x507F;&#x548C;&#x65AD;&#x8DEF;&#x5668;&#x3002;&#x51ED;&#x501F;&#x5BF9; JSON &#x548C; XML &#x7684;&#x4E00;&#x6D41;&#x652F;&#x6301;&#xFF0C;Ballerina &#x80FD;&#x591F;&#x7B80;&#x5355;&#x6709;&#x6548;&#x5730;&#x6784;&#x5EFA;&#x8DE8;&#x7F51;&#x7EDC;&#x7EC8;&#x7AEF;&#x7684;&#x5F3A;&#x5927;&#x96C6;&#x6210;&#x3002;</p>
<ul>
<li>&#x7C7B;&#x578B;&#x5B89;&#x5168;&#x7AEF;&#x70B9;&#x96C6;&#x6210;</li>
<li>&#x7C7B;&#x578B;&#x5B89;&#x5168;&#x8FDE;&#x63A5;&#x5668;</li>
<li>&#x53EF;&#x9760;&#x7684;&#x6D88;&#x606F;&#x4F20;&#x9012;</li>
<li>&#x5206;&#x5E03;&#x5F0F;&#x4E8B;&#x52A1;</li>
<li>&#x65AD;&#x8DEF;&#x5668;</li>
<li>&#x6CE8;&#x5165;&#x653B;&#x51FB;&#x9632;&#x62A4;</li>
<li>Docker &#x548C; Kubernetes</li>
</ul>
<p>&#x5173;&#x4E8E; Ballerina &#x4E2D;&#x5404;&#x4E2A;&#x529F;&#x80FD;&#x7684;&#x793A;&#x4F8B;&#x4EE3;&#x7801;&#x8BF7;&#x67E5;&#x9605; <a href="https://github.com/ballerina-platform/ballerina-examples" target="_blank">ballerina-example</a>&#x3002;</p>
<h2 id="&#x53C2;&#x8003;">&#x53C2;&#x8003;</h2>
<ul>
<li><a href="https://ballerina.io" target="_blank">https://ballerina.io</a></li>
<li><a href="https://dzone.com/articles/microservices-docker-kubernetes-serverless-service" target="_blank">Microservices, Docker, Kubernetes, Serverless, Service Mesh, and Beyond</a></li>
</ul>
<footer class="page-footer"><span class="copyright"><a href="https://mp.weixin.qq.com/s/vWlSdzz2MNdXRr0sd2-LFg" target="_blank">&#x52A0;&#x5165;&#x4E91;&#x539F;&#x751F;&#x793E;&#x533A;</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-12-11 13:16:28
</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="cloud-native-programming-languages.html" class="navigation navigation-prev " aria-label="Previous page: 云原生编程语言">
<i class="fa fa-angle-left"></i>
</a>
<a href="cloud-native-programming-language-pulumi.html" class="navigation navigation-next " aria-label="Next page: 云原生编程语言 Pulumi">
<i class="fa fa-angle-right"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"云原生编程语言 Ballerina","level":"2.10.1","depth":2,"next":{"title":"云原生编程语言 Pulumi","level":"2.10.2","depth":2,"path":"cloud-native/cloud-native-programming-language-pulumi.md","ref":"cloud-native/cloud-native-programming-language-pulumi.md","articles":[]},"previous":{"title":"云原生编程语言","level":"2.10","depth":1,"path":"cloud-native/cloud-native-programming-languages.md","ref":"cloud-native/cloud-native-programming-languages.md","articles":[{"title":"云原生编程语言 Ballerina","level":"2.10.1","depth":2,"path":"cloud-native/cloud-native-programming-language-ballerina.md","ref":"cloud-native/cloud-native-programming-language-ballerina.md","articles":[]},{"title":"云原生编程语言 Pulumi","level":"2.10.2","depth":2,"path":"cloud-native/cloud-native-programming-language-pulumi.md","ref":"cloud-native/cloud-native-programming-language-pulumi.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","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://mp.weixin.qq.com/s/vWlSdzz2MNdXRr0sd2-LFg>加入云原生社区</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"},"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.4.1","level":"2.4","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.4.1"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.1","level":"2.5","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.5.1"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.2","level":"2.5","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.5.2"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.3","level":"2.5","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.5.3"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.4","level":"2.5","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.5.4"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.5","level":"2.5","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.5.5"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.6","level":"2.5","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.5.6"},{"backlink":"cloud-native/cloud-native-local-quick-start.html#fig2.5.7","level":"2.5","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.5.7"},{"backlink":"cloud-native/setup-kubernetes-with-rancher-and-aliyun.html#fig2.6.1","level":"2.6","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.6.1"},{"backlink":"cloud-native/setup-kubernetes-with-rancher-and-aliyun.html#fig2.6.2","level":"2.6","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.6.2"},{"backlink":"cloud-native/setup-kubernetes-with-rancher-and-aliyun.html#fig2.6.3","level":"2.6","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.6.3"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.1","level":"2.7","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.7.1"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.2","level":"2.7","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.7.2"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.3","level":"2.7","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.7.3"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.4","level":"2.7","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.7.4"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.5","level":"2.7","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.7.5"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.6","level":"2.7","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.7.6"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.7","level":"2.7","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.7.7"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.8","level":"2.7","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.7.8"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.9","level":"2.7","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.7.9"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.10","level":"2.7","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.7.10"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.11","level":"2.7","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.7.11"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.12","level":"2.7","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.7.12"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.13","level":"2.7","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.7.13"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.14","level":"2.7","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.7.14"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.15","level":"2.7","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.7.15"},{"backlink":"cloud-native/kubernetes-and-cloud-native-app-overview.html#fig2.7.16","level":"2.7","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.7.16"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.1","level":"2.8","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.8.1"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.2","level":"2.8","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.8.2"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.3","level":"2.8","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.8.3"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.4","level":"2.8","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.8.4"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.5","level":"2.8","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.8.5"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.6","level":"2.8","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.8.6"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.7","level":"2.8","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.8.7"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.8","level":"2.8","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.8.8"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.9","level":"2.8","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.8.9"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.10","level":"2.8","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.8.10"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.11","level":"2.8","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.8.11"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.12","level":"2.8","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.8.12"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.13","level":"2.8","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.8.13"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.14","level":"2.8","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.8.14"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.15","level":"2.8","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.8.15"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.16","level":"2.8","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.8.16"},{"backlink":"cloud-native/from-kubernetes-to-cloud-native.html#fig2.8.17","level":"2.8","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.8.17"},{"backlink":"cloud-native/define-cloud-native-app.html#fig2.9.1","level":"2.9","list_caption":"Figure: 云原生应用模型","alt":"云原生应用模型","nro":46,"url":"../images/cloud-native-app-model.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生应用模型","attributes":{},"skip":false,"key":"2.9.1"},{"backlink":"cloud-native/define-cloud-native-app.html#fig2.9.2","level":"2.9","list_caption":"Figure: 云原生应用模型中的目标角色","alt":"云原生应用模型中的目标角色","nro":47,"url":"../images/roles.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生应用模型中的目标角色","attributes":{},"skip":false,"key":"2.9.2"},{"backlink":"cloud-native/oam.html#fig2.9.1.1","level":"2.9.1","list_caption":"Figure: OAM 规范示意图","alt":"OAM 规范示意图","nro":48,"url":"../images/oam-spec.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OAM 规范示意图","attributes":{},"skip":false,"key":"2.9.1.1"},{"backlink":"cloud-native/oam.html#fig2.9.1.2","level":"2.9.1","list_caption":"Figure: OAM 的原理","alt":"OAM 的原理","nro":49,"url":"../images/oam-principle.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OAM 的原理","attributes":{},"skip":false,"key":"2.9.1.2"},{"backlink":"cloud-native/crossplane.html#fig2.9.2.1","level":"2.9.2","list_caption":"Figure: Wordpress 页面","alt":"Wordpress 页面","nro":50,"url":"../images/wordpress.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Wordpress 页面","attributes":{},"skip":false,"key":"2.9.2.1"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.10.1.1","level":"2.10.1","list_caption":"Figure: 云原生编程语言ballerina","alt":"云原生编程语言ballerina","nro":51,"url":"../images/philosophy-page-diagrams-top.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言ballerina","attributes":{},"skip":false,"key":"2.10.1.1"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.10.1.2","level":"2.10.1","list_caption":"Figure: 云原生编程语言Ballerina的序列图设计理念","alt":"云原生编程语言Ballerina的序列图设计理念","nro":52,"url":"../images/philosophy-principle-diagrams-01.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言Ballerina的序列图设计理念","attributes":{},"skip":false,"key":"2.10.1.2"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.10.1.3","level":"2.10.1","list_caption":"Figure: 云原生编程语言Ballerina的并发理念","alt":"云原生编程语言Ballerina的并发理念","nro":53,"url":"../images/philosophy-principle-diagrams-02.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言Ballerina的并发理念","attributes":{},"skip":false,"key":"2.10.1.3"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.10.1.4","level":"2.10.1","list_caption":"Figure: 云原生编程语言ballerina运行时架构","alt":"云原生编程语言ballerina运行时架构","nro":54,"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.10.1.4"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.10.1.5","level":"2.10.1","list_caption":"Figure: 云原生编程语言ballerina部署架构图","alt":"云原生编程语言ballerina部署架构图","nro":55,"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.10.1.5"},{"backlink":"cloud-native/cloud-native-programming-language-ballerina.html#fig2.10.1.6","level":"2.10.1","list_caption":"Figure: 云原生编程语言ballerina生命周期架构图","alt":"云原生编程语言ballerina生命周期架构图","nro":56,"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.10.1.6"},{"backlink":"cloud-native/cloud-native-programming-language-pulumi.html#fig2.10.2.1","level":"2.10.2","list_caption":"Figure: 云原生编程语言Pulumi","alt":"云原生编程语言Pulumi","nro":57,"url":"../images/00704eQkgy1fsm4v0a6qwj30xc0m8t9d.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言Pulumi","attributes":{},"skip":false,"key":"2.10.2.1"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.1","level":"2.11","list_caption":"Figure: Kubernetes 云原生的操作系统","alt":"Kubernetes 云原生的操作系统","nro":58,"url":"../images/00704eQkgy1frr4z08j6oj31p20w2n6n.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes 云原生的操作系统","attributes":{},"skip":false,"key":"2.11.1"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.2","level":"2.11","list_caption":"Figure: 操作系统层次","alt":"操作系统层次","nro":59,"url":"../images/00704eQkgy1frr52hl4eaj31qy15en74.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"操作系统层次","attributes":{},"skip":false,"key":"2.11.2"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.3","level":"2.11","list_caption":"Figure: 云原生景观图","alt":"云原生景观图","nro":60,"url":"../images/00704eQkgy1frr53j3aiuj32fs1dc7wi.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生景观图","attributes":{},"skip":false,"key":"2.11.3"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.4","level":"2.11","list_caption":"Figure: KubeVirt架构图","alt":"KubeVirt架构图","nro":61,"url":"../images/00704eQkgy1frr54de5oyj31qw14qn2x.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"KubeVirt架构图","attributes":{},"skip":false,"key":"2.11.4"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.5","level":"2.11","list_caption":"Figure: Kubernetes中的资源隔离","alt":"Kubernetes中的资源隔离","nro":62,"url":"../images/00704eQkgy1frr54ztql2j329q0zwwlf.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kubernetes中的资源隔离","attributes":{},"skip":false,"key":"2.11.5"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.6","level":"2.11","list_caption":"Figure: OpenEBS 控制平面架构","alt":"OpenEBS 控制平面架构","nro":63,"url":"../images/00704eQkgy1frr56m7z2sj31y010y17y.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenEBS 控制平面架构","attributes":{},"skip":false,"key":"2.11.6"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.7","level":"2.11","list_caption":"Figure: OpenEBS 的存储卷管理","alt":"OpenEBS 的存储卷管理","nro":64,"url":"../images/00704eQkgy1frr57nm2mnj31xk11qqej.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenEBS 的存储卷管理","attributes":{},"skip":false,"key":"2.11.7"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.8","level":"2.11","list_caption":"Figure: Hadoop YARN 迁移到 Kubernetes的示例","alt":"Hadoop YARN 迁移到 Kubernetes的示例","nro":65,"url":"../images/00704eQkgy1frr58ebf2lj323o11219r.jpg","index":8,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Hadoop YARN 迁移到 Kubernetes的示例","attributes":{},"skip":false,"key":"2.11.8"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.9","level":"2.11","list_caption":"Figure: Spark on Yarn with Kubernetes","alt":"Spark on Yarn with Kubernetes","nro":66,"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.11.9"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.10","level":"2.11","list_caption":"Figure: 云原生与12因素应用","alt":"云原生与12因素应用","nro":67,"url":"../images/00704eQkgy1frr5arzvetj31no12mdre.jpg","index":10,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生与12因素应用","attributes":{},"skip":false,"key":"2.11.10"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.11","level":"2.11","list_caption":"Figure: 云原生编程语言","alt":"云原生编程语言","nro":68,"url":"../images/00704eQkgy1frr5c8bwmtj31ou152qc3.jpg","index":11,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"云原生编程语言","attributes":{},"skip":false,"key":"2.11.11"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.12","level":"2.11","list_caption":"Figure: Gitkube","alt":"Gitkube","nro":69,"url":"../images/00704eQkgy1frr5bulhuhj329m10iwua.jpg","index":12,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Gitkube","attributes":{},"skip":false,"key":"2.11.12"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.13","level":"2.11","list_caption":"Figure: Kuberentes中的流量管理","alt":"Kuberentes中的流量管理","nro":70,"url":"../images/00704eQkgy1frr5dsurx6j320i140tpf.jpg","index":13,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Kuberentes中的流量管理","attributes":{},"skip":false,"key":"2.11.13"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.14","level":"2.11","list_caption":"Figure: Istio Service Mesh架构图","alt":"Istio Service Mesh架构图","nro":71,"url":"../images/00704eQkgy1frr5exqm7kj320u18mh2t.jpg","index":14,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio Service Mesh架构图","attributes":{},"skip":false,"key":"2.11.14"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.15","level":"2.11","list_caption":"Figure: Service Mesh架构","alt":"Service Mesh架构","nro":72,"url":"../images/00704eQkgy1frr5fxzoltj32f81akqr2.jpg","index":15,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh架构","attributes":{},"skip":false,"key":"2.11.15"},{"backlink":"cloud-native/the-future-of-cloud-native.html#fig2.11.16","level":"2.11","list_caption":"Figure: Envoy proxy架构图","alt":"Envoy proxy架构图","nro":73,"url":"../images/envoy-arch.png","index":16,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Envoy proxy架构图","attributes":{},"skip":false,"key":"2.11.16"},{"backlink":"concepts/index.html#fig3.1.1","level":"3.1","list_caption":"Figure: Borg架构","alt":"Borg架构","nro":74,"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":75,"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":76,"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":77,"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":78,"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":79,"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":80,"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":81,"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":82,"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":83,"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":84,"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":85,"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":86,"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":87,"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":88,"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":89,"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":90,"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":91,"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":92,"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":93,"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":94,"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":95,"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":96,"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":97,"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":98,"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":99,"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":100,"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":101,"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":102,"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":103,"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":104,"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":105,"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":106,"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":107,"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":108,"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":109,"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":110,"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":111,"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":112,"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":113,"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":114,"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: Lens Kubernetes IDE 界面","alt":"Lens Kubernetes IDE 界面","nro":115,"url":"../images/lens.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Lens Kubernetes IDE 界面","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":116,"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":117,"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":118,"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":119,"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":120,"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":121,"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":122,"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":123,"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":124,"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":125,"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":126,"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":127,"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":128,"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":129,"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":130,"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":131,"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":132,"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":133,"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":134,"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":135,"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":136,"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":137,"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":138,"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":139,"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":140,"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":141,"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":142,"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":143,"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":144,"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":145,"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":146,"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":147,"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":148,"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":149,"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":150,"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":151,"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":152,"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":153,"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":154,"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":155,"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":156,"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":157,"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":158,"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":159,"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":160,"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":161,"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":162,"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":163,"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":164,"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":165,"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":166,"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":167,"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":168,"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":169,"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":170,"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":171,"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":172,"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":173,"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":174,"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":175,"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":176,"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":177,"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":178,"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":179,"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":180,"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":181,"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":182,"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":183,"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":184,"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":185,"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":186,"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":187,"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":188,"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":189,"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":190,"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":191,"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":192,"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":193,"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":194,"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":195,"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":196,"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":197,"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":198,"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":199,"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":200,"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":201,"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":202,"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":203,"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":204,"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":205,"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":206,"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":207,"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":208,"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.4.1","level":"6.4","list_caption":"Figure: 下一代异构微服务架构","alt":"下一代异构微服务架构","nro":209,"url":"../images/polyglot-microservices-serivce-mesh.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"下一代异构微服务架构","attributes":{},"skip":false,"key":"6.4.1"},{"backlink":"usecases/service-mesh.html#fig6.4.2","level":"6.4","list_caption":"Figure: Service Mesh 架构图","alt":"Service Mesh 架构图","nro":210,"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.4.2"},{"backlink":"usecases/service-mesh.html#fig6.4.3","level":"6.4","list_caption":"Figure: Istio vs linkerd","alt":"Istio vs linkerd","nro":211,"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.4.3"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.1","level":"6.4.1.1","list_caption":"Figure: Service Mesh模型对比","alt":"Service Mesh模型对比","nro":212,"url":"../images/0069RVTdly1fuafvbnuc7j310a0oqdm9.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh模型对比","attributes":{},"skip":false,"key":"6.4.1.1.1"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.2","level":"6.4.1.1","list_caption":"Figure: 网状网络拓扑","alt":"网状网络拓扑","nro":213,"url":"../images/0069RVTdly1fuaie8jan8j310a0kitem.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"网状网络拓扑","attributes":{},"skip":false,"key":"6.4.1.1.2"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.3","level":"6.4.1.1","list_caption":"Figure: Service Mesh架构图","alt":"Service Mesh架构图","nro":214,"url":"../images/0069RVTdly1fuail4d24jj31080rkgr7.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh架构图","attributes":{},"skip":false,"key":"6.4.1.1.3"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.4","level":"6.4.1.1","list_caption":"Figure: Istio Mixer","alt":"Istio Mixer","nro":215,"url":"../images/0069RVTdly1fuam4ln45jj30yu0o6wkc.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio Mixer","attributes":{},"skip":false,"key":"6.4.1.1.4"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.5","level":"6.4.1.1","list_caption":"Figure: Istio架构图","alt":"Istio架构图","nro":216,"url":"../images/0069RVTdly1fuamvq97cuj30yu0wg7cr.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio架构图","attributes":{},"skip":false,"key":"6.4.1.1.5"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.6","level":"6.4.1.1","list_caption":"Figure: OSI模型","alt":"OSI模型","nro":217,"url":"../images/0069RVTdly1fuanez4qbtj30v4183n7p.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OSI模型","attributes":{},"skip":false,"key":"6.4.1.1.6"},{"backlink":"usecases/service-mesh-fundamental.html#fig6.4.1.1.7","level":"6.4.1.1","list_caption":"Figure: 在L5解耦","alt":"在L5解耦","nro":218,"url":"../images/006tNbRwly1fubfiiryirj30w20ayjui.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"在L5解耦","attributes":{},"skip":false,"key":"6.4.1.1.7"},{"backlink":"usecases/comparing-service-mesh-technologies.html#fig6.4.1.2.1","level":"6.4.1.2","list_caption":"Figure: 客户端库","alt":"客户端库","nro":219,"url":"../images/006tNbRwly1fubnx0q9bpj30vq0pq465.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"客户端库","attributes":{},"skip":false,"key":"6.4.1.2.1"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.4.1.3.1","level":"6.4.1.3","list_caption":"Figure: Service Mesh架构图","alt":"Service Mesh架构图","nro":220,"url":"../images/006tNbRwly1fubs6ts3sgj30vo0osdnj.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Service Mesh架构图","attributes":{},"skip":false,"key":"6.4.1.3.1"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.4.1.3.2","level":"6.4.1.3","list_caption":"Figure: Ingress或边缘代理架构图","alt":"Ingress或边缘代理架构图","nro":221,"url":"../images/006tNbRwly1fubsk4v16hj30vo0bq75z.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Ingress或边缘代理架构图","attributes":{},"skip":false,"key":"6.4.1.3.2"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.4.1.3.3","level":"6.4.1.3","list_caption":"Figure: 路由器网格架构图","alt":"路由器网格架构图","nro":222,"url":"../images/006tNbRwly1fubsxrph3dj30vq0duq53.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"路由器网格架构图","attributes":{},"skip":false,"key":"6.4.1.3.3"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.4.1.3.4","level":"6.4.1.3","list_caption":"Figure: Proxy per Node架构图","alt":"Proxy per Node架构图","nro":223,"url":"../images/006tNbRwly1fubt5a97h7j30vq0bcq5p.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Proxy per Node架构图","attributes":{},"skip":false,"key":"6.4.1.3.4"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.4.1.3.5","level":"6.4.1.3","list_caption":"Figure: Sidecar代理/Fabric模型架构图","alt":"Sidecar代理/Fabric模型架构图","nro":224,"url":"../images/006tNbRwly1fubvi0dnhlj30vo0ekwhx.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar代理/Fabric模型架构图","attributes":{},"skip":false,"key":"6.4.1.3.5"},{"backlink":"usecases/service-mesh-adoption-and-evolution.html#fig6.4.1.3.6","level":"6.4.1.3","list_caption":"Figure: Sidecar代理/控制平面架构图","alt":"Sidecar代理/控制平面架构图","nro":225,"url":"../images/006tNbRwly1fubvr83wvgj30vq0mmdip.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar代理/控制平面架构图","attributes":{},"skip":false,"key":"6.4.1.3.6"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.4.1.4.1","level":"6.4.1.4","list_caption":"Figure: nginMesh架构图","alt":"nginMesh架构图","nro":226,"url":"../images/006tNbRwly1fucp8yralaj30vu0sijx8.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"nginMesh架构图","attributes":{},"skip":false,"key":"6.4.1.4.1"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.4.1.4.2","level":"6.4.1.4","list_caption":"Figure: Mixer adapter","alt":"Mixer adapter","nro":227,"url":"../images/006tNbRwly1fucplat3l9j30vo0lw43l.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Mixer adapter","attributes":{},"skip":false,"key":"6.4.1.4.2"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.4.1.4.3","level":"6.4.1.4","list_caption":"Figure: SOFAMesh","alt":"SOFAMesh","nro":228,"url":"../images/mosn-with-service-mesh.png","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"SOFAMesh","attributes":{},"skip":false,"key":"6.4.1.4.3"},{"backlink":"usecases/service-mesh-customization-and-integration.html#fig6.4.1.4.4","level":"6.4.1.4","list_caption":"Figure: SOFAMosn模块架构图","alt":"SOFAMosn模块架构图","nro":229,"url":"../images/006tNbRwly1fucpc5fn8wj31kw0sfdnu.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"SOFAMosn模块架构图","attributes":{},"skip":false,"key":"6.4.1.4.4"},{"backlink":"usecases/istio.html#fig6.4.2.1","level":"6.4.2","list_caption":"Figure: Istio的mindmap","alt":"Istio的mindmap","nro":230,"url":"../images/istio-mindmap.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio的mindmap","attributes":{},"skip":false,"key":"6.4.2.1"},{"backlink":"usecases/istio.html#fig6.4.2.2","level":"6.4.2","list_caption":"Figure: Istio架构图","alt":"Istio架构图","nro":231,"url":"../images/istio-mesh-arch.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio架构图","attributes":{},"skip":false,"key":"6.4.2.2"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.1","level":"6.4.2.1","list_caption":"Figure: Istio 在 Kubernetes 中的部署架构图","alt":"Istio 在 Kubernetes 中的部署架构图","nro":232,"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.4.2.1.1"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.2","level":"6.4.2.1","list_caption":"Figure: BookInfo Sample应用架构图","alt":"BookInfo Sample应用架构图","nro":233,"url":"../images/bookinfo-sample-arch.png","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"BookInfo Sample应用架构图","attributes":{},"skip":false,"key":"6.4.2.1.2"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.3","level":"6.4.2.1","list_caption":"Figure: BookInfo Sample页面","alt":"BookInfo Sample页面","nro":234,"url":"../images/bookinfo-sample.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"BookInfo Sample页面","attributes":{},"skip":false,"key":"6.4.2.1.3"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.4","level":"6.4.2.1","list_caption":"Figure: Istio Grafana界面","alt":"Istio Grafana界面","nro":235,"url":"../images/istio-grafana.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio Grafana界面","attributes":{},"skip":false,"key":"6.4.2.1.4"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.5","level":"6.4.2.1","list_caption":"Figure: Prometheus页面","alt":"Prometheus页面","nro":236,"url":"../images/istio-prometheus.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Prometheus页面","attributes":{},"skip":false,"key":"6.4.2.1.5"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.6","level":"6.4.2.1","list_caption":"Figure: Zipkin页面","alt":"Zipkin页面","nro":237,"url":"../images/istio-zipkin.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Zipkin页面","attributes":{},"skip":false,"key":"6.4.2.1.6"},{"backlink":"usecases/istio-installation.html#fig6.4.2.1.7","level":"6.4.2.1","list_caption":"Figure: ServiceGraph页面","alt":"ServiceGraph页面","nro":238,"url":"../images/istio-servicegraph.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"ServiceGraph页面","attributes":{},"skip":false,"key":"6.4.2.1.7"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.1","level":"6.4.2.4","list_caption":"Figure: katacoda","alt":"katacoda","nro":239,"url":"../images/006tNc79gy1ftwe77v4u5j31kw0ziwtw.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"katacoda","attributes":{},"skip":false,"key":"6.4.2.4.1"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.2","level":"6.4.2.4","list_caption":"Figure: weavescope","alt":"weavescope","nro":240,"url":"../images/006tNc79gy1ftwhtmzhfej31kw0ziww1.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"weavescope","attributes":{},"skip":false,"key":"6.4.2.4.2"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.3","level":"6.4.2.4","list_caption":"Figure: weavescope","alt":"weavescope","nro":241,"url":"../images/006tNc79gy1ftwhvtu1vxj31kw0zitvc.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"weavescope","attributes":{},"skip":false,"key":"6.4.2.4.3"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.4","level":"6.4.2.4","list_caption":"Figure: Red Hat","alt":"Red Hat","nro":242,"url":"../images/006tNc79gy1ftwiolw1tyj31kw0zib29.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Red Hat","attributes":{},"skip":false,"key":"6.4.2.4.4"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.5","level":"6.4.2.4","list_caption":"Figure: Red Hat developers","alt":"Red Hat developers","nro":243,"url":"../images/006tNc79gy1ftwjyxiw1pj31kw0zi4qp.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Red Hat developers","attributes":{},"skip":false,"key":"6.4.2.4.5"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.6","level":"6.4.2.4","list_caption":"Figure: IBM developerWorks","alt":"IBM developerWorks","nro":244,"url":"../images/006tNc79gy1ftweryj0zrj31kw0zix6q.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"IBM developerWorks","attributes":{},"skip":false,"key":"6.4.2.4.6"},{"backlink":"usecases/istio-tutorials-collection.html#fig6.4.2.4.7","level":"6.4.2.4","list_caption":"Figure: IBM developers","alt":"IBM developers","nro":245,"url":"../images/006tNc79gy1ftwesjg1e2j31kw0s8woq.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"IBM developers","attributes":{},"skip":false,"key":"6.4.2.4.7"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.4.2.5.1","level":"6.4.2.5","list_caption":"Figure: Sidecar 模式示意图","alt":"Sidecar 模式示意图","nro":246,"url":"../images/sidecar-pattern.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Sidecar 模式示意图","attributes":{},"skip":false,"key":"6.4.2.5.1"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.4.2.5.2","level":"6.4.2.5","list_caption":"Figure: Sidecar 流量劫持示意图","alt":"Sidecar 流量劫持示意图","nro":247,"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.4.2.5.2"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.4.2.5.3","level":"6.4.2.5","list_caption":"Figure: iptables 调用链","alt":"iptables 调用链","nro":248,"url":"../images/iptables.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"iptables 调用链","attributes":{},"skip":false,"key":"6.4.2.5.3"},{"backlink":"usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.html#fig6.4.2.5.4","level":"6.4.2.5","list_caption":"Figure: hook-connect 原理示意图","alt":"hook-connect 原理示意图","nro":249,"url":"../images/hook-connect.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"hook-connect 原理示意图","attributes":{},"skip":false,"key":"6.4.2.5.4"},{"backlink":"usecases/envoy-sidecar-routing-of-istio-service-mesh-deep-dive.html#fig6.4.2.6.1","level":"6.4.2.6","list_caption":"Figure: Bookinfo 示例","alt":"Bookinfo 示例","nro":250,"url":"../images/006tNbRwgy1fvlwjd3302j31bo0ro0x5.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Bookinfo 示例","attributes":{},"skip":false,"key":"6.4.2.6.1"},{"backlink":"usecases/how-to-integrate-istio-with-vm.html#fig6.4.2.7.1","level":"6.4.2.7","list_caption":"Figure: Istio 中的服务注册发现模型","alt":"Istio 中的服务注册发现模型","nro":251,"url":"https://tva1.sinaimg.cn/large/0081Kckwly1gktf3b63j0j30p30ehwf5.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio 中的服务注册发现模型","attributes":{},"skip":false,"key":"6.4.2.7.1"},{"backlink":"usecases/how-to-integrate-istio-with-vm.html#fig6.4.2.7.2","level":"6.4.2.7","list_caption":"Figure: Bookinfo 示例中的流量示意图","alt":"Bookinfo 示例中的流量示意图","nro":252,"url":"../images/istio-bookinfo-vm-traffic.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Bookinfo 示例中的流量示意图","attributes":{},"skip":false,"key":"6.4.2.7.2"},{"backlink":"usecases/how-to-integrate-istio-with-vm.html#fig6.4.2.7.3","level":"6.4.2.7","list_caption":"Figure: Istio 支持虚拟机 Demo 视频","alt":"Istio 支持虚拟机 Demo 视频","nro":253,"url":"../images/istio-vm-demo-video.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Istio 支持虚拟机 Demo 视频","attributes":{},"skip":false,"key":"6.4.2.7.3"},{"backlink":"usecases/linkerd.html#fig6.4.3.1","level":"6.4.3","list_caption":"Figure: source https://linkerd.io","alt":"source https://linkerd.io","nro":254,"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.4.3.1"},{"backlink":"usecases/linkerd.html#fig6.4.3.2","level":"6.4.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":255,"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.4.3.2"},{"backlink":"usecases/linkerd.html#fig6.4.3.3","level":"6.4.3","list_caption":"Figure: 基于 dtab 的路由规则配置阶段发布","alt":"基于 dtab 的路由规则配置阶段发布","nro":256,"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.4.3.3"},{"backlink":"usecases/linkerd.html#fig6.4.3.4","level":"6.4.3","list_caption":"Figure: Linkerd ingress controller","alt":"Linkerd ingress controller","nro":257,"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.4.3.4"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.1","level":"6.4.3.1","list_caption":"Figure: Jenkins pipeline","alt":"Jenkins pipeline","nro":258,"url":"../images/linkerd-jenkins-pipeline.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Jenkins pipeline","attributes":{},"skip":false,"key":"6.4.3.1.1"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.2","level":"6.4.3.1","list_caption":"Figure: Jenkins config","alt":"Jenkins config","nro":259,"url":"../images/linkerd-jenkins.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Jenkins config","attributes":{},"skip":false,"key":"6.4.3.1.2"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.3","level":"6.4.3.1","list_caption":"Figure: namerd","alt":"namerd","nro":260,"url":"../images/namerd-internal.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"namerd","attributes":{},"skip":false,"key":"6.4.3.1.3"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.4","level":"6.4.3.1","list_caption":"Figure: linkerd监控","alt":"linkerd监控","nro":261,"url":"../images/linkerd-helloworld-outgoing.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"linkerd监控","attributes":{},"skip":false,"key":"6.4.3.1.4"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.5","level":"6.4.3.1","list_caption":"Figure: linkerd监控","alt":"linkerd监控","nro":262,"url":"../images/linkerd-helloworld-incoming.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"linkerd监控","attributes":{},"skip":false,"key":"6.4.3.1.5"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.6","level":"6.4.3.1","list_caption":"Figure: linkerd性能监控","alt":"linkerd性能监控","nro":263,"url":"../images/linkerd-grafana.png","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"linkerd性能监控","attributes":{},"skip":false,"key":"6.4.3.1.6"},{"backlink":"usecases/linkerd-user-guide.html#fig6.4.3.1.7","level":"6.4.3.1","list_caption":"Figure: Linkerd ingress controller","alt":"Linkerd ingress controller","nro":264,"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.4.3.1.7"},{"backlink":"usecases/conduit-installation.html#fig6.4.4.2.1","level":"6.4.4.2","list_caption":"Figure: Conduit dashboard","alt":"Conduit dashboard","nro":265,"url":"../images/conduit-dashboard.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Conduit dashboard","attributes":{},"skip":false,"key":"6.4.4.2.1"},{"backlink":"usecases/envoy.html#fig6.4.5.1","level":"6.4.5","list_caption":"Figure: 负载均衡器的特性以及拓扑类型","alt":"负载均衡器的特性以及拓扑类型","nro":266,"url":"../images/load-balancing-and-proxing.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"负载均衡器的特性以及拓扑类型","attributes":{},"skip":false,"key":"6.4.5.1"},{"backlink":"usecases/envoy-terminology.html#fig6.4.5.1.1","level":"6.4.5.1","list_caption":"Figure: Envoy proxy 架构图","alt":"Envoy proxy 架构图","nro":267,"url":"../images/envoy-arch.png","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Envoy proxy 架构图","attributes":{},"skip":false,"key":"6.4.5.1.1"},{"backlink":"usecases/envoy-front-proxy.html#fig6.4.5.2.1","level":"6.4.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":268,"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.4.5.2.1"},{"backlink":"usecases/envoy-mesh-in-kubernetes-tutorial.html#fig6.4.5.3.1","level":"6.4.5.3","list_caption":"Figure: Envoy Mesh架构图","alt":"Envoy Mesh架构图","nro":269,"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.4.5.3.1"},{"backlink":"usecases/big-data.html#fig6.5.1","level":"6.5","list_caption":"Figure: Spark on yarn with kubernetes","alt":"Spark on yarn with kubernetes","nro":270,"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.5.1"},{"backlink":"usecases/big-data.html#fig6.5.2","level":"6.5","list_caption":"Figure: 在kubernetes上使用多种调度方式","alt":"在kubernetes上使用多种调度方式","nro":271,"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.5.2"},{"backlink":"usecases/spark-standalone-on-kubernetes.html#fig6.5.1.1","level":"6.5.1","list_caption":"Figure: spark master ui","alt":"spark master ui","nro":272,"url":"../images/spark-ui.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"spark master ui","attributes":{},"skip":false,"key":"6.5.1.1"},{"backlink":"usecases/spark-standalone-on-kubernetes.html#fig6.5.1.2","level":"6.5.1","list_caption":"Figure: zeppelin ui","alt":"zeppelin ui","nro":273,"url":"../images/zeppelin-ui.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"zeppelin ui","attributes":{},"skip":false,"key":"6.5.1.2"},{"backlink":"usecases/serverless.html#fig6.6.1","level":"6.6","list_caption":"Figure: Serverless Landscape","alt":"Serverless Landscape","nro":274,"url":"../images/006tNbRwly1fx0ie2kb90j31kw0ynha3.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless Landscape","attributes":{},"skip":false,"key":"6.6.1"},{"backlink":"usecases/serverless.html#fig6.6.2","level":"6.6","list_caption":"Figure: 从物理机到函数计算","alt":"从物理机到函数计算","nro":275,"url":"../images/from-bare-metal-to-functions.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"从物理机到函数计算","attributes":{},"skip":false,"key":"6.6.2"},{"backlink":"usecases/serverless.html#fig6.6.3","level":"6.6","list_caption":"Figure: FaaS Landscape","alt":"FaaS Landscape","nro":276,"url":"../images/redpoint-faas-landscape.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS Landscape","attributes":{},"skip":false,"key":"6.6.3"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.1","level":"6.6.1","list_caption":"Figure: Serverless 在云原生技术中的地位","alt":"Serverless 在云原生技术中的地位","nro":277,"url":"../images/cloud-landscape-zh.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless 在云原生技术中的地位","attributes":{},"skip":false,"key":"6.6.1.1"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.2","level":"6.6.1","list_caption":"Figure: 服务端软件的运行环境","alt":"服务端软件的运行环境","nro":278,"url":"../images/serverless-server-side-software.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"服务端软件的运行环境","attributes":{},"skip":false,"key":"6.6.1.2"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.3","level":"6.6.1","list_caption":"Figure: FaaS应用架构","alt":"FaaS应用架构","nro":279,"url":"../images/serverless-faas-platform.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS应用架构","attributes":{},"skip":false,"key":"6.6.1.3"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.4","level":"6.6.1","list_caption":"Figure: Serverless 中的函数定义","alt":"Serverless 中的函数定义","nro":280,"url":"../images/006y8mN6ly1g7ldey3l7gj31ti0mwta9.jpg","index":4,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless 中的函数定义","attributes":{},"skip":false,"key":"6.6.1.4"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.5","level":"6.6.1","list_caption":"Figure: FaaS 中的函数","alt":"FaaS 中的函数","nro":281,"url":"../images/006y8mN6ly1g7ldhm7bxyj31040u0q5n.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"FaaS 中的函数","attributes":{},"skip":false,"key":"6.6.1.5"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.6","level":"6.6.1","list_caption":"Figure: 传统应用程序架构","alt":"传统应用程序架构","nro":282,"url":"../images/non-serverless-game-arch.jpg","index":6,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"传统应用程序架构","attributes":{},"skip":false,"key":"6.6.1.6"},{"backlink":"usecases/understanding-serverless.html#fig6.6.1.7","level":"6.6.1","list_caption":"Figure: Serverless架构","alt":"Serverless架构","nro":283,"url":"../images/serverless-game-arch.jpg","index":7,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"Serverless架构","attributes":{},"skip":false,"key":"6.6.1.7"},{"backlink":"usecases/openfaas-quick-start.html#fig6.6.2.1.1","level":"6.6.2.1","list_caption":"Figure: OpenFaaS架构","alt":"OpenFaaS架构","nro":284,"url":"../images/openfaas-arch.jpg","index":1,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaaS架构","attributes":{},"skip":false,"key":"6.6.2.1.1"},{"backlink":"usecases/openfaas-quick-start.html#fig6.6.2.1.2","level":"6.6.2.1","list_caption":"Figure: OpenFaaS Prometheus","alt":"OpenFaaS Prometheus","nro":285,"url":"../images/openfaas-prometheus.jpg","index":2,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaaS Prometheus","attributes":{},"skip":false,"key":"6.6.2.1.2"},{"backlink":"usecases/openfaas-quick-start.html#fig6.6.2.1.3","level":"6.6.2.1","list_caption":"Figure: OpenFaas Grafana监控","alt":"OpenFaas Grafana监控","nro":286,"url":"../images/openfaas-grafana.jpg","index":3,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"OpenFaas Grafana监控","attributes":{},"skip":false,"key":"6.6.2.1.3"},{"backlink":"usecases/openfaas-quick-start.html#fig6.6.2.1.4","level":"6.6.2.1","list_caption":"Figure: OpenFaas Dashboard","alt":"OpenFaas Dashboard","nro":287,"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.6.2.1.4"},{"backlink":"usecases/openfaas-quick-start.html#fig6.6.2.1.5","level":"6.6.2.1","list_caption":"Figure: NodeInfo执行结果","alt":"NodeInfo执行结果","nro":288,"url":"../images/openfaas-nodeinfo.jpg","index":5,"caption_template":"图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER__CAPTION_","label":"NodeInfo执行结果","attributes":{},"skip":false,"key":"6.6.2.1.5"},{"backlink":"usecases/knative.html#fig6.6.3.1","level":"6.6.3","list_caption":"Figure: Knative logo","alt":"Knative logo","nro":289,"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.6.3.1"},{"backlink":"usecases/knative.html#fig6.6.3.2","level":"6.6.3","list_caption":"Figure: Knative 受众(图片来自 knative.dev","alt":"Knative 受众(图片来自 knative.dev","nro":290,"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.6.3.2"},{"backlink":"usecases/edge-computing.html#fig6.7.1","level":"6.7","list_caption":"Figure: KubeEdge logo","alt":"KubeEdge logo","nro":291,"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":292,"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":293,"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":294,"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":295,"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":296,"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":297,"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":298,"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":299,"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":300,"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":301,"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":302,"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":303,"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":304,"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":305,"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":306,"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":307,"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":308,"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":309,"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":310,"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":311,"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":312,"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":313,"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":314,"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":315,"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":316,"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":317,"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":318,"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","云原生开源项目大全":"https://jimmysong.io/awesome-cloud-native","云原生社区":"https://cloudnative.to"}},"gitbook":"*","description":"Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册本书记录了本人从零开始学习和使用Kubernetes的心路历程着重于经验分享和总结同时也会有相关的概念解析希望能够帮助大家少踩坑少走弯路还会指引大家关注Kubernetes生态周边如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native等领域。"},"file":{"path":"cloud-native/cloud-native-programming-language-ballerina.md","mtime":"2020-12-11T13:16:28.826Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-12-11T13:17:51.170Z"},"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-alerts/plugin.js"></script>
<script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
<script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
</body>
</html>