kubernetes-handbook/practice/storage-for-containers-usin...

4515 lines
244 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML>
2017-09-19 22:01:07 +08:00
<html lang="zh-hans" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
2017-11-15 21:18:59 +08:00
<title>在OpenShift中使用GlusterFS做持久化存储 · Kubernetes Handbook - jimmysong.io</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
2018-07-03 15:57:56 +08:00
<meta name="generator" content="GitBook 3.2.2">
<meta name="author" content="Jimmy Song">
<link rel="stylesheet" href="../gitbook/style.css">
<link rel="stylesheet" href="../gitbook/gitbook-plugin-splitter/splitter.css">
<link rel="stylesheet" href="../gitbook/gitbook-plugin-page-toc-button/plugin.css">
<link rel="stylesheet" href="../gitbook/gitbook-plugin-image-captions/image-captions.css">
2017-10-09 15:28:05 +08:00
<link rel="stylesheet" href="../gitbook/gitbook-plugin-back-to-top-button/plugin.css">
2017-10-09 15:28:05 +08:00
<link rel="stylesheet" href="../gitbook/gitbook-plugin-search-plus/search.css">
2017-09-19 21:38:03 +08:00
2017-10-09 15:28:05 +08:00
<link rel="stylesheet" href="../gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
2018-02-20 18:00:08 +08:00
<link rel="stylesheet" href="../gitbook/gitbook-plugin-prism/prism-ghcolors.css">
<link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
2017-10-09 15:28:05 +08:00
<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">
2018-05-23 19:52:24 +08:00
<link rel="next" href="glusterd-2.0.html" />
<link rel="prev" href="using-heketi-gluster-for-persistent-storage.html" />
2017-10-09 15:28:05 +08:00
<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">
2017-09-19 22:01:07 +08:00
<input type="text" placeholder="输入并搜索" />
</div>
<nav role="navigation">
<ul class="summary">
2017-10-09 15:28:05 +08:00
<li>
2017-11-15 21:18:59 +08:00
<a href="https://jimmysong.io" target="_blank" class="custom-link">Jimmy Song</a>
2017-10-09 15:28:05 +08:00
</li>
2018-07-08 19:42:31 +08:00
<li>
<a href="https://jimmysong.io/awesome-cloud-native" target="_blank" class="custom-link">Awesome Cloud Native</a>
</li>
<li>
<a href="http://wwww.servicemesher.com" target="_blank" class="custom-link">ServiceMesher</a>
</li>
<li>
<a href="http://www.servicemesher.com/awesome-servicemesh" target="_blank" class="custom-link">Awesome Service Mesh</a>
</li>
<li>
<a href="https://jimmysong.io/posts/cloud-native-go" target="_blank" class="custom-link">Cloud Native Go - 基于Go和React的web云原生应用构建指南</a>
</li>
<li>
<a href="https://jimmysong.io/posts/cloud-native-python" target="_blank" class="custom-link">Cloud Native PythonPython云原生 - 使用Python和React构建云原生应用</a>
</li>
<li>
<a href="https://jimmysong.io/posts/cloud-native-java" target="_blank" class="custom-link">Cloud Native Java云原生Java- Spring Boot、Spring Cloud与Cloud Foundry弹性系统设计</a>
</li>
2017-10-09 15:28:05 +08:00
2017-10-09 15:28:05 +08:00
<li class="divider"></li>
2017-11-15 21:18:59 +08:00
<li class="header">前言</li>
<li class="chapter " data-level="1.1" data-path="../">
<a href="../">
2017-11-15 21:18:59 +08:00
<b>1.1.</b>
序言
</a>
2018-03-04 18:01:35 +08:00
</li>
<li class="chapter " data-level="1.2" data-path="../cloud-native/cncf.html">
<a href="../cloud-native/cncf.html">
<b>1.2.</b>
CNCF - 云原生计算基金会简介
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="header">云原生</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.1" data-path="../cloud-native/cloud-native-definition.html">
2018-07-08 19:42:31 +08:00
<a href="../cloud-native/cloud-native-definition.html">
2017-12-20 17:27:16 +08:00
<b>2.1.</b>
2017-11-15 21:18:59 +08:00
2018-07-08 19:42:31 +08:00
云原生的定义
</a>
</li>
<li class="chapter " data-level="2.2" data-path="../cloud-native/play-with-kubernetes.html">
<a href="../cloud-native/play-with-kubernetes.html">
<b>2.2.</b>
2018-01-21 20:30:36 +08:00
Play with Kubernetes
</a>
</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.3" data-path="../cloud-native/cloud-native-local-quick-start.html">
<a href="../cloud-native/cloud-native-local-quick-start.html">
<b>2.3.</b>
快速部署一个云原生本地实验环境
</a>
</li>
<li class="chapter " data-level="2.4" data-path="../cloud-native/kubernetes-and-cloud-native-app-overview.html">
2018-01-21 20:30:36 +08:00
<a href="../cloud-native/kubernetes-and-cloud-native-app-overview.html">
2018-07-08 19:42:31 +08:00
<b>2.4.</b>
2018-01-21 20:30:36 +08:00
2017-11-15 21:18:59 +08:00
Kubernetes与云原生应用概览
</a>
2017-12-20 19:27:32 +08:00
</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.5" data-path="../cloud-native/from-kubernetes-to-cloud-native.html">
2017-12-20 19:27:32 +08:00
<a href="../cloud-native/from-kubernetes-to-cloud-native.html">
2018-07-08 19:42:31 +08:00
<b>2.5.</b>
2017-12-20 19:27:32 +08:00
云原生应用之路——从Kubernetes到Cloud Native
</a>
</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.6" data-path="../cloud-native/cloud-native-programming-languages.html">
<a href="../cloud-native/cloud-native-programming-languages.html">
2018-07-08 19:42:31 +08:00
<b>2.6.</b>
云原生编程语言
</a>
<ul class="articles">
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.6.1" data-path="../cloud-native/cloud-native-programming-language-ballerina.html">
<a href="../cloud-native/cloud-native-programming-language-ballerina.html">
2018-07-08 19:42:31 +08:00
<b>2.6.1.</b>
云原生编程语言Ballerina
</a>
</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.6.2" data-path="../cloud-native/cloud-native-programming-language-pulumi.html">
<a href="../cloud-native/cloud-native-programming-language-pulumi.html">
2018-07-08 19:42:31 +08:00
<b>2.6.2.</b>
云原生编程语言Pulumi
</a>
</li>
</ul>
2018-06-02 11:26:58 +08:00
</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="2.7" data-path="../cloud-native/the-future-of-cloud-native.html">
2018-06-02 11:26:58 +08:00
<a href="../cloud-native/the-future-of-cloud-native.html">
2018-07-08 19:42:31 +08:00
<b>2.7.</b>
2018-06-02 11:26:58 +08:00
云原生的未来
</a>
</li>
2017-11-15 21:18:59 +08:00
<li class="header">概念与原理</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="3.1" data-path="../concepts/">
<a href="../concepts/">
2017-12-20 17:27:16 +08:00
<b>3.1.</b>
2017-11-15 21:18:59 +08:00
Kubernetes架构
</a>
2018-01-22 14:25:36 +08:00
<ul class="articles">
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="3.1.1" data-path="../concepts/concepts.html">
2018-01-22 14:25:36 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/concepts.html">
2018-01-22 14:25:36 +08:00
<b>3.1.1.</b>
2018-01-30 12:30:58 +08:00
设计理念
</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>
2018-01-22 14:25:36 +08:00
Etcd解析
</a>
2018-01-22 15:48:09 +08:00
</li>
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="3.1.3" data-path="../concepts/open-interfaces.html">
2018-01-22 15:48:09 +08:00
<a href="../concepts/open-interfaces.html">
2018-01-30 12:30:58 +08:00
<b>3.1.3.</b>
2018-01-22 15:48:09 +08:00
开放接口
</a>
2018-01-22 18:55:50 +08:00
<ul class="articles">
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="3.1.3.1" data-path="../concepts/cri.html">
2018-01-22 18:55:50 +08:00
<a href="../concepts/cri.html">
2018-01-30 12:30:58 +08:00
<b>3.1.3.1.</b>
2018-01-22 18:55:50 +08:00
CRI - Container Runtime Interface容器运行时接口
</a>
2018-01-24 18:11:17 +08:00
</li>
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="3.1.3.2" data-path="../concepts/cni.html">
2018-01-24 18:11:17 +08:00
<a href="../concepts/cni.html">
2018-01-30 12:30:58 +08:00
<b>3.1.3.2.</b>
2018-01-24 18:11:17 +08:00
CNI - Container Network Interface容器网络接口
</a>
2018-01-25 17:06:10 +08:00
</li>
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="3.1.3.3" data-path="../concepts/csi.html">
2018-01-25 17:06:10 +08:00
<a href="../concepts/csi.html">
2018-01-30 12:30:58 +08:00
<b>3.1.3.3.</b>
2018-01-25 17:06:10 +08:00
CSI - Container Storage Interface容器存储接口
</a>
2018-01-22 18:55:50 +08:00
</li>
</ul>
2018-02-05 22:14:09 +08:00
</li>
2018-03-12 17:48:23 +08:00
</ul>
</li>
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="3.2" data-path="../concepts/networking.html">
2018-03-12 17:48:23 +08:00
2018-07-08 19:42:31 +08:00
<a href="../concepts/networking.html">
2018-03-12 17:48:23 +08:00
<b>3.2.</b>
Kubernetes中的网络
2018-07-08 19:42:31 +08:00
</a>
2018-03-12 17:48:23 +08:00
<ul class="articles">
2018-07-08 19:42:31 +08:00
<li class="chapter " data-level="3.2.1" data-path="../concepts/flannel.html">
2018-02-05 22:14:09 +08:00
2018-07-08 19:42:31 +08:00
<a href="../concepts/flannel.html">
2018-02-05 22:14:09 +08:00
2018-03-12 17:48:23 +08:00
<b>3.2.1.</b>
2018-02-05 22:14:09 +08:00
Kubernetes中的网络解析——以flannel为例
</a>
2018-01-22 14:25:36 +08:00
</li>
2018-03-12 17:48:23 +08:00
<li class="chapter " data-level="3.2.2" data-path="../concepts/calico.html">
2018-02-09 18:24:23 +08:00
<a href="../concepts/calico.html">
2018-03-12 17:48:23 +08:00
<b>3.2.2.</b>
2017-11-15 21:18:59 +08:00
2018-02-09 18:24:23 +08:00
Kubernetes中的网络解析——以calico为例
</a>
</li>
2018-03-12 17:48:23 +08:00
</ul>
</li>
<li class="chapter " data-level="3.3" data-path="../concepts/objects.html">
2018-02-09 18:24:23 +08:00
<a href="../concepts/objects.html">
2018-03-12 17:48:23 +08:00
<b>3.3.</b>
2018-02-09 18:24:23 +08:00
2018-01-30 12:30:58 +08:00
资源对象与基本概念解析
</a>
2018-03-12 17:48:23 +08:00
</li>
2018-03-12 17:48:23 +08:00
<li class="chapter " data-level="3.4" data-path="../concepts/pod-state-and-lifecycle.html">
2018-02-06 16:51:29 +08:00
<a href="../concepts/pod-state-and-lifecycle.html">
2018-03-12 17:48:23 +08:00
<b>3.4.</b>
2017-11-15 21:18:59 +08:00
2018-02-06 16:51:29 +08:00
Pod状态与生命周期管理
</a>
2018-03-12 17:48:23 +08:00
<ul class="articles">
2018-03-12 17:48:23 +08:00
<li class="chapter " data-level="3.4.1" data-path="../concepts/pod-overview.html">
<a href="../concepts/pod-overview.html">
2018-03-12 17:48:23 +08:00
<b>3.4.1.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Pod概览
</a>
2018-01-30 12:30:58 +08:00
</li>
2018-03-12 17:48:23 +08:00
<li class="chapter " data-level="3.4.2" data-path="../concepts/pod.html">
<a href="../concepts/pod.html">
2018-03-12 17:48:23 +08:00
<b>3.4.2.</b>
2017-11-15 21:18:59 +08:00
Pod解析
</a>
2017-08-31 23:28:33 +08:00
</li>
2018-03-12 17:48:23 +08:00
<li class="chapter " data-level="3.4.3" data-path="../concepts/init-containers.html">
2017-08-31 23:28:33 +08:00
<a href="../concepts/init-containers.html">
2018-03-12 17:48:23 +08:00
<b>3.4.3.</b>
2017-11-15 21:18:59 +08:00
Init容器
2017-08-31 23:28:33 +08:00
</a>
2017-09-03 15:58:39 +08:00
</li>
2018-03-17 22:22:27 +08:00
<li class="chapter " data-level="3.4.4" data-path="../concepts/pause-container.html">
2017-09-03 15:58:39 +08:00
2018-03-17 22:22:27 +08:00
<a href="../concepts/pause-container.html">
2017-09-03 15:58:39 +08:00
2018-03-12 17:48:23 +08:00
<b>3.4.4.</b>
2017-11-15 21:18:59 +08:00
2018-03-17 22:22:27 +08:00
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>
2017-11-15 21:18:59 +08:00
Pod安全策略
2017-09-03 15:58:39 +08:00
</a>
2017-09-17 15:39:26 +08:00
</li>
2018-03-17 22:22:27 +08:00
<li class="chapter " data-level="3.4.6" data-path="../concepts/pod-lifecycle.html">
2017-09-17 15:39:26 +08:00
<a href="../concepts/pod-lifecycle.html">
2018-03-17 22:22:27 +08:00
<b>3.4.6.</b>
2017-11-15 21:18:59 +08:00
Pod的生命周期
2017-09-17 15:39:26 +08:00
</a>
</li>
2018-03-17 22:22:27 +08:00
<li class="chapter " data-level="3.4.7" data-path="../concepts/pod-hook.html">
<a href="../concepts/pod-hook.html">
2018-03-17 22:22:27 +08:00
<b>3.4.7.</b>
Pod Hook
</a>
2017-12-11 10:47:19 +08:00
</li>
2018-03-17 22:22:27 +08:00
<li class="chapter " data-level="3.4.8" data-path="../concepts/pod-preset.html">
2017-12-11 10:47:19 +08:00
<a href="../concepts/pod-preset.html">
2018-03-17 22:22:27 +08:00
<b>3.4.8.</b>
2017-12-11 10:47:19 +08:00
Pod Preset
</a>
2018-01-30 12:30:58 +08:00
</li>
2018-03-17 22:22:27 +08:00
<li class="chapter " data-level="3.4.9" data-path="../concepts/pod-disruption-budget.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/pod-disruption-budget.html">
2018-03-17 22:22:27 +08:00
<b>3.4.9.</b>
2018-01-30 12:30:58 +08:00
Pod中断与PDBPod中断预算
</a>
2018-03-12 18:00:25 +08:00
</li>
2018-03-12 18:00:25 +08:00
</ul>
</li>
<li class="chapter " data-level="3.5" data-path="../concepts/cluster.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/cluster.html">
2018-03-12 18:00:25 +08:00
<b>3.5.</b>
2018-01-30 12:30:58 +08:00
2018-03-12 17:48:23 +08:00
集群资源管理
2018-01-30 12:30:58 +08:00
</a>
2018-03-12 18:00:25 +08:00
<ul class="articles">
2018-01-30 12:30:58 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.5.1" data-path="../concepts/node.html">
<a href="../concepts/node.html">
2018-03-12 18:00:25 +08:00
<b>3.5.1.</b>
2017-11-15 21:18:59 +08:00
Node
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.5.2" data-path="../concepts/namespace.html">
<a href="../concepts/namespace.html">
2018-03-12 18:00:25 +08:00
<b>3.5.2.</b>
2017-11-15 21:18:59 +08:00
Namespace
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.5.3" data-path="../concepts/label.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/label.html">
2018-03-12 18:00:25 +08:00
<b>3.5.3.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Label
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.5.4" data-path="../concepts/annotation.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/annotation.html">
2018-03-12 18:00:25 +08:00
<b>3.5.4.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Annotation
</a>
2018-01-25 15:01:14 +08:00
</li>
2018-01-08 17:26:29 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.5.5" data-path="../concepts/taint-and-toleration.html">
2018-01-08 17:26:29 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/taint-and-toleration.html">
2018-01-08 17:26:29 +08:00
2018-03-12 18:00:25 +08:00
<b>3.5.5.</b>
2018-01-08 17:26:29 +08:00
2018-01-30 12:30:58 +08:00
Taint和Toleration污点和容忍
2018-01-08 17:26:29 +08:00
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.5.6" data-path="../concepts/garbage-collection.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/garbage-collection.html">
2018-03-12 18:00:25 +08:00
<b>3.5.6.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
垃圾收集
</a>
2018-03-12 18:00:25 +08:00
</li>
2018-01-30 12:30:58 +08:00
2018-03-12 18:00:25 +08:00
</ul>
</li>
<li class="chapter " data-level="3.6" data-path="../concepts/controllers.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/controllers.html">
2018-03-12 18:00:25 +08:00
<b>3.6.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
控制器
</a>
2018-03-12 18:00:25 +08:00
<ul class="articles">
2018-03-12 17:48:23 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.1" data-path="../concepts/deployment.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/deployment.html">
2018-03-12 18:00:25 +08:00
<b>3.6.1.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Deployment
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.2" data-path="../concepts/statefulset.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/statefulset.html">
2018-03-12 18:00:25 +08:00
<b>3.6.2.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
StatefulSet
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.3" data-path="../concepts/daemonset.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/daemonset.html">
2018-03-12 18:00:25 +08:00
<b>3.6.3.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
DaemonSet
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.4" data-path="../concepts/replicaset.html">
<a href="../concepts/replicaset.html">
2018-03-12 18:00:25 +08:00
<b>3.6.4.</b>
2017-11-15 21:18:59 +08:00
ReplicationController和ReplicaSet
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.5" data-path="../concepts/job.html">
<a href="../concepts/job.html">
2018-03-12 18:00:25 +08:00
<b>3.6.5.</b>
2017-11-15 21:18:59 +08:00
Job
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.6" data-path="../concepts/cronjob.html">
<a href="../concepts/cronjob.html">
2018-03-12 18:00:25 +08:00
<b>3.6.6.</b>
2017-11-15 21:18:59 +08:00
CronJob
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.7" data-path="../concepts/horizontal-pod-autoscaling.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/horizontal-pod-autoscaling.html">
2018-03-12 18:00:25 +08:00
<b>3.6.7.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Horizontal Pod Autoscaling
</a>
2017-11-30 16:59:17 +08:00
<ul class="articles">
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.6.7.1" data-path="../concepts/custom-metrics-hpa.html">
2017-11-30 16:59:17 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/custom-metrics-hpa.html">
2017-11-30 16:59:17 +08:00
2018-03-12 18:00:25 +08:00
<b>3.6.7.1.</b>
2017-11-30 16:59:17 +08:00
2018-01-30 12:30:58 +08:00
自定义指标HPA
2017-11-30 16:59:17 +08:00
</a>
</li>
2018-03-12 18:00:25 +08:00
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="3.7" data-path="../concepts/service-discovery.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/service-discovery.html">
2018-03-12 18:00:25 +08:00
<b>3.7.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
服务发现
</a>
2018-03-12 18:00:25 +08:00
<ul class="articles">
2017-11-08 19:28:16 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.7.1" data-path="../concepts/service.html">
2017-11-08 19:28:16 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/service.html">
2017-11-08 19:28:16 +08:00
2018-03-12 18:00:25 +08:00
<b>3.7.1.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Service
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.7.2" data-path="../concepts/ingress.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/ingress.html">
2018-03-12 18:00:25 +08:00
<b>3.7.2.</b>
2018-01-30 12:30:58 +08:00
Ingress
</a>
<ul class="articles">
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.7.2.1" data-path="../concepts/traefik-ingress-controller.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/traefik-ingress-controller.html">
2018-03-12 18:00:25 +08:00
<b>3.7.2.1.</b>
2018-01-30 12:30:58 +08:00
Traefik Ingress Controller
2017-11-08 19:28:16 +08:00
</a>
</li>
2018-03-12 18:00:25 +08:00
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="3.8" data-path="../concepts/authentication-and-permission.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/authentication-and-permission.html">
2018-03-12 18:00:25 +08:00
<b>3.8.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
身份与权限控制
</a>
2018-03-12 18:00:25 +08:00
<ul class="articles">
2018-03-12 17:48:23 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.8.1" data-path="../concepts/serviceaccount.html">
2017-11-27 19:36:05 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/serviceaccount.html">
2017-11-27 19:36:05 +08:00
2018-03-12 18:00:25 +08:00
<b>3.8.1.</b>
2017-11-27 19:36:05 +08:00
2018-01-30 12:30:58 +08:00
ServiceAccount
2017-11-27 19:36:05 +08:00
</a>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.8.2" data-path="../concepts/rbac.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/rbac.html">
2018-03-12 18:00:25 +08:00
<b>3.8.2.</b>
2018-01-30 12:30:58 +08:00
RBAC——基于角色的访问控制
</a>
2017-11-27 19:36:05 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.8.3" data-path="../concepts/network-policy.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/network-policy.html">
2018-03-12 18:00:25 +08:00
<b>3.8.3.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
NetworkPolicy
</a>
2018-03-12 18:00:25 +08:00
</li>
</ul>
</li>
2018-01-30 12:30:58 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9" data-path="../concepts/storage.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/storage.html">
2017-09-03 15:58:39 +08:00
2018-03-12 18:00:25 +08:00
<b>3.9.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
存储
2017-09-03 15:58:39 +08:00
</a>
2018-03-12 18:00:25 +08:00
<ul class="articles">
2017-09-03 15:58:39 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9.1" data-path="../concepts/secret.html">
2017-09-03 15:58:39 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/secret.html">
2017-09-03 15:58:39 +08:00
2018-03-12 18:00:25 +08:00
<b>3.9.1.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
Secret
2017-09-03 15:58:39 +08:00
</a>
2017-11-09 16:48:38 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9.2" data-path="../concepts/configmap.html">
2017-11-09 16:48:38 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/configmap.html">
2017-11-09 16:48:38 +08:00
2018-03-12 18:00:25 +08:00
<b>3.9.2.</b>
2017-11-15 21:18:59 +08:00
2018-01-30 12:30:58 +08:00
ConfigMap
</a>
<ul class="articles">
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9.2.1" data-path="../concepts/configmap-hot-update.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/configmap-hot-update.html">
2018-03-12 18:00:25 +08:00
<b>3.9.2.1.</b>
2018-01-30 12:30:58 +08:00
ConfigMap的热更新
2017-11-09 16:48:38 +08:00
</a>
2017-11-27 19:36:05 +08:00
</li>
2018-01-30 12:30:58 +08:00
</ul>
2017-11-27 19:36:05 +08:00
2018-01-30 12:30:58 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9.3" data-path="../concepts/volume.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/volume.html">
2017-11-27 19:36:05 +08:00
2018-03-12 18:00:25 +08:00
<b>3.9.3.</b>
2017-11-27 19:36:05 +08:00
2018-01-30 12:30:58 +08:00
Volume
2017-11-27 19:36:05 +08:00
</a>
2017-11-28 11:57:57 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9.4" data-path="../concepts/persistent-volume.html">
2017-11-28 11:57:57 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/persistent-volume.html">
2017-11-28 11:57:57 +08:00
2018-03-12 18:00:25 +08:00
<b>3.9.4.</b>
2017-11-28 11:57:57 +08:00
2018-01-30 12:30:58 +08:00
Persistent Volume持久化卷
2017-11-28 11:57:57 +08:00
</a>
2018-01-30 18:01:34 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.9.5" data-path="../concepts/storageclass.html">
2018-01-30 18:01:34 +08:00
<a href="../concepts/storageclass.html">
2018-03-12 18:00:25 +08:00
<b>3.9.5.</b>
2018-01-30 18:01:34 +08:00
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>
2018-03-12 18:00:25 +08:00
</li>
2018-01-30 12:30:58 +08:00
2018-03-12 18:00:25 +08:00
</ul>
</li>
<li class="chapter " data-level="3.10" data-path="../concepts/extension.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/extension.html">
2017-12-14 19:41:46 +08:00
2018-03-12 18:00:25 +08:00
<b>3.10.</b>
2017-12-14 19:41:46 +08:00
2018-03-12 17:48:23 +08:00
集群扩展
2018-01-30 12:30:58 +08:00
</a>
2018-03-12 18:00:25 +08:00
<ul class="articles">
2018-01-30 12:30:58 +08:00
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.10.1" data-path="../concepts/custom-resource.html">
2018-01-30 12:30:58 +08:00
<a href="../concepts/custom-resource.html">
2018-03-12 18:00:25 +08:00
<b>3.10.1.</b>
2018-01-30 12:30:58 +08:00
使用自定义资源扩展API
2017-12-14 19:41:46 +08:00
</a>
2018-01-10 17:30:31 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.10.2" data-path="../concepts/aggregated-api-server.html">
2018-01-10 17:30:31 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/aggregated-api-server.html">
2018-01-10 17:30:31 +08:00
2018-03-12 18:00:25 +08:00
<b>3.10.2.</b>
2018-01-10 17:30:31 +08:00
2018-01-30 12:30:58 +08:00
Aggregated API Server
2018-01-10 17:30:31 +08:00
</a>
2018-01-19 17:02:44 +08:00
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.10.3" data-path="../concepts/apiservice.html">
2018-01-19 17:02:44 +08:00
2018-01-30 12:30:58 +08:00
<a href="../concepts/apiservice.html">
2018-01-19 17:02:44 +08:00
2018-03-12 18:00:25 +08:00
<b>3.10.3.</b>
2018-01-19 17:02:44 +08:00
2018-01-30 12:30:58 +08:00
APIService
2018-01-19 17:02:44 +08:00
</a>
2018-04-22 21:36:38 +08:00
</li>
<li class="chapter " data-level="3.10.4" data-path="../concepts/service-catalog.html">
<a href="../concepts/service-catalog.html">
<b>3.10.4.</b>
Service Catalog
</a>
</li>
</ul>
</li>
2018-03-12 18:00:25 +08:00
<li class="chapter " data-level="3.11" data-path="../concepts/scheduling.html">
2018-03-12 17:48:23 +08:00
<a href="../concepts/scheduling.html">
2018-03-12 18:00:25 +08:00
<b>3.11.</b>
2018-03-12 17:48:23 +08:00
资源调度
</a>
2018-01-30 12:30:58 +08:00
</li>
2017-11-15 21:18:59 +08:00
<li class="header">用户指南</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.1" data-path="../guide/">
<a href="../guide/">
2017-12-20 17:27:16 +08:00
<b>4.1.</b>
2017-11-15 21:18:59 +08:00
用户指南
</a>
2017-11-15 21:18:59 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.2" data-path="../guide/resource-configuration.html">
<a href="../guide/resource-configuration.html">
2017-12-20 17:27:16 +08:00
<b>4.2.</b>
2017-11-15 21:18:59 +08:00
资源对象配置
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.2.1" data-path="../guide/configure-liveness-readiness-probes.html">
<a href="../guide/configure-liveness-readiness-probes.html">
2017-12-20 17:27:16 +08:00
<b>4.2.1.</b>
2017-11-15 21:18:59 +08:00
配置Pod的liveness和readiness探针
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.2.2" data-path="../guide/configure-pod-service-account.html">
<a href="../guide/configure-pod-service-account.html">
2017-12-20 17:27:16 +08:00
<b>4.2.2.</b>
2017-11-15 21:18:59 +08:00
配置Pod的Service Account
</a>
2017-09-28 21:20:49 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.2.3" data-path="../guide/secret-configuration.html">
2017-09-28 21:20:49 +08:00
<a href="../guide/secret-configuration.html">
2017-12-20 17:27:16 +08:00
<b>4.2.3.</b>
2017-11-15 21:18:59 +08:00
Secret配置
2017-09-28 21:20:49 +08:00
</a>
2017-10-10 14:51:45 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.2.4" data-path="../guide/resource-quota-management.html">
2017-10-10 14:51:45 +08:00
<a href="../guide/resource-quota-management.html">
2017-12-20 17:27:16 +08:00
<b>4.2.4.</b>
2017-11-15 21:18:59 +08:00
管理namespace中的资源配额
2017-10-10 14:51:45 +08:00
</a>
</li>
</ul>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.3" data-path="../guide/command-usage.html">
<a href="../guide/command-usage.html">
2017-12-20 17:27:16 +08:00
<b>4.3.</b>
2017-11-15 21:18:59 +08:00
命令使用
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.3.1" data-path="../guide/docker-cli-to-kubectl.html">
2017-11-03 17:48:10 +08:00
<a href="../guide/docker-cli-to-kubectl.html">
2017-12-20 17:27:16 +08:00
<b>4.3.1.</b>
2017-11-15 21:18:59 +08:00
docker用户过度到kubectl命令行指南
2017-11-03 17:48:10 +08:00
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.3.2" data-path="../guide/using-kubectl.html">
<a href="../guide/using-kubectl.html">
2017-12-20 17:27:16 +08:00
<b>4.3.2.</b>
2017-11-15 21:18:59 +08:00
kubectl命令概览
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.3.3" data-path="../guide/kubectl-cheatsheet.html">
2017-11-03 17:48:10 +08:00
<a href="../guide/kubectl-cheatsheet.html">
2017-12-20 17:27:16 +08:00
<b>4.3.3.</b>
2017-11-15 21:18:59 +08:00
kubectl命令技巧大全
</a>
2017-11-23 13:06:23 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.3.4" data-path="../guide/using-etcdctl-to-access-kubernetes-data.html">
2017-11-23 13:06:23 +08:00
<a href="../guide/using-etcdctl-to-access-kubernetes-data.html">
2017-12-20 17:27:16 +08:00
<b>4.3.4.</b>
2017-11-23 13:06:23 +08:00
2017-12-25 18:15:30 +08:00
使用etcdctl访问kubernetes数据
2017-11-23 13:06:23 +08:00
</a>
</li>
</ul>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.4" data-path="../guide/cluster-security-management.html">
<a href="../guide/cluster-security-management.html">
2017-12-20 17:27:16 +08:00
<b>4.4.</b>
2017-11-15 21:18:59 +08:00
集群安全性管理
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<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">
2017-12-20 17:27:16 +08:00
<b>4.4.1.</b>
2017-11-15 21:18:59 +08:00
管理集群中的TLS
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.4.2" data-path="../guide/kubelet-authentication-authorization.html">
<a href="../guide/kubelet-authentication-authorization.html">
2017-12-20 17:27:16 +08:00
<b>4.4.2.</b>
2017-11-15 21:18:59 +08:00
kubelet的认证授权
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.4.3" data-path="../guide/tls-bootstrapping.html">
<a href="../guide/tls-bootstrapping.html">
2017-12-20 17:27:16 +08:00
<b>4.4.3.</b>
2017-11-15 21:18:59 +08:00
TLS bootstrap
</a>
2017-08-31 14:23:44 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.4.4" data-path="../guide/kubectl-user-authentication-authorization.html">
2017-08-31 14:23:44 +08:00
<a href="../guide/kubectl-user-authentication-authorization.html">
2017-12-20 17:27:16 +08:00
<b>4.4.4.</b>
2017-11-15 21:18:59 +08:00
创建用户认证授权的kubeconfig文件
2017-08-31 14:23:44 +08:00
</a>
</li>
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="4.4.5" data-path="../guide/ip-masq-agent.html">
2017-09-07 14:13:59 +08:00
<a href="../guide/ip-masq-agent.html">
2018-01-30 12:30:58 +08:00
<b>4.4.5.</b>
2017-11-15 21:18:59 +08:00
IP伪装代理
2017-09-07 14:13:59 +08:00
</a>
</li>
2018-01-30 12:30:58 +08:00
<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">
2018-01-30 12:30:58 +08:00
<b>4.4.6.</b>
2017-11-15 21:18:59 +08:00
使用kubeconfig或token进行用户身份认证
</a>
</li>
2018-01-30 12:30:58 +08:00
<li class="chapter " data-level="4.4.7" data-path="../guide/authentication.html">
<a href="../guide/authentication.html">
2018-01-30 12:30:58 +08:00
<b>4.4.7.</b>
2017-11-15 21:18:59 +08:00
2018-01-20 16:56:42 +08:00
Kubernetes中的用户与身份认证授权
</a>
2018-05-11 21:57:37 +08:00
</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>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.5" data-path="../guide/access-kubernetes-cluster.html">
<a href="../guide/access-kubernetes-cluster.html">
2017-12-20 17:27:16 +08:00
<b>4.5.</b>
2017-11-15 21:18:59 +08:00
2017-11-21 20:10:10 +08:00
访问Kubernetes集群
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.5.1" data-path="../guide/access-cluster.html">
<a href="../guide/access-cluster.html">
2017-12-20 17:27:16 +08:00
<b>4.5.1.</b>
2017-11-15 21:18:59 +08:00
访问集群
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.5.2" data-path="../guide/authenticate-across-clusters-kubeconfig.html">
<a href="../guide/authenticate-across-clusters-kubeconfig.html">
2017-12-20 17:27:16 +08:00
<b>4.5.2.</b>
2017-11-15 21:18:59 +08:00
2017-11-21 20:10:10 +08:00
使用kubeconfig文件配置跨集群认证
</a>
</li>
2017-12-20 17:27:16 +08:00
<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">
2017-12-20 17:27:16 +08:00
<b>4.5.3.</b>
2017-11-15 21:18:59 +08:00
通过端口转发访问集群中的应用程序
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.5.4" data-path="../guide/service-access-application-cluster.html">
<a href="../guide/service-access-application-cluster.html">
2017-12-20 17:27:16 +08:00
<b>4.5.4.</b>
2017-11-15 21:18:59 +08:00
2017-11-21 20:10:10 +08:00
使用service访问群集中的应用程序
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.5.5" data-path="../guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html">
2017-11-21 20:10:10 +08:00
<a href="../guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html">
2017-12-20 17:27:16 +08:00
<b>4.5.5.</b>
2017-11-21 20:10:10 +08:00
从外部访问Kubernetes中的Pod
</a>
2017-11-22 18:43:03 +08:00
</li>
2018-01-14 21:13:12 +08:00
<li class="chapter " data-level="4.5.6" data-path="../guide/cabin-mobile-dashboard-for-kubernetes.html">
2017-11-22 18:43:03 +08:00
2018-01-14 21:13:12 +08:00
<a href="../guide/cabin-mobile-dashboard-for-kubernetes.html">
2017-11-22 18:43:03 +08:00
2017-12-20 17:27:16 +08:00
<b>4.5.6.</b>
2017-11-22 18:43:03 +08:00
2018-01-14 21:13:12 +08:00
Cabin - Kubernetes手机客户端
2017-11-22 18:43:03 +08:00
</a>
2017-11-29 15:07:48 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.5.7" data-path="../guide/kubernetes-desktop-client.html">
2017-11-29 15:07:48 +08:00
<a href="../guide/kubernetes-desktop-client.html">
2017-12-20 17:27:16 +08:00
<b>4.5.7.</b>
2017-11-29 15:07:48 +08:00
Kubernetic - Kubernetes桌面客户端
</a>
</li>
<li class="chapter " data-level="4.5.8" data-path="../guide/kubernator-kubernetes-ui.html">
<a href="../guide/kubernator-kubernetes-ui.html">
<b>4.5.8.</b>
Kubernator - 更底层的Kubernetes UI
</a>
</li>
</ul>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.6" data-path="../guide/application-development-deployment-flow.html">
<a href="../guide/application-development-deployment-flow.html">
2017-12-20 17:27:16 +08:00
<b>4.6.</b>
2017-11-15 21:18:59 +08:00
2017-12-30 10:37:40 +08:00
在Kubernetes中开发部署应用
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.6.1" data-path="../guide/deploy-applications-in-kubernetes.html">
<a href="../guide/deploy-applications-in-kubernetes.html">
2017-12-20 17:27:16 +08:00
<b>4.6.1.</b>
2017-11-15 21:18:59 +08:00
适用于kubernetes的应用开发部署流程
</a>
</li>
2017-12-20 17:27:16 +08:00
<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">
2017-12-20 17:27:16 +08:00
<b>4.6.2.</b>
2017-11-15 21:18:59 +08:00
2017-12-30 10:37:40 +08:00
迁移传统应用到Kubernetes中——以Hadoop YARN为例
</a>
2017-10-23 13:40:58 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="4.6.3" data-path="../guide/using-statefulset.html">
2017-10-23 13:40:58 +08:00
<a href="../guide/using-statefulset.html">
2017-12-20 17:27:16 +08:00
<b>4.6.3.</b>
2017-11-15 21:18:59 +08:00
使用StatefulSet部署用状态应用
2017-10-23 13:40:58 +08:00
</a>
</li>
</ul>
</li>
2017-11-15 21:18:59 +08:00
<li class="header">最佳实践</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.1" data-path="./">
<a href="./">
2017-12-20 17:27:16 +08:00
<b>5.1.</b>
2017-11-15 21:18:59 +08:00
最佳实践概览
</a>
2017-11-15 21:18:59 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2" data-path="install-kubernetes-on-centos.html">
2017-12-19 17:59:00 +08:00
<a href="install-kubernetes-on-centos.html">
2017-12-20 17:27:16 +08:00
<b>5.2.</b>
2017-11-15 21:18:59 +08:00
2017-12-30 10:37:40 +08:00
在CentOS上部署Kubernetes集群
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.1" data-path="create-tls-and-secret-key.html">
<a href="create-tls-and-secret-key.html">
2017-12-20 17:27:16 +08:00
<b>5.2.1.</b>
2017-11-15 21:18:59 +08:00
创建TLS证书和秘钥
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.2" data-path="create-kubeconfig.html">
<a href="create-kubeconfig.html">
2017-12-20 17:27:16 +08:00
<b>5.2.2.</b>
2017-11-15 21:18:59 +08:00
创建kubeconfig文件
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.3" data-path="etcd-cluster-installation.html">
<a href="etcd-cluster-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.3.</b>
2017-11-15 21:18:59 +08:00
创建高可用etcd集群
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.4" data-path="kubectl-installation.html">
<a href="kubectl-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.4.</b>
2017-11-15 21:18:59 +08:00
安装kubectl命令行工具
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.5" data-path="master-installation.html">
<a href="master-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.5.</b>
2017-11-15 21:18:59 +08:00
部署master节点
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.6" data-path="flannel-installation.html">
2017-12-19 17:59:00 +08:00
<a href="flannel-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.6.</b>
2017-11-15 21:18:59 +08:00
2017-12-19 17:59:00 +08:00
安装flannel网络插件
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.7" data-path="node-installation.html">
2017-12-19 17:59:00 +08:00
<a href="node-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.7.</b>
2017-12-19 17:59:00 +08:00
2017-11-15 21:18:59 +08:00
部署node节点
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.8" data-path="kubedns-addon-installation.html">
<a href="kubedns-addon-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.8.</b>
2017-11-15 21:18:59 +08:00
安装kubedns插件
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.9" data-path="dashboard-addon-installation.html">
<a href="dashboard-addon-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.9.</b>
2017-11-15 21:18:59 +08:00
安装dashboard插件
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.10" data-path="heapster-addon-installation.html">
<a href="heapster-addon-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.10.</b>
2017-11-15 21:18:59 +08:00
安装heapster插件
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="5.2.11" data-path="efk-addon-installation.html">
<a href="efk-addon-installation.html">
2017-12-20 17:27:16 +08:00
<b>5.2.11.</b>
2017-11-15 21:18:59 +08:00
安装EFK插件
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.3" data-path="install-kubernetes-with-kubeadm.html">
<a href="install-kubernetes-with-kubeadm.html">
2017-12-20 17:27:16 +08:00
<b>5.3.</b>
2017-11-15 21:18:59 +08:00
使用kubeadm快速构建测试集群
</a>
<ul class="articles">
<li class="chapter " data-level="5.3.1" data-path="install-kubernetes-on-ubuntu-server-16.04-with-kubeadm.html">
<a href="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="service-discovery-and-loadbalancing.html">
<a href="service-discovery-and-loadbalancing.html">
<b>5.4.</b>
2017-11-15 21:18:59 +08:00
服务发现与负载均衡
</a>
<ul class="articles">
<li class="chapter " data-level="5.4.1" data-path="traefik-ingress-installation.html">
<a href="traefik-ingress-installation.html">
<b>5.4.1.</b>
2017-11-15 21:18:59 +08:00
安装Traefik ingress
</a>
</li>
<li class="chapter " data-level="5.4.2" data-path="distributed-load-test.html">
<a href="distributed-load-test.html">
<b>5.4.2.</b>
2017-11-15 21:18:59 +08:00
分布式负载测试
</a>
</li>
<li class="chapter " data-level="5.4.3" data-path="network-and-cluster-perfermance-test.html">
<a href="network-and-cluster-perfermance-test.html">
<b>5.4.3.</b>
2017-11-15 21:18:59 +08:00
网络和集群性能测试
</a>
</li>
<li class="chapter " data-level="5.4.4" data-path="edge-node-configuration.html">
<a href="edge-node-configuration.html">
<b>5.4.4.</b>
2017-11-15 21:18:59 +08:00
边缘节点配置
</a>
2017-10-27 19:09:01 +08:00
</li>
<li class="chapter " data-level="5.4.5" data-path="nginx-ingress-installation.html">
2017-10-27 19:09:01 +08:00
<a href="nginx-ingress-installation.html">
<b>5.4.5.</b>
2017-11-15 21:18:59 +08:00
安装Nginx ingress
2017-10-27 19:09:01 +08:00
</a>
</li>
2018-04-19 10:35:52 +08:00
<li class="chapter " data-level="5.4.6" data-path="dns-installation.html">
2018-04-19 10:35:52 +08:00
<a href="dns-installation.html">
<b>5.4.6.</b>
2018-04-19 10:35:52 +08:00
安装配置DNS
</a>
<ul class="articles">
<li class="chapter " data-level="5.4.6.1" data-path="configuring-dns.html">
<a href="configuring-dns.html">
<b>5.4.6.1.</b>
安装配置Kube-dns
</a>
</li>
<li class="chapter " data-level="5.4.6.2" data-path="coredns.html">
<a href="coredns.html">
<b>5.4.6.2.</b>
安装配置CoreDNS
</a>
</li>
</ul>
</li>
2018-04-19 10:35:52 +08:00
</ul>
</li>
<li class="chapter " data-level="5.5" data-path="operation.html">
<a href="operation.html">
<b>5.5.</b>
2017-11-15 21:18:59 +08:00
运维管理
</a>
<ul class="articles">
<li class="chapter " data-level="5.5.1" data-path="master-ha.html">
2018-03-20 10:59:44 +08:00
<a href="master-ha.html">
<b>5.5.1.</b>
2017-11-15 21:18:59 +08:00
2018-03-20 10:59:44 +08:00
Master节点高可用
</a>
</li>
<li class="chapter " data-level="5.5.2" data-path="service-rolling-update.html">
2018-03-20 10:59:44 +08:00
<a href="service-rolling-update.html">
<b>5.5.2.</b>
2018-03-20 10:59:44 +08:00
2017-11-15 21:18:59 +08:00
服务滚动升级
</a>
</li>
<li class="chapter " data-level="5.5.3" data-path="app-log-collection.html">
<a href="app-log-collection.html">
<b>5.5.3.</b>
2017-11-15 21:18:59 +08:00
应用日志收集
</a>
</li>
<li class="chapter " data-level="5.5.4" data-path="configuration-best-practice.html">
<a href="configuration-best-practice.html">
<b>5.5.4.</b>
2017-11-15 21:18:59 +08:00
配置最佳实践
</a>
</li>
<li class="chapter " data-level="5.5.5" data-path="monitor.html">
<a href="monitor.html">
<b>5.5.5.</b>
2017-11-15 21:18:59 +08:00
集群及应用监控
</a>
</li>
<li class="chapter " data-level="5.5.6" data-path="data-persistence-problem.html">
<a href="data-persistence-problem.html">
<b>5.5.6.</b>
2017-11-15 21:18:59 +08:00
数据持久化问题
</a>
2017-09-03 15:58:39 +08:00
</li>
<li class="chapter " data-level="5.5.7" data-path="manage-compute-resources-container.html">
2017-09-03 15:58:39 +08:00
<a href="manage-compute-resources-container.html">
<b>5.5.7.</b>
2017-11-15 21:18:59 +08:00
管理容器的计算资源
2017-09-03 15:58:39 +08:00
</a>
2018-02-24 11:49:48 +08:00
</li>
<li class="chapter " data-level="5.5.8" data-path="federation.html">
2018-02-24 11:49:48 +08:00
<a href="federation.html">
<b>5.5.8.</b>
2018-02-24 11:49:48 +08:00
集群联邦
</a>
</li>
2017-11-09 10:55:38 +08:00
</ul>
2017-11-09 10:55:38 +08:00
</li>
<li class="chapter " data-level="5.6" data-path="storage.html">
2017-11-09 10:55:38 +08:00
<a href="storage.html">
<b>5.6.</b>
2017-11-15 21:18:59 +08:00
存储管理
2017-11-09 10:55:38 +08:00
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.1" data-path="glusterfs.html">
2017-11-09 10:55:38 +08:00
<a href="glusterfs.html">
<b>5.6.1.</b>
2017-11-15 21:18:59 +08:00
GlusterFS
2017-11-09 10:55:38 +08:00
</a>
<ul class="articles">
<li class="chapter " data-level="5.6.1.1" data-path="using-glusterfs-for-persistent-storage.html">
2017-11-09 10:55:38 +08:00
<a href="using-glusterfs-for-persistent-storage.html">
<b>5.6.1.1.</b>
2017-11-15 21:18:59 +08:00
使用GlusterFS做持久化存储
</a>
</li>
<li class="chapter " data-level="5.6.1.2" data-path="using-heketi-gluster-for-persistent-storage.html">
<a href="using-heketi-gluster-for-persistent-storage.html">
<b>5.6.1.2.</b>
2017-11-15 21:18:59 +08:00
使用Heketi作为kubernetes的持久存储GlusterFS的external provisioner
</a>
</li>
<li class="chapter active" data-level="5.6.1.3" data-path="storage-for-containers-using-glusterfs-with-openshift.html">
<a href="storage-for-containers-using-glusterfs-with-openshift.html">
<b>5.6.1.3.</b>
2017-11-15 21:18:59 +08:00
在OpenShift中使用GlusterFS做持久化存储
</a>
</li>
</ul>
</li>
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.2" data-path="glusterd-2.0.html">
2018-05-23 19:52:24 +08:00
<a href="glusterd-2.0.html">
<b>5.6.2.</b>
2017-11-15 21:18:59 +08:00
2018-05-23 19:52:24 +08:00
GlusterD-2.0
</a>
</li>
<li class="chapter " data-level="5.6.3" data-path="ceph.html">
<a href="ceph.html">
<b>5.6.3.</b>
Ceph
</a>
<ul class="articles">
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.3.1" data-path="ceph-helm-install-guide-zh.html">
2018-04-18 23:46:26 +08:00
<a href="ceph-helm-install-guide-zh.html">
2018-05-23 19:52:24 +08:00
<b>5.6.3.1.</b>
2017-11-15 21:18:59 +08:00
2018-04-18 23:46:26 +08:00
用Helm托管安装Ceph集群并提供后端存储
</a>
</li>
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.3.2" data-path="using-ceph-for-persistent-storage.html">
2018-04-18 23:46:26 +08:00
<a href="using-ceph-for-persistent-storage.html">
2018-05-23 19:52:24 +08:00
<b>5.6.3.2.</b>
2018-04-18 23:46:26 +08:00
2017-11-15 21:18:59 +08:00
使用Ceph做持久化存储
2017-11-09 10:55:38 +08:00
</a>
2018-01-05 16:34:39 +08:00
</li>
</ul>
</li>
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.4" data-path="openebs.html">
2018-01-05 16:34:39 +08:00
<a href="openebs.html">
2018-05-23 19:52:24 +08:00
<b>5.6.4.</b>
2018-01-05 16:34:39 +08:00
OpenEBS
</a>
<ul class="articles">
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.4.1" data-path="using-openebs-for-persistent-storage.html">
2018-01-05 16:34:39 +08:00
<a href="using-openebs-for-persistent-storage.html">
2018-05-23 19:52:24 +08:00
<b>5.6.4.1.</b>
2018-01-05 16:34:39 +08:00
使用OpenEBS做持久化存储
</a>
2017-11-09 10:55:38 +08:00
</li>
</ul>
2018-02-24 22:56:37 +08:00
</li>
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.5" data-path="rook.html">
2018-02-24 22:56:37 +08:00
<a href="rook.html">
2018-05-23 19:52:24 +08:00
<b>5.6.5.</b>
2018-02-24 22:56:37 +08:00
Rook
</a>
2018-04-13 23:45:08 +08:00
</li>
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.6" data-path="nfs.html">
2018-04-13 23:45:08 +08:00
<a href="nfs.html">
2018-05-23 19:52:24 +08:00
<b>5.6.6.</b>
2018-04-13 23:45:08 +08:00
NFS
</a>
<ul class="articles">
2018-05-23 19:52:24 +08:00
<li class="chapter " data-level="5.6.6.1" data-path="using-nfs-for-persistent-storage.html">
2018-04-13 23:45:08 +08:00
<a href="using-nfs-for-persistent-storage.html">
2018-05-23 19:52:24 +08:00
<b>5.6.6.1.</b>
2018-04-13 23:45:08 +08:00
利用NFS动态提供Kubernetes后端存储卷
</a>
</li>
</ul>
2017-11-09 10:55:38 +08:00
</li>
</ul>
</li>
<li class="chapter " data-level="5.7" data-path="monitoring.html">
2017-11-09 10:55:38 +08:00
<a href="monitoring.html">
<b>5.7.</b>
2017-11-15 21:18:59 +08:00
集群与应用监控
</a>
<ul class="articles">
<li class="chapter " data-level="5.7.1" data-path="heapster.html">
2017-11-09 10:55:38 +08:00
<a href="heapster.html">
<b>5.7.1.</b>
2017-11-15 21:18:59 +08:00
Heapster
</a>
2017-11-09 10:55:38 +08:00
<ul class="articles">
<li class="chapter " data-level="5.7.1.1" data-path="using-heapster-to-get-object-metrics.html">
2017-11-09 10:55:38 +08:00
<a href="using-heapster-to-get-object-metrics.html">
<b>5.7.1.1.</b>
2017-11-15 21:18:59 +08:00
使用Heapster获取集群和对象的metric数据
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.7.2" data-path="prometheus.html">
2017-11-09 10:55:38 +08:00
<a href="prometheus.html">
<b>5.7.2.</b>
2017-11-15 21:18:59 +08:00
Prometheus
</a>
<ul class="articles">
<li class="chapter " data-level="5.7.2.1" data-path="using-prometheus-to-monitor-kuberentes-cluster.html">
2017-11-09 10:55:38 +08:00
<a href="using-prometheus-to-monitor-kuberentes-cluster.html">
<b>5.7.2.1.</b>
2017-11-15 21:18:59 +08:00
使用Prometheus监控kubernetes集群
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.7.3" data-path="vistio-visualize-your-istio-mesh.html">
<a href="vistio-visualize-your-istio-mesh.html">
<b>5.7.3.</b>
使用Vistio监控Istio服务网格中的流量
</a>
</li>
</ul>
2017-10-19 15:31:08 +08:00
</li>
<li class="chapter " data-level="5.8" data-path="services-management-tool.html">
2017-10-19 15:31:08 +08:00
<a href="services-management-tool.html">
<b>5.8.</b>
2017-11-15 21:18:59 +08:00
服务编排管理
2017-10-19 15:31:08 +08:00
</a>
2017-10-20 16:22:43 +08:00
<ul class="articles">
<li class="chapter " data-level="5.8.1" data-path="helm.html">
2017-10-20 16:22:43 +08:00
<a href="helm.html">
<b>5.8.1.</b>
2017-11-15 21:18:59 +08:00
使用Helm管理kubernetes应用
2017-10-20 16:22:43 +08:00
</a>
2017-10-27 11:59:37 +08:00
</li>
<li class="chapter " data-level="5.8.2" data-path="create-private-charts-repo.html">
2017-10-27 11:59:37 +08:00
<a href="create-private-charts-repo.html">
<b>5.8.2.</b>
2017-11-15 21:18:59 +08:00
构建私有Chart仓库
2017-10-27 11:59:37 +08:00
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.9" data-path="ci-cd.html">
2017-10-27 11:59:37 +08:00
<a href="ci-cd.html">
<b>5.9.</b>
2017-11-15 21:18:59 +08:00
持续集成与发布
2017-10-27 11:59:37 +08:00
</a>
<ul class="articles">
<li class="chapter " data-level="5.9.1" data-path="jenkins-ci-cd.html">
2017-10-27 11:59:37 +08:00
<a href="jenkins-ci-cd.html">
<b>5.9.1.</b>
2017-11-15 21:18:59 +08:00
使用Jenkins进行持续集成与发布
2017-10-27 11:59:37 +08:00
</a>
</li>
<li class="chapter " data-level="5.9.2" data-path="drone-ci-cd.html">
2017-10-27 11:59:37 +08:00
<a href="drone-ci-cd.html">
<b>5.9.2.</b>
2017-11-15 21:18:59 +08:00
使用Drone进行持续集成与发布
2017-10-27 11:59:37 +08:00
</a>
2017-11-02 16:33:01 +08:00
</li>
</ul>
</li>
<li class="chapter " data-level="5.10" data-path="update-and-upgrade.html">
2017-11-02 16:33:01 +08:00
<a href="update-and-upgrade.html">
<b>5.10.</b>
2017-11-15 21:18:59 +08:00
更新与升级
2017-11-02 16:33:01 +08:00
</a>
<ul class="articles">
<li class="chapter " data-level="5.10.1" data-path="manually-upgrade.html">
2017-11-02 16:33:01 +08:00
<a href="manually-upgrade.html">
<b>5.10.1.</b>
2017-11-15 21:18:59 +08:00
2017-12-30 10:37:40 +08:00
手动升级Kubernetes集群
2017-11-02 16:33:01 +08:00
</a>
</li>
<li class="chapter " data-level="5.10.2" data-path="dashboard-upgrade.html">
2017-11-02 16:33:01 +08:00
<a href="dashboard-upgrade.html">
<b>5.10.2.</b>
2017-11-15 21:18:59 +08:00
升级dashboard
2017-11-02 16:33:01 +08:00
</a>
2017-10-20 16:22:43 +08:00
</li>
</ul>
</li>
2017-11-15 21:18:59 +08:00
<li class="header">领域应用</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.1" data-path="../usecases/">
<a href="../usecases/">
2017-12-20 17:27:16 +08:00
<b>6.1.</b>
2017-11-15 21:18:59 +08:00
领域应用概览
</a>
2017-11-15 21:18:59 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.2" data-path="../usecases/microservices.html">
<a href="../usecases/microservices.html">
2017-12-20 17:27:16 +08:00
<b>6.2.</b>
2017-11-15 21:18:59 +08:00
微服务架构
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.2.1" data-path="../usecases/service-discovery-in-microservices.html">
2017-09-20 21:55:19 +08:00
<a href="../usecases/service-discovery-in-microservices.html">
2017-12-20 17:27:16 +08:00
<b>6.2.1.</b>
2017-11-15 21:18:59 +08:00
微服务中的服务发现
2017-09-20 21:55:19 +08:00
</a>
2018-03-13 17:43:40 +08:00
</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>
2017-09-20 21:55:19 +08:00
</li>
</ul>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3" data-path="../usecases/service-mesh.html">
2017-09-20 21:55:19 +08:00
<a href="../usecases/service-mesh.html">
2017-12-20 17:27:16 +08:00
<b>6.3.</b>
2017-11-15 21:18:59 +08:00
Service Mesh 服务网格
2017-09-20 21:55:19 +08:00
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.1" data-path="../usecases/istio.html">
<a href="../usecases/istio.html">
2017-12-20 17:27:16 +08:00
<b>6.3.1.</b>
2017-11-15 21:18:59 +08:00
Istio
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.1.1" data-path="../usecases/istio-installation.html">
<a href="../usecases/istio-installation.html">
2017-12-20 17:27:16 +08:00
<b>6.3.1.1.</b>
2017-11-15 21:18:59 +08:00
安装并试用Istio service mesh
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.1.2" data-path="../usecases/configuring-request-routing.html">
<a href="../usecases/configuring-request-routing.html">
2017-12-20 17:27:16 +08:00
<b>6.3.1.2.</b>
2017-11-15 21:18:59 +08:00
配置请求的路由规则
</a>
2017-11-07 23:57:26 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.1.3" data-path="../usecases/install-and-expand-istio-mesh.html">
2017-11-07 23:57:26 +08:00
<a href="../usecases/install-and-expand-istio-mesh.html">
2017-12-20 17:27:16 +08:00
<b>6.3.1.3.</b>
2017-11-15 21:18:59 +08:00
安装和拓展Istio service mesh
2017-11-07 23:57:26 +08:00
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.1.4" data-path="../usecases/integrating-vms.html">
2017-11-07 23:57:26 +08:00
<a href="../usecases/integrating-vms.html">
2017-12-20 17:27:16 +08:00
<b>6.3.1.4.</b>
2017-11-15 21:18:59 +08:00
集成虚拟机
2017-11-07 23:57:26 +08:00
</a>
</li>
<li class="chapter " data-level="6.3.1.5" data-path="../usecases/sidecar-spec-in-istio.html">
<a href="../usecases/sidecar-spec-in-istio.html">
<b>6.3.1.5.</b>
Istio中sidecar的注入规范及示例
</a>
2018-04-16 21:16:23 +08:00
</li>
<li class="chapter " data-level="6.3.1.6" data-path="../usecases/istio-community-tips.html">
<a href="../usecases/istio-community-tips.html">
<b>6.3.1.6.</b>
如何参与Istio社区及注意事项
</a>
2018-04-18 23:26:03 +08:00
</li>
<li class="chapter " data-level="6.3.1.7" data-path="../usecases/istio-tutorial.html">
<a href="../usecases/istio-tutorial.html">
<b>6.3.1.7.</b>
Istio 教程
</a>
</li>
</ul>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.2" data-path="../usecases/linkerd.html">
<a href="../usecases/linkerd.html">
2017-12-20 17:27:16 +08:00
<b>6.3.2.</b>
2017-11-15 21:18:59 +08:00
Linkerd
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.2.1" data-path="../usecases/linkerd-user-guide.html">
<a href="../usecases/linkerd-user-guide.html">
2017-12-20 17:27:16 +08:00
<b>6.3.2.1.</b>
2017-11-15 21:18:59 +08:00
Linkerd 使用指南
</a>
</li>
</ul>
2017-12-10 21:51:18 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.3" data-path="../usecases/conduit.html">
2017-12-10 21:51:18 +08:00
<a href="../usecases/conduit.html">
2017-12-20 17:27:16 +08:00
<b>6.3.3.</b>
2017-12-10 21:51:18 +08:00
Conduit
</a>
2017-12-11 14:21:24 +08:00
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.3.1" data-path="../usecases/conduit-overview.html">
2017-12-11 14:21:24 +08:00
<a href="../usecases/conduit-overview.html">
2017-12-20 17:27:16 +08:00
<b>6.3.3.1.</b>
2017-12-11 14:21:24 +08:00
Condiut概览
</a>
2017-12-12 23:30:36 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.3.3.2" data-path="../usecases/conduit-installation.html">
2017-12-12 23:30:36 +08:00
<a href="../usecases/conduit-installation.html">
2017-12-20 17:27:16 +08:00
<b>6.3.3.2.</b>
2017-12-12 23:30:36 +08:00
安装Conduit
</a>
2018-04-20 16:41:57 +08:00
</li>
</ul>
</li>
<li class="chapter " data-level="6.3.4" data-path="../usecases/envoy.html">
<a href="../usecases/envoy.html">
<b>6.3.4.</b>
Envoy
</a>
<ul class="articles">
2018-04-24 14:58:38 +08:00
<li class="chapter " data-level="6.3.4.1" data-path="../usecases/envoy-terminology.html">
2018-04-20 16:41:57 +08:00
2018-04-24 14:58:38 +08:00
<a href="../usecases/envoy-terminology.html">
2018-04-20 16:41:57 +08:00
<b>6.3.4.1.</b>
2018-04-27 15:12:43 +08:00
Envoy的架构与基本术语
2018-04-24 14:58:38 +08:00
</a>
</li>
<li class="chapter " data-level="6.3.4.2" data-path="../usecases/envoy-front-proxy.html">
<a href="../usecases/envoy-front-proxy.html">
<b>6.3.4.2.</b>
2018-04-20 16:41:57 +08:00
Envoy作为前端代理
</a>
2018-04-28 20:29:48 +08:00
</li>
<li class="chapter " data-level="6.3.4.3" data-path="../usecases/envoy-mesh-in-kubernetes-tutorial.html">
<a href="../usecases/envoy-mesh-in-kubernetes-tutorial.html">
<b>6.3.4.3.</b>
Envoy mesh教程
</a>
2017-12-11 14:21:24 +08:00
</li>
</ul>
</li>
</ul>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.4" data-path="../usecases/big-data.html">
<a href="../usecases/big-data.html">
2017-12-20 17:27:16 +08:00
<b>6.4.</b>
2017-11-15 21:18:59 +08:00
大数据
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.4.1" data-path="../usecases/spark-standalone-on-kubernetes.html">
2017-08-30 14:20:52 +08:00
<a href="../usecases/spark-standalone-on-kubernetes.html">
2017-12-20 17:27:16 +08:00
<b>6.4.1.</b>
2017-11-15 21:18:59 +08:00
Spark standalone on Kubernetes
</a>
2017-08-31 14:23:44 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.4.2" data-path="../usecases/running-spark-with-kubernetes-native-scheduler.html">
2017-08-31 14:23:44 +08:00
2017-09-14 15:57:50 +08:00
<a href="../usecases/running-spark-with-kubernetes-native-scheduler.html">
2017-08-31 14:23:44 +08:00
2017-12-20 17:27:16 +08:00
<b>6.4.2.</b>
2017-11-15 21:18:59 +08:00
2017-12-30 10:37:40 +08:00
运行支持Kubernetes原生调度的Spark程序
2017-08-31 14:23:44 +08:00
</a>
</li>
</ul>
2017-08-30 16:52:33 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.5" data-path="../usecases/serverless.html">
2017-08-30 16:52:33 +08:00
<a href="../usecases/serverless.html">
2017-12-20 17:27:16 +08:00
<b>6.5.</b>
2017-11-15 21:18:59 +08:00
Serverless架构
2017-08-30 16:52:33 +08:00
</a>
2017-11-23 11:03:04 +08:00
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.5.1" data-path="../usecases/understanding-serverless.html">
2017-11-23 11:03:04 +08:00
<a href="../usecases/understanding-serverless.html">
2017-12-20 17:27:16 +08:00
<b>6.5.1.</b>
2017-11-23 11:03:04 +08:00
理解Serverless
</a>
2017-12-19 22:39:23 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.5.2" data-path="../usecases/faas.html">
2017-12-19 22:39:23 +08:00
<a href="../usecases/faas.html">
2017-12-20 17:27:16 +08:00
<b>6.5.2.</b>
2017-12-19 22:39:23 +08:00
FaaS-函数即服务
</a>
<ul class="articles">
2017-12-26 21:24:28 +08:00
<li class="chapter " data-level="6.5.2.1" data-path="../usecases/openfaas-quick-start.html">
2017-12-19 22:39:23 +08:00
2017-12-26 21:24:28 +08:00
<a href="../usecases/openfaas-quick-start.html">
2017-12-19 22:39:23 +08:00
2017-12-20 17:27:16 +08:00
<b>6.5.2.1.</b>
2017-12-19 22:39:23 +08:00
2017-12-26 21:24:28 +08:00
OpenFaaS快速入门指南
2017-12-19 22:39:23 +08:00
</a>
</li>
</ul>
2017-11-23 11:03:04 +08:00
</li>
</ul>
2017-10-27 19:09:01 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="6.6" data-path="../usecases/edge-computing.html">
2017-10-27 19:09:01 +08:00
<a href="../usecases/edge-computing.html">
2017-12-20 17:27:16 +08:00
<b>6.6.</b>
2017-11-15 21:18:59 +08:00
边缘计算
2017-10-27 19:09:01 +08:00
</a>
2018-04-16 21:16:23 +08:00
</li>
<li class="chapter " data-level="6.7" data-path="../usecases/ai.html">
<a href="../usecases/ai.html">
<b>6.7.</b>
人工智能
</a>
</li>
2017-11-15 21:18:59 +08:00
<li class="header">开发指南</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="7.1" data-path="../develop/">
<a href="../develop/">
2017-12-20 17:27:16 +08:00
<b>7.1.</b>
2017-11-15 21:18:59 +08:00
开发指南概览
</a>
2017-11-15 21:18:59 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="7.2" data-path="../develop/sigs-and-working-group.html">
2017-12-03 13:13:09 +08:00
<a href="../develop/sigs-and-working-group.html">
2017-12-20 17:27:16 +08:00
<b>7.2.</b>
2017-11-15 21:18:59 +08:00
2017-12-03 13:13:09 +08:00
SIG和工作组
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="7.3" data-path="../develop/developing-environment.html">
2017-12-03 13:13:09 +08:00
<a href="../develop/developing-environment.html">
2017-12-20 17:27:16 +08:00
<b>7.3.</b>
2017-12-03 13:13:09 +08:00
2017-11-15 21:18:59 +08:00
开发环境搭建
</a>
</li>
<li class="chapter " data-level="7.4" data-path="../develop/using-vagrant-and-virtualbox-for-development.html">
<a href="../develop/using-vagrant-and-virtualbox-for-development.html">
2017-12-20 17:27:16 +08:00
<b>7.4.</b>
2017-11-15 21:18:59 +08:00
本地分布式开发环境搭建使用Vagrant和Virtualbox
</a>
</li>
<li class="chapter " data-level="7.5" data-path="../develop/testing.html">
<a href="../develop/testing.html">
<b>7.5.</b>
2017-11-15 21:18:59 +08:00
单元测试和集成测试
</a>
</li>
<li class="chapter " data-level="7.6" data-path="../develop/client-go-sample.html">
<a href="../develop/client-go-sample.html">
<b>7.6.</b>
2017-11-15 21:18:59 +08:00
client-go示例
</a>
</li>
<li class="chapter " data-level="7.7" data-path="../develop/operator.html">
2018-01-09 19:14:30 +08:00
<a href="../develop/operator.html">
<b>7.7.</b>
2017-11-15 21:18:59 +08:00
2018-01-09 19:14:30 +08:00
Operator
</a>
</li>
2018-05-04 19:53:39 +08:00
<li class="chapter " data-level="7.8" data-path="../develop/operator-sdk.html">
2018-01-09 19:14:30 +08:00
2018-05-04 19:53:39 +08:00
<a href="../develop/operator-sdk.html">
2018-01-09 19:14:30 +08:00
<b>7.8.</b>
2018-01-09 19:14:30 +08:00
2018-05-04 19:53:39 +08:00
operator-sdk
</a>
</li>
<li class="chapter " data-level="7.9" data-path="../develop/advance-developer.html">
<a href="../develop/advance-developer.html">
<b>7.9.</b>
2018-02-11 10:00:15 +08:00
高级开发指南
</a>
</li>
2018-05-04 19:53:39 +08:00
<li class="chapter " data-level="7.10" data-path="../develop/contribute.html">
2018-02-11 10:00:15 +08:00
<a href="../develop/contribute.html">
2018-05-04 19:53:39 +08:00
<b>7.10.</b>
2018-02-11 10:00:15 +08:00
2017-11-15 21:18:59 +08:00
社区贡献
</a>
2017-10-23 19:09:41 +08:00
</li>
2018-05-04 19:53:39 +08:00
<li class="chapter " data-level="7.11" data-path="../develop/minikube.html">
2017-10-23 19:09:41 +08:00
<a href="../develop/minikube.html">
2018-05-04 19:53:39 +08:00
<b>7.11.</b>
2017-11-15 21:18:59 +08:00
Minikube
2017-10-23 19:09:41 +08:00
</a>
</li>
2017-11-15 21:18:59 +08:00
<li class="header">附录</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.1" data-path="../appendix/">
<a href="../appendix/">
2017-12-20 17:27:16 +08:00
<b>8.1.</b>
2017-11-15 21:18:59 +08:00
附录说明
</a>
2017-11-15 21:18:59 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.2" data-path="../appendix/debug-kubernetes-services.html">
2017-11-15 21:18:59 +08:00
<a href="../appendix/debug-kubernetes-services.html">
2017-12-20 17:27:16 +08:00
<b>8.2.</b>
2017-11-15 21:18:59 +08:00
Kubernetes中的应用故障排查
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.3" data-path="../appendix/material-share.html">
2017-11-15 21:18:59 +08:00
<a href="../appendix/material-share.html">
2017-12-20 17:27:16 +08:00
<b>8.3.</b>
2017-11-15 21:18:59 +08:00
Kubernetes相关资讯和情报链接
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.4" data-path="../appendix/docker-best-practice.html">
2017-11-15 21:18:59 +08:00
<a href="../appendix/docker-best-practice.html">
2017-12-20 17:27:16 +08:00
<b>8.4.</b>
2017-11-15 21:18:59 +08:00
Docker最佳实践
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.5" data-path="../appendix/tricks.html">
2017-11-15 21:18:59 +08:00
<a href="../appendix/tricks.html">
2017-12-20 17:27:16 +08:00
<b>8.5.</b>
2017-11-15 21:18:59 +08:00
使用技巧
</a>
2017-10-18 14:16:55 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.6" data-path="../appendix/issues.html">
2017-10-18 14:16:55 +08:00
2017-11-15 21:18:59 +08:00
<a href="../appendix/issues.html">
2017-10-18 14:16:55 +08:00
2017-12-20 17:27:16 +08:00
<b>8.6.</b>
2017-11-15 21:18:59 +08:00
问题记录
2017-10-18 14:16:55 +08:00
</a>
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.7" data-path="../appendix/kubernetes-changelog.html">
2017-12-11 18:32:18 +08:00
<a href="../appendix/kubernetes-changelog.html">
2017-12-20 17:27:16 +08:00
<b>8.7.</b>
2017-12-11 18:32:18 +08:00
2017-12-30 10:37:40 +08:00
Kubernetes版本更新日志
2017-12-11 18:32:18 +08:00
</a>
<ul class="articles">
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.7.1" data-path="../appendix/kubernetes-1.7-changelog.html">
2017-12-11 18:32:18 +08:00
<a href="../appendix/kubernetes-1.7-changelog.html">
2017-12-20 17:27:16 +08:00
<b>8.7.1.</b>
2017-12-11 18:32:18 +08:00
Kubernetes1.7更新日志
</a>
2017-12-12 13:52:55 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.7.2" data-path="../appendix/kubernetes-1.8-changelog.html">
2017-12-12 13:52:55 +08:00
<a href="../appendix/kubernetes-1.8-changelog.html">
2017-12-20 17:27:16 +08:00
<b>8.7.2.</b>
2017-12-12 13:52:55 +08:00
Kubernetes1.8更新日志
</a>
2017-12-16 10:50:25 +08:00
</li>
2017-12-20 17:27:16 +08:00
<li class="chapter " data-level="8.7.3" data-path="../appendix/kubernetes-1.9-changelog.html">
2017-12-16 10:50:25 +08:00
<a href="../appendix/kubernetes-1.9-changelog.html">
2017-12-20 17:27:16 +08:00
<b>8.7.3.</b>
2017-12-16 10:50:25 +08:00
Kubernetes1.9更新日志
</a>
2018-03-27 10:29:19 +08:00
</li>
<li class="chapter " data-level="8.7.4" data-path="../appendix/kubernetes-1.10-changelog.html">
<a href="../appendix/kubernetes-1.10-changelog.html">
<b>8.7.4.</b>
Kubernetes1.10更新日志
</a>
2018-07-02 23:19:37 +08:00
</li>
<li class="chapter " data-level="8.7.5" data-path="../appendix/kubernetes-1.11-changelog.html">
<a href="../appendix/kubernetes-1.11-changelog.html">
<b>8.7.5.</b>
Kubernetes1.11更新日志
</a>
2017-12-11 18:32:18 +08:00
</li>
</ul>
</li>
<li class="chapter " data-level="8.8" data-path="../appendix/summary-and-outlook.html">
<a href="../appendix/summary-and-outlook.html">
<b>8.8.</b>
Kubernetes及云原生年度总结及展望
</a>
<ul class="articles">
<li class="chapter " data-level="8.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>8.8.1.</b>
Kubernetes与云原生2017年年终总结及2018年展望
</a>
</li>
</ul>
</li>
2018-05-09 23:48:41 +08:00
<li class="chapter " data-level="8.9" data-path="../appendix/about-kcsp.html">
<a href="../appendix/about-kcsp.html">
<b>8.9.</b>
Kubernetes认证服务提供商KCSP说明
</a>
</li>
<li class="chapter " data-level="8.10" data-path="../appendix/about-cka-candidate.html">
<a href="../appendix/about-cka-candidate.html">
<b>8.10.</b>
认证Kubernetes管理员CKA说明
</a>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
2017-09-19 22:01:07 +08:00
本书使用 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>
2017-11-15 21:18:59 +08:00
<a href=".." >在OpenShift中使用GlusterFS做持久化存储</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">
2017-10-19 18:37:05 +08:00
<h1 id="&#x5728;openshift&#x4E2D;&#x4F7F;&#x7528;glusterfs&#x505A;&#x6301;&#x4E45;&#x5316;&#x5B58;&#x50A8;">&#x5728;OpenShift&#x4E2D;&#x4F7F;&#x7528;GlusterFS&#x505A;&#x6301;&#x4E45;&#x5316;&#x5B58;&#x50A8;</h1>
<h3 id="&#x6982;&#x8FF0;">&#x6982;&#x8FF0;</h3>
<p>&#x672C;&#x6587;&#x7531;Daniel Messer&#xFF08;Technical Marketing Manager Storage @RedHat&#xFF09;&#x548C;Keith Tenzer&#xFF08;Solutions Architect @RedHat&#xFF09;&#x5171;&#x540C;&#x64B0;&#x5199;&#x3002;</p>
<ul>
<li><a href="https://keithtenzer.com/2017/03/07/storage-for-containers-overview-part-i/" target="_blank">Storage for Containers Overview &#x2013; Part I</a></li>
<li><a href="https://keithtenzer.com/2017/03/24/storage-for-containers-using-gluster-part-ii/" target="_blank">Storage for Containers using Gluster &#x2013; Part II</a></li>
<li><a href="https://keithtenzer.com/2017/03/29/storage-for-containers-using-container-native-storage-part-iii/" target="_blank">Storage for Containers using Container Native Storage &#x2013; Part III</a></li>
<li><a href="https://keithtenzer.com/2017/04/07/storage-for-containers-using-ceph-rbd-part-iv/" target="_blank">Storage for Containers using Ceph &#x2013; Part IV</a></li>
<li><a href="https://keithtenzer.com/2017/04/05/storage-for-containers-using-netapp-ontap-nas-part-v/" target="_blank">Storage for Containers using NetApp ONTAP NAS &#x2013; Part V</a></li>
<li><a href="https://keithtenzer.com/2017/04/05/storage-for-containers-using-netapp-solidfire-part-vi/" target="_blank">Storage for Containers using NetApp SolidFire &#x2013; Part VI</a></li>
</ul>
<h3 id="gluster&#x4F5C;&#x4E3A;container-ready-storagecrs">Gluster&#x4F5C;&#x4E3A;Container-Ready Storage(CRS)</h3>
<p>&#x5728;&#x672C;&#x6587;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4ECB;&#x7ECD;&#x5BB9;&#x5668;&#x5B58;&#x50A8;&#x7684;&#x9996;&#x9009;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x90E8;&#x7F72;&#x5B83;&#x3002; Kusternet&#x548C;OpenShift&#x652F;&#x6301;GlusterFS&#x5DF2;&#x7ECF;&#x6709;&#x4E00;&#x6BB5;&#x65F6;&#x95F4;&#x4E86;&#x3002; GlusterFS&#x7684;&#x9002;&#x7528;&#x6027;&#x5F88;&#x597D;&#xFF0C;&#x53EF;&#x7528;&#x4E8E;&#x6240;&#x6709;&#x7684;&#x90E8;&#x7F72;&#x573A;&#x666F;&#xFF1A;&#x88F8;&#x673A;&#x3001;&#x865A;&#x62DF;&#x673A;&#x3001;&#x5185;&#x90E8;&#x90E8;&#x7F72;&#x548C;&#x516C;&#x5171;&#x4E91;&#x3002; &#x5728;&#x5BB9;&#x5668;&#x4E2D;&#x8FD0;&#x884C;GlusterFS&#x7684;&#x65B0;&#x7279;&#x6027;&#x5C06;&#x5728;&#x672C;&#x7CFB;&#x5217;&#x540E;&#x9762;&#x8BA8;&#x8BBA;&#x3002;</p>
<p>GlusterFS&#x662F;&#x4E00;&#x4E2A;&#x5206;&#x5E03;&#x5F0F;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#xFF0C;&#x5185;&#x7F6E;&#x4E86;&#x539F;&#x751F;&#x534F;&#x8BAE;&#xFF08;GlusterFS&#xFF09;&#x548C;&#x5404;&#x79CD;&#x5176;&#x4ED6;&#x534F;&#x8BAE;&#xFF08;NFS&#xFF0C;SMB&#xFF0C;...&#xFF09;&#x3002; &#x4E3A;&#x4E86;&#x4E0E;OpenShift&#x96C6;&#x6210;&#xFF0C;&#x8282;&#x70B9;&#x5C06;&#x901A;&#x8FC7;FUSE&#x4F7F;&#x7528;&#x539F;&#x751F;&#x534F;&#x8BAE;&#xFF0C;&#x5C06;GlusterFS&#x5377;&#x6302;&#x5728;&#x5230;&#x8282;&#x70B9;&#x672C;&#x8EAB;&#x4E0A;&#xFF0C;&#x7136;&#x540E;&#x5C06;&#x5B83;&#x4EEC;&#x7ED1;&#x5B9A;&#x5230;&#x76EE;&#x6807;&#x5BB9;&#x5668;&#x4E2D;&#x3002; OpenShift / Kubernetes&#x5177;&#x6709;&#x5B9E;&#x73B0;&#x8BF7;&#x6C42;&#x3001;&#x91CA;&#x653E;&#x548C;&#x6302;&#x8F7D;&#x3001;&#x5378;&#x8F7D;GlusterFS&#x5377;&#x7684;&#x539F;&#x751F;&#x7A0B;&#x5E8F;&#x3002;</p>
<h3 id="crs&#x6982;&#x8FF0;">CRS&#x6982;&#x8FF0;</h3>
<p>&#x5728;&#x5B58;&#x50A8;&#x65B9;&#x9762;&#xFF0C;&#x6839;&#x636E;OpenShift / Kubernetes&#x7684;&#x8981;&#x6C42;&#xFF0C;&#x8FD8;&#x6709;&#x4E00;&#x4E2A;&#x989D;&#x5916;&#x7684;&#x7EC4;&#x4EF6;&#x7BA1;&#x7406;&#x96C6;&#x7FA4;&#xFF0C;&#x79F0;&#x4E3A;&#x201C;heketi&#x201D;&#x3002; &#x8FD9;&#x5B9E;&#x9645;&#x4E0A;&#x662F;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;GlusterFS&#x7684;REST API&#xFF0C;&#x5B83;&#x8FD8;&#x63D0;&#x4F9B;CLI&#x7248;&#x672C;&#x3002; &#x5728;&#x4EE5;&#x4E0B;&#x6B65;&#x9AA4;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5728;3&#x4E2A;GlusterFS&#x8282;&#x70B9;&#x4E2D;&#x90E8;&#x7F72;heketi&#xFF0C;&#x4F7F;&#x7528;&#x5B83;&#x6765;&#x90E8;&#x7F72;GlusterFS&#x5B58;&#x50A8;&#x6C60;&#xFF0C;&#x5C06;&#x5176;&#x8FDE;&#x63A5;&#x5230;OpenShift&#xFF0C;&#x5E76;&#x4F7F;&#x7528;&#x5B83;&#x6765;&#x901A;&#x8FC7;PersistentVolumeClaims&#x4E3A;&#x5BB9;&#x5668;&#x914D;&#x7F6E;&#x5B58;&#x50A8;&#x3002; &#x6211;&#x4EEC;&#x5C06;&#x603B;&#x5171;&#x90E8;&#x7F72;4&#x53F0;&#x865A;&#x62DF;&#x673A;&#x3002; &#x4E00;&#x4E2A;&#x7528;&#x4E8E;OpenShift&#xFF08;&#x5B9E;&#x9A8C;&#x5BA4;&#x8BBE;&#x7F6E;&#xFF09;&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;GlusterFS&#x3002;</p>
<p>&#x6CE8;&#x610F;&#xFF1A;&#x60A8;&#x7684;&#x7CFB;&#x7EDF;&#x5E94;&#x81F3;&#x5C11;&#x9700;&#x8981;&#x6709;&#x56DB;&#x6838;CPU&#xFF0C;16GB RAM&#x548C;20 GB&#x53EF;&#x7528;&#x78C1;&#x76D8;&#x7A7A;&#x95F4;&#x3002;</p>
<h3 id="&#x90E8;&#x7F72;openshift">&#x90E8;&#x7F72;OpenShift</h3>
<p>&#x9996;&#x5148;&#x4F60;&#x9700;&#x8981;&#x5148;&#x90E8;&#x7F72;OpenShift&#x3002;&#x6700;&#x6709;&#x6548;&#x7387;&#x7684;&#x65B9;&#x5F0F;&#x662F;&#x76F4;&#x63A5;&#x5728;&#x865A;&#x62DF;&#x673A;&#x4E2D;&#x90E8;&#x7F72;&#x4E00;&#x4E2A;All-in-One&#x73AF;&#x5883;&#xFF0C;&#x90E8;&#x7F72;&#x6307;&#x5357;&#x89C1; <a href="https://keithtenzer.com/2017/03/13/openshift-enterprise-3-4-all-in-one-lab-environment/" target="_blank">the &#x201C;OpenShift Enterprise 3.4 all-in-one Lab Environment&#x201D; article.</a>&#x3002;</p>
<p>&#x786E;&#x4FDD;&#x4F60;&#x7684;OpenShift&#x865A;&#x62DF;&#x673A;&#x53EF;&#x4EE5;&#x89E3;&#x6790;&#x5916;&#x90E8;&#x57DF;&#x540D;&#x3002;&#x7F16;&#x8F91;<code>/etc/dnsmasq.conf</code>&#x6587;&#x4EF6;&#xFF0C;&#x589E;&#x52A0;&#x4E0B;&#x9762;&#x7684;Google DNS&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-ini"><span class="token constant">server</span><span class="token attr-value"><span class="token punctuation">=</span>8.8.8.8</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x91CD;&#x542F;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># systemctl restart dnsmasq</span>
<span class="token comment" spellcheck="true"># ping -c1 google.com</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<h3 id="&#x90E8;&#x7F72;gluster">&#x90E8;&#x7F72;Gluster</h3>
<p>GlusterFS&#x81F3;&#x5C11;&#x9700;&#x8981;&#x6709;&#x4EE5;&#x4E0B;&#x914D;&#x7F6E;&#x7684;3&#x53F0;&#x865A;&#x62DF;&#x673A;&#xFF1A;</p>
<ul>
<li>RHEL 7.3</li>
<li>2 CPUs</li>
<li>2 GB&#x5185;&#x5B58;</li>
<li>30 GB&#x78C1;&#x76D8;&#x5B58;&#x50A8;&#x7ED9;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;</li>
<li>10 GB&#x78C1;&#x76D8;&#x5B58;&#x50A8;&#x7ED9;GlusterFS bricks</li>
</ul>
<p>&#x4FEE;&#x6539;/etc/hosts&#x6587;&#x4EF6;&#xFF0C;&#x5B9A;&#x4E49;&#x4E09;&#x53F0;&#x865A;&#x62DF;&#x673A;&#x7684;&#x4E3B;&#x673A;&#x540D;&#x3002;</p>
<p>&#x4F8B;&#x5982;&#xFF08;&#x4E3B;&#x673A;&#x540D;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x4F60;&#x81EA;&#x5DF1;&#x7684;&#x73AF;&#x5883;&#x81EA;&#x7531;&#x8C03;&#x6574;&#xFF09;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># cat /etc/hosts</span>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.99.144 ocp-master.lab ocp-master
172.16.128.7 crs-node1.lab crs-node1
172.16.128.8 crs-node2.lab crs-node2
172.16.128.9 crs-node3.lab crs-node3
</code></pre>
<p><strong>&#x5728;3&#x53F0;GlusterFS&#x865A;&#x62DF;&#x673A;&#x4E0A;&#x90FD;&#x6267;&#x884C;&#x4EE5;&#x4E0B;&#x6B65;&#x9AA4;</strong>&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># subscription-manager repos --disable=&quot;*&quot;</span>
<span class="token comment" spellcheck="true"># subscription-manager repos --enable=rhel-7-server-rpms</span>
</code></pre>
<p>&#x5982;&#x679C;&#x4F60;&#x5DF2;&#x7ECF;&#x8BA2;&#x9605;&#x4E86;GlusterFS&#x90A3;&#x4E48;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x4F7F;&#x7528;&#xFF0C;&#x5F00;&#x542F;<code>rh-gluster-3-for-rhel-7-server-rpms</code>&#x7684;yum&#x6E90;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x6CA1;&#x6709;&#x7684;&#x8BDD;&#xFF0C;&#x90A3;&#x4E48;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;EPEL&#x4F7F;&#x7528;&#x975E;&#x5B98;&#x65B9;&#x652F;&#x6301;&#x7684;GlusterFS&#x7684;&#x793E;&#x533A;&#x6E90;&#x3002;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># yum -y install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm</span>
<span class="token comment" spellcheck="true"># rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7</span>
</code></pre>
<p>&#x5728;<code>/etc/yum.repos.d/</code>&#x76EE;&#x5F55;&#x4E0B;&#x521B;&#x5EFA;<code>glusterfs-3.10.repo</code>&#x6587;&#x4EF6;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-ini"><span class="token selector">[glusterfs-3.10]</span>
<span class="token constant">name</span><span class="token attr-value"><span class="token punctuation">=</span>glusterfs-3.10</span>
<span class="token constant">description</span><span class="token attr-value"><span class="token punctuation">=</span>&quot;GlusterFS 3.10 Community Version&quot;</span>
<span class="token constant">baseurl</span><span class="token attr-value"><span class="token punctuation">=</span>https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-3.10/</span>
<span class="token constant">gpgcheck</span><span class="token attr-value"><span class="token punctuation">=</span>0</span>
<span class="token constant">enabled</span><span class="token attr-value"><span class="token punctuation">=</span>1</span>
</code></pre>
<p>&#x9A8C;&#x8BC1;&#x6E90;&#x5DF2;&#x7ECF;&#x88AB;&#x6FC0;&#x6D3B;&#x3002;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-Bash"># yum repolist
</code></pre>
<p>&#x73B0;&#x5728;&#x53EF;&#x4EE5;&#x5F00;&#x59CB;&#x5B89;&#x88C5;GlusterFS&#x4E86;&#x3002;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># yum -y install glusterfs-server</span>
</code></pre>
<p>&#x9700;&#x8981;&#x4E3A;GlusterFS peers&#x6253;&#x5F00;&#x51E0;&#x4E2A;&#x57FA;&#x672C;TCP&#x7AEF;&#x53E3;&#xFF0C;&#x4EE5;&#x4FBF;&#x4E0E;OpenShift&#x8FDB;&#x884C;&#x901A;&#x4FE1;&#x5E76;&#x63D0;&#x4F9B;&#x5B58;&#x50A8;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># firewall-cmd --add-port=24007-24008/tcp --add-port=49152-49664/tcp --add-port=2222/tcp</span>
<span class="token comment" spellcheck="true"># firewall-cmd --runtime-to-permanent</span>
</code></pre>
<p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x542F;&#x52A8;GlusterFS&#x7684;daemon&#x8FDB;&#x7A0B;&#x4E86;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># systemctl enable glusterd</span>
<span class="token comment" spellcheck="true"># systemctl start glusterd</span>
</code></pre>
<p>&#x5B8C;&#x6210;&#x3002;GlusterFS&#x5DF2;&#x7ECF;&#x542F;&#x52A8;&#x5E76;&#x6B63;&#x5728;&#x8FD0;&#x884C;&#x3002;&#x5176;&#x4ED6;&#x914D;&#x7F6E;&#x5C06;&#x901A;&#x8FC7;heketi&#x5B8C;&#x6210;&#x3002;</p>
<p><strong>&#x5728;GlusterFS&#x7684;&#x4E00;&#x53F0;&#x865A;&#x62DF;&#x673A;&#x4E0A;&#x5B89;&#x88C5;heketi</strong></p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># yum -y install heketi heketi-client</span>
</code></pre>
<h3 id="&#x66F4;&#x65B0;epel">&#x66F4;&#x65B0;EPEL</h3>
<p>&#x5982;&#x679C;&#x4F60;&#x6CA1;&#x6709;Red Hat Gluster Storage&#x8BA2;&#x9605;&#x7684;&#x8BDD;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4ECE;EPEL&#x4E2D;&#x83B7;&#x53D6;heketi&#x3002; &#x5728;&#x64B0;&#x5199;&#x672C;&#x6587;&#x65F6;&#xFF0C;2016&#x5E74;10&#x6708;&#x90A3;&#x65F6;&#x5019;&#x8FD8;&#x662F;3.0.0-1.el7&#x7248;&#x672C;&#xFF0C;&#x5B83;&#x4E0D;&#x9002;&#x7528;&#x4E8E;OpenShift 3.4&#x3002; &#x4F60;&#x5C06;&#x9700;&#x8981;&#x66F4;&#x65B0;&#x5230;&#x66F4;&#x65B0;&#x7684;&#x7248;&#x672C;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># yum -y install wget</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># wget https://github.com/heketi/heketi/releases/download/v4.0.0/heketi-v4.0.0.linux.amd64.tar.gz</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># tar -xzf heketi-v4.0.0.linux.amd64.tar.gz</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># systemctl stop heketi</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># cp heketi/heketi* /usr/bin/</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># chown heketi:heketi /usr/bin/heketi*</span>
</code></pre>
<p>&#x5728;<code>/etc/systemd/system/heketi.service</code>&#x4E2D;&#x521B;&#x5EFA;v4&#x7248;&#x672C;&#x7684;heketi&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#x7684;&#x66F4;&#x65B0;&#x8BED;&#x6CD5;&#x6587;&#x4EF6;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-ini"><span class="token selector">[Unit]</span>
<span class="token constant">Description</span><span class="token attr-value"><span class="token punctuation">=</span>Heketi Server</span>
<span class="token selector">[Service]</span>
<span class="token constant">Type</span><span class="token attr-value"><span class="token punctuation">=</span>simple</span>
<span class="token constant">WorkingDirectory</span><span class="token attr-value"><span class="token punctuation">=</span>/var/lib/heketi</span>
<span class="token constant">EnvironmentFile</span><span class="token attr-value"><span class="token punctuation">=</span>-/etc/heketi/heketi.json</span>
<span class="token constant">User</span><span class="token attr-value"><span class="token punctuation">=</span>heketi</span>
<span class="token constant">ExecStart</span><span class="token attr-value"><span class="token punctuation">=</span>/usr/bin/heketi --config=/etc/heketi/heketi.json</span>
<span class="token constant">Restart</span><span class="token attr-value"><span class="token punctuation">=</span>on-failure</span>
<span class="token constant">StandardOutput</span><span class="token attr-value"><span class="token punctuation">=</span>syslog</span>
<span class="token constant">StandardError</span><span class="token attr-value"><span class="token punctuation">=</span>syslog</span>
<span class="token selector">[Install]</span>
<span class="token constant">WantedBy</span><span class="token attr-value"><span class="token punctuation">=</span>multi-user.target</span>
</code></pre>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># systemctl daemon-reload</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># systemctl start heketi</span>
</code></pre>
<p>Heketi&#x4F7F;&#x7528;SSH&#x6765;&#x914D;&#x7F6E;GlusterFS&#x7684;&#x6240;&#x6709;&#x8282;&#x70B9;&#x3002;&#x521B;&#x5EFA;SSH&#x5BC6;&#x94A5;&#x5BF9;&#xFF0C;&#x5C06;&#x516C;&#x94A5;&#x62F7;&#x8D1D;&#x5230;&#x6240;&#x6709;3&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#xFF08;&#x5305;&#x62EC;&#x4F60;&#x767B;&#x9646;&#x7684;&#x7B2C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#xFF09;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># ssh-keygen -f /etc/heketi/heketi_key -t rsa -N &apos;&apos;</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># ssh-copy-id -i /etc/heketi/heketi_key.pub root@crs-node1.lab</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># ssh-copy-id -i /etc/heketi/heketi_key.pub root@crs-node2.lab</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># ssh-copy-id -i /etc/heketi/heketi_key.pub root@crs-node3.lab</span>
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># chown heketi:heketi /etc/heketi/heketi_key*</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x5269;&#x4E0B;&#x552F;&#x4E00;&#x8981;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x5C31;&#x662F;&#x914D;&#x7F6E;heketi&#x6765;&#x4F7F;&#x7528;SSH&#x3002; &#x7F16;&#x8F91;<code>/etc/heketi/heketi.json</code>&#x6587;&#x4EF6;&#x4F7F;&#x5B83;&#x770B;&#x8D77;&#x6765;&#x50CF;&#x4E0B;&#x9762;&#x8FD9;&#x4E2A;&#x6837;&#x5B50;&#xFF08;&#x6539;&#x53D8;&#x7684;&#x90E8;&#x5206;&#x7A81;&#x51FA;&#x663E;&#x793A;&#x4E0B;&#x5212;&#x7EBF;&#xFF09;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-json"><span class="token punctuation">{</span>
<span class="token property">&quot;_port_comment&quot;</span><span class="token operator">:</span><span class="token string">&quot;Heketi Server Port Number&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;port&quot;</span><span class="token operator">:</span><span class="token string">&quot;8080&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;_use_auth&quot;</span><span class="token operator">:</span><span class="token string">&quot;Enable JWT authorization. Please enable for deployment&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;use_auth&quot;</span><span class="token operator">:</span><span class="token boolean">false</span><span class="token punctuation">,</span>
<span class="token property">&quot;_jwt&quot;</span><span class="token operator">:</span><span class="token string">&quot;Private keys for access&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;jwt&quot;</span><span class="token operator">:</span><span class="token punctuation">{</span>
<span class="token property">&quot;_admin&quot;</span><span class="token operator">:</span><span class="token string">&quot;Admin has access to all APIs&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;admin&quot;</span><span class="token operator">:</span><span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span><span class="token string">&quot;My Secret&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;_user&quot;</span><span class="token operator">:</span><span class="token string">&quot;User only has access to /volumes endpoint&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;user&quot;</span><span class="token operator">:</span><span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span><span class="token string">&quot;My Secret&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;_glusterfs_comment&quot;</span><span class="token operator">:</span><span class="token string">&quot;GlusterFS Configuration&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;glusterfs&quot;</span><span class="token operator">:</span><span class="token punctuation">{</span>
<span class="token property">&quot;_executor_comment&quot;</span><span class="token operator">:</span><span class="token punctuation">[</span>
<span class="token string">&quot;Execute plugin. Possible choices: mock, ssh&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;mock: This setting is used for testing and development.&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot; It will not send commands to any node.&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;ssh: This setting will notify Heketi to ssh to the nodes.&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot; It will need the values in sshexec to be configured.&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;kubernetes: Communicate with GlusterFS containers over&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot; Kubernetes exec api.&quot;</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;executor&quot;</span><span class="token operator">:</span><span class="token string">&quot;ssh&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;_sshexec_comment&quot;</span><span class="token operator">:</span><span class="token string">&quot;SSH username and private key file information&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;sshexec&quot;</span><span class="token operator">:</span><span class="token punctuation">{</span>
<span class="token property">&quot;keyfile&quot;</span><span class="token operator">:</span><span class="token string">&quot;/etc/heketi/heketi_key&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;user&quot;</span><span class="token operator">:</span><span class="token string">&quot;root&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;port&quot;</span><span class="token operator">:</span><span class="token string">&quot;22&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;fstab&quot;</span><span class="token operator">:</span><span class="token string">&quot;/etc/fstab&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;_kubeexec_comment&quot;</span><span class="token operator">:</span><span class="token string">&quot;Kubernetes configuration&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;kubeexec&quot;</span><span class="token operator">:</span><span class="token punctuation">{</span>
<span class="token property">&quot;host&quot;</span><span class="token operator">:</span><span class="token string">&quot;https://kubernetes.host:8443&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;cert&quot;</span><span class="token operator">:</span><span class="token string">&quot;/path/to/crt.file&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;insecure&quot;</span><span class="token operator">:</span><span class="token boolean">false</span><span class="token punctuation">,</span>
<span class="token property">&quot;user&quot;</span><span class="token operator">:</span><span class="token string">&quot;kubernetes username&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;password&quot;</span><span class="token operator">:</span><span class="token string">&quot;password for kubernetes user&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;namespace&quot;</span><span class="token operator">:</span><span class="token string">&quot;OpenShift project or Kubernetes namespace&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;fstab&quot;</span><span class="token operator">:</span><span class="token string">&quot;Optional: Specify fstab file on node. Default is /etc/fstab&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;_db_comment&quot;</span><span class="token operator">:</span><span class="token string">&quot;Database file name&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;db&quot;</span><span class="token operator">:</span><span class="token string">&quot;/var/lib/heketi/heketi.db&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;_loglevel_comment&quot;</span><span class="token operator">:</span><span class="token punctuation">[</span>
<span class="token string">&quot;Set log level. Choices are:&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot; none, critical, error, warning, info, debug&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;Default is warning&quot;</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;loglevel&quot;</span><span class="token operator">:</span><span class="token string">&quot;debug&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x5B8C;&#x6210;&#x3002;heketi&#x5C06;&#x76D1;&#x542C;8080&#x7AEF;&#x53E3;&#xFF0C;&#x6211;&#x4EEC;&#x6765;&#x786E;&#x8BA4;&#x4E0B;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;&#x5141;&#x8BB8;&#x5B83;&#x76D1;&#x542C;&#x8BE5;&#x7AEF;&#x53E3;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># firewall-cmd --add-port=8080/tcp</span>
<span class="token comment" spellcheck="true"># firewall-cmd --runtime-to-permanent</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x91CD;&#x542F;heketi&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># systemctl enable heketi</span>
<span class="token comment" spellcheck="true"># systemctl restart heketi</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x6D4B;&#x8BD5;&#x5B83;&#x662F;&#x5426;&#x5728;&#x8FD0;&#x884C;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># curl http://crs-node1.lab:8080/hello</span>
Hello from Heketi
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x5F88;&#x597D;&#x3002;heketi&#x4E0A;&#x573A;&#x7684;&#x65F6;&#x5019;&#x5230;&#x4E86;&#x3002; &#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;&#x5B83;&#x6765;&#x914D;&#x7F6E;&#x6211;&#x4EEC;&#x7684;GlusterFS&#x5B58;&#x50A8;&#x6C60;&#x3002; &#x8BE5;&#x8F6F;&#x4EF6;&#x5DF2;&#x7ECF;&#x5728;&#x6211;&#x4EEC;&#x6240;&#x6709;&#x7684;&#x865A;&#x62DF;&#x673A;&#x4E0A;&#x8FD0;&#x884C;&#xFF0C;&#x4F46;&#x5E76;&#x672A;&#x88AB;&#x914D;&#x7F6E;&#x3002; &#x8981;&#x5C06;&#x5176;&#x6539;&#x9020;&#x4E3A;&#x6EE1;&#x8DB3;&#x6211;&#x4EEC;&#x9700;&#x6C42;&#x7684;&#x5B58;&#x50A8;&#x7CFB;&#x7EDF;&#xFF0C;&#x9700;&#x8981;&#x5728;&#x62D3;&#x6251;&#x6587;&#x4EF6;&#x4E2D;&#x63CF;&#x8FF0;&#x6211;&#x4EEC;&#x6240;&#x9700;&#x7684;GlusterFS&#x5B58;&#x50A8;&#x6C60;&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># vi topology.json</span>
<span class="token punctuation">{</span>
<span class="token string">&quot;clusters&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">&quot;nodes&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">&quot;node&quot;</span><span class="token keyword">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;hostnames&quot;</span><span class="token keyword">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;manage&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;crs-node1.lab&quot;</span>
<span class="token punctuation">]</span>,
<span class="token string">&quot;storage&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;172.16.128.7&quot;</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>,
<span class="token string">&quot;zone&quot;</span><span class="token keyword">:</span> 1
<span class="token punctuation">}</span>,
<span class="token string">&quot;devices&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;/dev/sdb&quot;</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>,
<span class="token punctuation">{</span>
<span class="token string">&quot;node&quot;</span><span class="token keyword">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;hostnames&quot;</span><span class="token keyword">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;manage&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;crs-node2.lab&quot;</span>
<span class="token punctuation">]</span>,
<span class="token string">&quot;storage&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;172.16.128.8&quot;</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>,
<span class="token string">&quot;zone&quot;</span><span class="token keyword">:</span> 1
<span class="token punctuation">}</span>,
<span class="token string">&quot;devices&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;/dev/sdb&quot;</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>,
<span class="token punctuation">{</span>
<span class="token string">&quot;node&quot;</span><span class="token keyword">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;hostnames&quot;</span><span class="token keyword">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;manage&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;crs-node3.lab&quot;</span>
<span class="token punctuation">]</span>,
<span class="token string">&quot;storage&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;172.16.128.9&quot;</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>,
<span class="token string">&quot;zone&quot;</span><span class="token keyword">:</span> 1
<span class="token punctuation">}</span>,
<span class="token string">&quot;devices&quot;</span><span class="token keyword">:</span> <span class="token punctuation">[</span>
<span class="token string">&quot;/dev/sdb&quot;</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
</code></pre>
<p>&#x8BE5;&#x6587;&#x4EF6;&#x683C;&#x5F0F;&#x6BD4;&#x8F83;&#x7B80;&#x5355;&#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x662F;&#x544A;&#x8BC9;heketi&#x8981;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;3&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#xFF0C;&#x5176;&#x4E2D;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x5305;&#x542B;&#x7684;&#x914D;&#x7F6E;&#x6709;FQDN&#xFF0C;IP&#x5730;&#x5740;&#x4EE5;&#x53CA;&#x81F3;&#x5C11;&#x4E00;&#x4E2A;&#x5C06;&#x7528;&#x4F5C;GlusterFS&#x5757;&#x7684;&#x5907;&#x7528;&#x5757;&#x8BBE;&#x5907;&#x3002;</p>
<p>&#x73B0;&#x5728;&#x5C06;&#x8BE5;&#x6587;&#x4EF6;&#x53D1;&#x9001;&#x7ED9;heketi&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># export HEKETI_CLI_SERVER=http://crs-node1.lab:8080</span>
<span class="token comment" spellcheck="true"># heketi-cli topology load --json=topology.json</span>
Creating cluster <span class="token punctuation">..</span>. ID: 78cdb57aa362f5284bc95b2549bc7e7d
Creating node crs-node1.lab <span class="token punctuation">..</span>. ID: ffd7671c0083d88aeda9fd1cb40b339b
Adding device /dev/sdb <span class="token punctuation">..</span>. OK
Creating node crs-node2.lab <span class="token punctuation">..</span>. ID: 8220975c0a4479792e684584153050a9
Adding device /dev/sdb <span class="token punctuation">..</span>. OK
Creating node crs-node3.lab <span class="token punctuation">..</span>. ID: b94f14c4dbd8850f6ac589ac3b39cc8e
Adding device /dev/sdb <span class="token punctuation">..</span>. OK
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x73B0;&#x5728;heketi&#x5DF2;&#x7ECF;&#x914D;&#x7F6E;&#x4E86;3&#x4E2A;&#x8282;&#x70B9;&#x7684;GlusterFS&#x5B58;&#x50A8;&#x6C60;&#x3002;&#x5F88;&#x7B80;&#x5355;&#xFF01;&#x4F60;&#x73B0;&#x5728;&#x53EF;&#x4EE5;&#x770B;&#x5230;3&#x4E2A;&#x865A;&#x62DF;&#x673A;&#x90FD;&#x5DF2;&#x7ECF;&#x6210;&#x529F;&#x6784;&#x6210;&#x4E86;GlusterFS&#x4E2D;&#x7684;&#x53EF;&#x4FE1;&#x5B58;&#x50A8;&#x6C60;&#xFF08;Trusted Stroage Pool&#xFF09;&#x3002;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># gluster peer status</span>
Number of Peers: 2
Hostname: crs-node2.lab
Uuid: 93b34946-9571-46a8-983c-c9f128557c0e
2018-02-20 18:00:08 +08:00
State: Peer <span class="token keyword">in</span> Cluster <span class="token punctuation">(</span>Connected<span class="token punctuation">)</span>
Other names:
crs-node2.lab
Hostname: 172.16.128.9
2018-02-20 18:00:08 +08:00
Uuid: e3c1f9b0-be97-42e5-beda-f70fc05f47ea
State: Peer <span class="token keyword">in</span> Cluster <span class="token punctuation">(</span>Connected<span class="token punctuation">)</span>
</code></pre>
<p>&#x73B0;&#x5728;&#x56DE;&#x5230;OpenShift&#xFF01;</p>
<h3 id="&#x5C06;gluster&#x4E0E;openshift&#x96C6;&#x6210;">&#x5C06;Gluster&#x4E0E;OpenShift&#x96C6;&#x6210;</h3>
<p>&#x4E3A;&#x4E86;&#x96C6;&#x6210;OpenShift&#xFF0C;&#x9700;&#x8981;&#x4E24;&#x6837;&#x4E1C;&#x897F;&#xFF1A;&#x4E00;&#x4E2A;&#x52A8;&#x6001;&#x7684;Kubernetes Storage Provisioner&#x548C;&#x4E00;&#x4E2A;StorageClass&#x3002; Provisioner&#x5728;OpenShift&#x4E2D;&#x5F00;&#x7BB1;&#x5373;&#x7528;&#x3002; &#x5B9E;&#x9645;&#x4E0A;&#x5173;&#x952E;&#x7684;&#x662F;&#x5982;&#x4F55;&#x5C06;&#x5B58;&#x50A8;&#x6302;&#x8F7D;&#x5230;&#x5BB9;&#x5668;&#x4E0A;&#x3002; StorageClass&#x662F;OpenShift&#x4E2D;&#x7684;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x5B9E;&#x73B0;&#x7684;PersistentVolumeClaims&#x7684;&#x5B9E;&#x4F53;&#xFF0C;&#x5B83;&#x53CD;&#x8FC7;&#x6765;&#x80FD;&#x591F;&#x89E6;&#x53D1;&#x4E00;&#x4E2A;Provisioner&#x5B9E;&#x73B0;&#x5B9E;&#x9645;&#x7684;&#x914D;&#x7F6E;&#xFF0C;&#x5E76;&#x5C06;&#x7ED3;&#x679C;&#x8868;&#x793A;&#x4E3A;Kubernetes PersistentVolume&#xFF08;PV&#xFF09;&#x3002;</p>
<p>&#x5C31;&#x50CF;OpenShift&#x4E2D;&#x7684;&#x5176;&#x4ED6;&#x7EC4;&#x4EF6;&#x4E00;&#x6837;&#xFF0C;StorageClass&#x4E5F;&#x7B80;&#x5355;&#x7684;&#x7528;YAML&#x6587;&#x4EF6;&#x5B9A;&#x4E49;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-Bash"># cat crs-storageclass.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: container-ready-storage
annotations:
2018-02-20 18:00:08 +08:00
storageclass.beta.kubernetes.io/is-default-class: &quot;true&quot;
provisioner: kubernetes.io/glusterfs
parameters:
2018-02-20 18:00:08 +08:00
resturl: &quot;http://crs-node1.lab:8080&quot;
restauthenabled: &quot;false&quot;
</code></pre>
<p>&#x6211;&#x4EEC;&#x7684;provisioner&#x662F;kubernetes.io/glusterfs&#xFF0C;&#x5C06;&#x5B83;&#x6307;&#x5411;&#x6211;&#x4EEC;&#x7684;heketi&#x5B9E;&#x4F8B;&#x3002; &#x6211;&#x4EEC;&#x5C06;&#x7C7B;&#x547D;&#x540D;&#x4E3A;&#x201C;container-ready-storage&#x201D;&#xFF0C;&#x540C;&#x65F6;&#x4F7F;&#x5176;&#x6210;&#x4E3A;&#x6240;&#x6709;&#x6CA1;&#x6709;&#x663E;&#x793A;&#x6307;&#x5B9A;StorageClass&#x7684;PersistentVolumeClaim&#x7684;&#x9ED8;&#x8BA4;StorageClass&#x3002;</p>
<p>&#x4E3A;&#x4F60;&#x7684;GlusterFS&#x6C60;&#x521B;&#x5EFA;StorageClass&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc create -f crs-storageclass.yaml</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<h3 id="&#x5728;openshift&#x4E2D;&#x4F7F;&#x7528;gluster">&#x5728;OpenShift&#x4E2D;&#x4F7F;&#x7528;Gluster</h3>
<p>&#x6211;&#x4EEC;&#x6765;&#x770B;&#x4E0B;&#x5982;&#x4F55;&#x5728;OpenShift&#x4E2D;&#x4F7F;&#x7528;GlusterFS&#x3002;&#x9996;&#x5148;&#x5728;OpenShift&#x865A;&#x62DF;&#x673A;&#x4E2D;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x6D4B;&#x8BD5;&#x9879;&#x76EE;&#x3002;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc new-project crs-storage --display-name=&quot;Container-Ready Storage&quot;</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x8FD9;&#x4F1A;&#x5411;Kubernetes/OpenShift&#x53D1;&#x51FA;storage&#x8BF7;&#x6C42;&#xFF0C;&#x8BF7;&#x6C42;&#x4E00;&#x4E2A;PersistentVolumeClaim&#xFF08;PVC&#xFF09;&#x3002; &#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x5B83;&#x63CF;&#x8FF0;&#x6700;&#x5C11;&#x9700;&#x8981;&#x591A;&#x5C11;&#x5BB9;&#x91CF;&#x548C;&#x5E94;&#x8BE5;&#x63D0;&#x4F9B;&#x54EA;&#x79CD;&#x8BBF;&#x95EE;&#x6A21;&#x5F0F;&#xFF08;&#x975E;&#x5171;&#x4EAB;&#xFF0C;&#x5171;&#x4EAB;&#xFF0C;&#x53EA;&#x8BFB;&#xFF09;&#x3002; &#x5B83;&#x901A;&#x5E38;&#x662F;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6A21;&#x677F;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x53EA;&#x9700;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x72EC;&#x7ACB;&#x7684;PVC&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># cat crs-claim.yaml</span>
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-crs-storage
namespace: crs-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
</code></pre>
<p>&#x53D1;&#x9001;&#x8BE5;&#x8BF7;&#x6C42;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc create -f crs-claim.yaml</span>
</code></pre>
<p>&#x89C2;&#x5BDF;&#x5728;OpenShfit&#x4E2D;&#xFF0C;PVC&#x6B63;&#x5728;&#x4EE5;&#x52A8;&#x6001;&#x521B;&#x5EFA;volume&#x7684;&#x65B9;&#x5F0F;&#x5B9E;&#x73B0;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc get pvc</span>
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
my-crs-storage Bound pvc-41ad5adb-107c-11e7-afae-000c2949cce7 1Gi RWO 58s
</code></pre>
<p>&#x592A;&#x68D2;&#x4E86;&#xFF01; &#x4F60;&#x73B0;&#x5728;&#x53EF;&#x4EE5;&#x5728;OpenShift&#x4E2D;&#x4F7F;&#x7528;&#x5B58;&#x50A8;&#x5BB9;&#x91CF;&#xFF0C;&#x800C;&#x4E0D;&#x9700;&#x8981;&#x76F4;&#x63A5;&#x4E0E;&#x5B58;&#x50A8;&#x7CFB;&#x7EDF;&#x8FDB;&#x884C;&#x4EFB;&#x4F55;&#x4EA4;&#x4E92;&#x3002; &#x6211;&#x4EEC;&#x6765;&#x770B;&#x770B;&#x521B;&#x5EFA;&#x7684;volume&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc get pv/pvc-41ad5adb-107c-11e7-afae-000c2949cce7</span>
Name: pvc-41ad5adb-107c-11e7-afae-000c2949cce7
Labels:
StorageClass: container-ready-storage
Status: Bound
Claim: crs-storage/my-crs-storage
Reclaim Policy: Delete
Access Modes: RWO
Capacity: 1Gi
Message:
Source:
2018-02-20 18:00:08 +08:00
Type: Glusterfs <span class="token punctuation">(</span>a Glusterfs <span class="token function">mount</span> on the host that shares a pod&apos;s lifetime<span class="token punctuation">)</span>
EndpointsName: gluster-dynamic-my-crs-storage
Path: vol_85e444ee3bc154de084976a9aef16025
2018-02-20 18:00:08 +08:00
ReadOnly: <span class="token boolean">false</span>
</code></pre>
<p>What happened in the background was that when the PVC reached the system, our default StorageClass reached out to the GlusterFS Provisioner with the volume specs from the PVC. The provisioner in turn communicates with our heketi instance which facilitates the creation of the GlusterFS volume, which we can trace in it&#x2019;s log messages:</p>
<p>&#x8BE5;volume&#x662F;&#x6839;&#x636E;PVC&#x4E2D;&#x7684;&#x5B9A;&#x4E49;&#x7279;&#x522B;&#x521B;&#x5EFA;&#x7684;&#x3002; &#x5728;PVC&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x660E;&#x786E;&#x6307;&#x5B9A;&#x8981;&#x4F7F;&#x7528;&#x54EA;&#x4E2A;StorageClass&#xFF0C;&#x56E0;&#x4E3A;heketi&#x7684;GlusterFS StorageClass&#x5DF2;&#x7ECF;&#x88AB;&#x5B9A;&#x4E49;&#x4E3A;&#x7CFB;&#x7EDF;&#x8303;&#x56F4;&#x7684;&#x9ED8;&#x8BA4;&#x503C;&#x3002;</p>
<p>&#x5728;&#x540E;&#x53F0;&#x53D1;&#x751F;&#x7684;&#x60C5;&#x51B5;&#x662F;&#xFF0C;&#x5F53;PVC&#x5230;&#x8FBE;&#x7CFB;&#x7EDF;&#x65F6;&#xFF0C;&#x9ED8;&#x8BA4;&#x7684;StorageClass&#x8BF7;&#x6C42;&#x5177;&#x6709;&#x8BE5;PVC&#x4E2D;volume&#x58F0;&#x660E;&#x89C4;&#x683C;&#x7684;GlusterFS Provisioner&#x3002; Provisioner&#x53C8;&#x4E0E;&#x6211;&#x4EEC;&#x7684;heketi&#x5B9E;&#x4F8B;&#x901A;&#x4FE1;&#xFF0C;&#x8FD9;&#x6709;&#x52A9;&#x4E8E;&#x521B;&#x5EFA;GlusterFS volume&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x5176;&#x65E5;&#x5FD7;&#x6D88;&#x606F;&#x4E2D;&#x8FFD;&#x8E2A;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># journalctl -l -u heketi.service</span>
<span class="token punctuation">..</span>.
Mar 24 11:25:52 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: <span class="token punctuation">[</span>heketi<span class="token punctuation">]</span> DEBUG 2017/03/24 11:25:52 /src/github.com/heketi/heketi/apps/glusterfs/volume_entry.go:298: Volume to be created on cluster e
Mar 24 11:25:52 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: <span class="token punctuation">[</span>heketi<span class="token punctuation">]</span> INFO 2017/03/24 11:25:52 Creating brick 9e791b1daa12af783c9195941fe63103
Mar 24 11:25:52 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: <span class="token punctuation">[</span>heketi<span class="token punctuation">]</span> INFO 2017/03/24 11:25:52 Creating brick 3e06af2f855bef521a95ada91680d14b
Mar 24 11:25:52 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: <span class="token punctuation">[</span>heketi<span class="token punctuation">]</span> INFO 2017/03/24 11:25:52 Creating brick e4daa240f1359071e3f7ea22618cfbab
<span class="token punctuation">..</span>.
Mar 24 11:25:52 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: <span class="token punctuation">[</span>sshexec<span class="token punctuation">]</span> INFO 2017/03/24 11:25:52 Creating volume vol_85e444ee3bc154de084976a9aef16025 replica 3
<span class="token punctuation">..</span>.
Mar 24 11:25:53 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: Result: volume create: vol_85e444ee3bc154de084976a9aef16025: success: please start the volume to access data
<span class="token punctuation">..</span>.
Mar 24 11:25:55 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: Result: volume start: vol_85e444ee3bc154de084976a9aef16025: success
<span class="token punctuation">..</span>.
Mar 24 11:25:55 crs-node1.lab heketi<span class="token punctuation">[</span>2598<span class="token punctuation">]</span>: <span class="token punctuation">[</span>asynchttp<span class="token punctuation">]</span> INFO 2017/03/24 11:25:55 Completed job c3d6c4f9fc74796f4a5262647dc790fe <span class="token keyword">in</span> 3.176522702s
<span class="token punctuation">..</span>.
</code></pre>
<p>&#x6210;&#x529F;&#xFF01; &#x5927;&#x7EA6;&#x7528;&#x4E86;3&#x79D2;&#x949F;&#xFF0C;GlusterFS&#x6C60;&#x5C31;&#x914D;&#x7F6E;&#x5B8C;&#x6210;&#x4E86;&#xFF0C;&#x5E76;&#x914D;&#x7F6E;&#x4E86;&#x4E00;&#x4E2A;volume&#x3002; &#x9ED8;&#x8BA4;&#x503C;&#x662F;replica 3&#xFF0C;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x6570;&#x636E;&#x5C06;&#x88AB;&#x590D;&#x5236;&#x5230;3&#x4E2A;&#x4E0D;&#x540C;&#x8282;&#x70B9;&#x7684;3&#x4E2A;&#x5757;&#x4E0A;&#xFF08;&#x7528;GlusterFS&#x4F5C;&#x4E3A;&#x540E;&#x7AEF;&#x5B58;&#x50A8;&#xFF09;&#x3002; &#x8BE5;&#x8FC7;&#x7A0B;&#x662F;&#x901A;&#x8FC7;Heketi&#x5728;OpenShift&#x8FDB;&#x884C;&#x7F16;&#x6392;&#x7684;&#x3002;</p>
<p>&#x4F60;&#x4E5F;&#x53EF;&#x4EE5;&#x4ECE;GlusterFS&#x7684;&#x89D2;&#x5EA6;&#x770B;&#x5230;&#x6709;&#x5173;volume&#x7684;&#x4FE1;&#x606F;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># gluster volume list</span>
vol_85e444ee3bc154de084976a9aef16025
2018-02-20 18:00:08 +08:00
<span class="token punctuation">[</span>root@crs-node1 ~<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># gluster volume info vol_85e444ee3bc154de084976a9aef16025</span>
Volume Name: vol_85e444ee3bc154de084976a9aef16025
Type: Replicate
Volume ID: a32168c8-858e-472a-b145-08c20192082b
Status: Started
Snapshot Count: 0
2018-02-20 18:00:08 +08:00
Number of Bricks: 1 x 3 <span class="token operator">=</span> 3
Transport-type: tcp
Bricks:
Brick1: 172.16.128.8:/var/lib/heketi/mounts/vg_147b43f6f6903be8b23209903b7172ae/brick_9e791b1daa12af783c9195941fe63103/brick
Brick2: 172.16.128.9:/var/lib/heketi/mounts/vg_72c0f520b0c57d807be21e9c90312f85/brick_3e06af2f855bef521a95ada91680d14b/brick
Brick3: 172.16.128.7:/var/lib/heketi/mounts/vg_67314f879686de975f9b8936ae43c5c5/brick_e4daa240f1359071e3f7ea22618cfbab/brick
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
</code></pre>
<p>&#x8BF7;&#x6CE8;&#x610F;&#xFF0C;GlusterFS&#x4E2D;&#x7684;&#x5377;&#x540D;&#x79F0;&#x5982;&#x4F55;&#x5BF9;&#x5E94;&#x4E8E;OpenShift&#x4E2D;Kubernetes Persistent Volume&#x7684;&#x201C;&#x8DEF;&#x5F84;&#x201D;&#x3002;</p>
<p>&#x6216;&#x8005;&#xFF0C;&#x4F60;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;OpenShift UI&#x6765;&#x914D;&#x7F6E;&#x5B58;&#x50A8;&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x5730;&#x5728;&#x7CFB;&#x7EDF;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x5DF2;&#x77E5;&#x7684;StorageClasses&#x4E2D;&#x8FDB;&#x884C;&#x9009;&#x62E9;&#xFF1A;</p>
<figure id="fig5.6.1.3.1"><img src="../images/create-gluster-storage.png" alt="&#x521B;&#x5EFA;&#x5B58;&#x50A8;"><figcaption>&#x56FE;&#x7247; - &#x521B;&#x5EFA;&#x5B58;&#x50A8;</figcaption></figure>
<figure id="fig5.6.1.3.2"><img src="https://keithtenzer.files.wordpress.com/2017/03/screen-shot-2017-03-24-at-11-09-341.png?w=440" alt="Screen Shot 2017-03-24 at 11.09.34.png"><figcaption>&#x56FE;&#x7247; - Screen Shot 2017-03-24 at 11.09.34.png</figcaption></figure>
<p>&#x8BA9;&#x6211;&#x4EEC;&#x505A;&#x70B9;&#x66F4;&#x6709;&#x8DA3;&#x7684;&#x4E8B;&#x60C5;&#xFF0C;&#x5728;OpenShift&#x4E2D;&#x8FD0;&#x884C;&#x5DE5;&#x4F5C;&#x8D1F;&#x8F7D;&#x3002;</p>
<p>&#x5728;&#x4ECD;&#x8FD0;&#x884C;&#x7740;crs-storage&#x9879;&#x76EE;&#x7684;OpenShift&#x865A;&#x62DF;&#x673A;&#x4E2D;&#x6267;&#x884C;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc get templates -n openshift</span>
</code></pre>
<p>&#x4F60;&#x5E94;&#x8BE5;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x4E00;&#x4E2A;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x548C;&#x6570;&#x636E;&#x5E93;&#x6A21;&#x677F;&#x5217;&#x8868;&#xFF0C;&#x8FD9;&#x4E2A;&#x5217;&#x8868;&#x5C06;&#x65B9;&#x4FBF;&#x4F60;&#x66F4;&#x8F7B;&#x677E;&#x7684;&#x4F7F;&#x7528;OpenShift&#x6765;&#x90E8;&#x7F72;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x9879;&#x76EE;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;MySQL&#x6765;&#x6F14;&#x793A;&#x5982;&#x4F55;&#x5728;OpenShift&#x4E0A;&#x90E8;&#x7F72;&#x5177;&#x6709;&#x6301;&#x4E45;&#x5316;&#x548C;&#x5F39;&#x6027;&#x5B58;&#x50A8;&#x7684;&#x6709;&#x72B6;&#x6001;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x3002; Mysql-persistent&#x6A21;&#x677F;&#x5305;&#x542B;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;MySQL&#x6570;&#x636E;&#x5E93;&#x76EE;&#x5F55;&#x7684;1G&#x7A7A;&#x95F4;&#x7684;PVC&#x3002; &#x4E3A;&#x4E86;&#x6F14;&#x793A;&#x76EE;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x4F7F;&#x7528;&#x9ED8;&#x8BA4;&#x503C;&#x3002;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc process mysql-persistent -n openshift | oc create -f -</span>
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x7B49;&#x5F85;&#x90E8;&#x7F72;&#x5B8C;&#x6210;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;UI&#x6216;&#x8005;&#x547D;&#x4EE4;&#x884C;&#x89C2;&#x5BDF;&#x90E8;&#x7F72;&#x8FDB;&#x5EA6;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc get pods</span>
NAME READY STATUS RESTARTS AGE
mysql-1-h4afb 1/1 Running 0 2m
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x597D;&#x4E86;&#x3002;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x4F7F;&#x7528;&#x8FD9;&#x4E2A;&#x6A21;&#x677F;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;service&#xFF0C;secrets&#x3001;PVC&#x548C;pod&#x3002;&#x6211;&#x4EEC;&#x6765;&#x4F7F;&#x7528;&#x5B83;&#xFF08;&#x4F60;&#x7684;pod&#x540D;&#x5B57;&#x5C06;&#x8DDF;&#x6211;&#x7684;&#x4E0D;&#x540C;&#xFF09;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc rsh mysql-1-h4afb</span>
</code></pre>
<p>&#x4F60;&#x5DF2;&#x7ECF;&#x6210;&#x529F;&#x7684;&#x5C06;&#x5B83;&#x6302;&#x8F7D;&#x5230;MySQL&#x7684;pod&#x4E0A;&#x3002;&#x6211;&#x4EEC;&#x8FDE;&#x63A5;&#x4E00;&#x4E0B;&#x6570;&#x636E;&#x5E93;&#x8BD5;&#x8BD5;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash">sh-4.2$ mysql -u <span class="token variable">$MYSQL_USER</span> -p<span class="token variable">$MYSQL_PASSWORD</span> -h <span class="token variable">$HOSTNAME</span> <span class="token variable">$MYSQL_DATABASE</span>
</code></pre>
<p>&#x8FD9;&#x70B9;&#x5F88;&#x65B9;&#x4FBF;&#xFF0C;&#x6240;&#x6709;&#x91CD;&#x8981;&#x7684;&#x914D;&#x7F6E;&#xFF0C;&#x5982;MySQL&#x51ED;&#x636E;&#xFF0C;&#x6570;&#x636E;&#x5E93;&#x540D;&#x79F0;&#x7B49;&#x90FD;&#x662F;pod&#x6A21;&#x677F;&#x4E2D;&#x7684;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x5728;pod&#x4E2D;&#x4F5C;&#x4E3A;shell&#x7684;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x3002; &#x6211;&#x4EEC;&#x6765;&#x521B;&#x5EFA;&#x4E00;&#x4E9B;&#x6570;&#x636E;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-Bash">mysql&gt; show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| sampledb |
+--------------------+
2018-02-20 18:00:08 +08:00
2 rows in set (0.02 sec)
mysql&gt; \u sampledb
Database changed
mysql&gt; CREATE TABLE IF NOT EXISTS equipment (
-&gt; equip_id int(5) NOT NULL AUTO_INCREMENT,
2018-02-20 18:00:08 +08:00
-&gt; type varchar(50) DEFAULT NULL,
-&gt; install_date DATE DEFAULT NULL,
-&gt; color varchar(20) DEFAULT NULL,
-&gt; working bool DEFAULT NULL,
-&gt; location varchar(250) DEFAULT NULL,
-&gt; PRIMARY KEY(equip_id)
-&gt; );
Query OK, 0 rows affected (0.13 sec)
2018-02-20 18:00:08 +08:00
mysql&gt; INSERT INTO equipment (type, install_date, color, working, location)
-&gt; VALUES
2018-02-20 18:00:08 +08:00
-&gt; (&quot;Slide&quot;, Now(), &quot;blue&quot;, 1, &quot;Southwest Corner&quot;);
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql&gt; SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
2018-02-20 18:00:08 +08:00
| equip_id | type | install_date | color | working | location |
+----------+-------+--------------+-------+---------+------------------+
| 1 | Slide | 2017-03-24 | blue | 1 | Southwest Corner |
+----------+-------+--------------+-------+---------+------------------+
2018-02-20 18:00:08 +08:00
1 row in set (0.00 sec)
</code></pre>
<p>&#x5F88;&#x597D;&#xFF0C;&#x6570;&#x636E;&#x5E93;&#x8FD0;&#x884C;&#x6B63;&#x5E38;&#x3002;</p>
<p>&#x4F60;&#x60F3;&#x770B;&#x4E0B;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x5728;&#x54EA;&#x91CC;&#x5417;&#xFF1F;&#x5F88;&#x7B80;&#x5355;&#xFF01;&#x67E5;&#x770B;&#x521A;&#x4F7F;&#x7528;&#x6A21;&#x677F;&#x521B;&#x5EFA;&#x7684;mysql volume&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># oc get pvc/mysql</span>
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
2018-02-20 18:00:08 +08:00
mysql Bound pvc-a678b583-1082-11e7-afae-000c2949cce7 1Gi RWO 11m
<span class="token comment" spellcheck="true"># oc describe pv/pvc-a678b583-1082-11e7-afae-000c2949cce7</span>
Name: pvc-a678b583-1082-11e7-afae-000c2949cce7
Labels:
StorageClass: container-ready-storage
Status: Bound
Claim: crs-storage/mysql
Reclaim Policy: Delete
Access Modes: RWO
Capacity: 1Gi
Message:
Source:
2018-02-20 18:00:08 +08:00
Type: Glusterfs <span class="token punctuation">(</span>a Glusterfs <span class="token function">mount</span> on the host that shares a pod&apos;s lifetime<span class="token punctuation">)</span>
EndpointsName: gluster-dynamic-mysql
Path: vol_6299fc74eee513119dafd43f8a438db1
2018-02-20 18:00:08 +08:00
ReadOnly: <span class="token boolean">false</span>
</code></pre>
<p>GlusterFS&#x7684;volume&#x540D;&#x5B57;&#x662F;vol_6299fc74eee513119dafd43f8a438db1&#x3002;&#x56DE;&#x5230;&#x4F60;&#x7684;GlusterFS&#x865A;&#x62DF;&#x673A;&#x4E2D;&#xFF0C;&#x8F93;&#x5165;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># gluster volume info vol_6299fc74eee513119dafd43f8a438db</span>
2018-02-20 18:00:08 +08:00
Volume Name: vol_6299fc74eee513119dafd43f8a438db1
Type: Replicate
Volume ID: 4115918f-28f7-4d4a-b3f5-4b9afe5b391f
Status: Started
Snapshot Count: 0
2018-02-20 18:00:08 +08:00
Number of Bricks: 1 x 3 <span class="token operator">=</span> 3
Transport-type: tcp
Bricks:
Brick1: 172.16.128.7:/var/lib/heketi/mounts/vg_67314f879686de975f9b8936ae43c5c5/brick_f264a47aa32be5d595f83477572becf8/brick
Brick2: 172.16.128.8:/var/lib/heketi/mounts/vg_147b43f6f6903be8b23209903b7172ae/brick_f5731fe7175cbe6e6567e013c2591343/brick
2018-02-20 18:00:08 +08:00
Brick3: 172.16.128.9:/var/lib/heketi/mounts/vg_72c0f520b0c57d807be21e9c90312f85/brick_ac6add804a6a467cd81cd1404841bbf1/brick
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
</code></pre>
<p>&#x4F60;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6570;&#x636E;&#x662F;&#x5982;&#x4F55;&#x88AB;&#x590D;&#x5236;&#x5230;3&#x4E2A;GlusterFS&#x5757;&#x7684;&#x3002;&#x6211;&#x4EEC;&#x4ECE;&#x4E2D;&#x6311;&#x4E00;&#x4E2A;&#xFF08;&#x6700;&#x597D;&#x6311;&#x9009;&#x4F60;&#x521A;&#x767B;&#x9646;&#x7684;&#x90A3;&#x53F0;&#x865A;&#x62DF;&#x673A;&#x5E76;&#x67E5;&#x770B;&#x76EE;&#x5F55;&#xFF09;&#xFF1A;</p>
2018-02-20 18:00:08 +08:00
<pre class="language-"><code class="lang-bash"><span class="token comment" spellcheck="true"># ll /var/lib/heketi/mounts/vg_67314f879686de975f9b8936ae43c5c5/brick_f264a47aa32be5d595f83477572becf8/brick</span>
total 180300
-rw-r-----. 2 1000070000 2001 56 Mar 24 12:11 auto.cnf
-rw-------. 2 1000070000 2001 1676 Mar 24 12:11 ca-key.pem
-rw-r--r--. 2 1000070000 2001 1075 Mar 24 12:11 ca.pem
-rw-r--r--. 2 1000070000 2001 1079 Mar 24 12:12 client-cert.pem
-rw-------. 2 1000070000 2001 1680 Mar 24 12:12 client-key.pem
-rw-r-----. 2 1000070000 2001 352 Mar 24 12:12 ib_buffer_pool
-rw-r-----. 2 1000070000 2001 12582912 Mar 24 12:20 ibdata1
-rw-r-----. 2 1000070000 2001 79691776 Mar 24 12:20 ib_logfile0
-rw-r-----. 2 1000070000 2001 79691776 Mar 24 12:11 ib_logfile1
-rw-r-----. 2 1000070000 2001 12582912 Mar 24 12:12 ibtmp1
2018-02-20 18:00:08 +08:00
drwxr-s---. 2 1000070000 2001 8192 Mar 24 12:12 mysql
-rw-r-----. 2 1000070000 2001 2 Mar 24 12:12 mysql-1-h4afb.pid
2018-02-20 18:00:08 +08:00
drwxr-s---. 2 1000070000 2001 8192 Mar 24 12:12 performance_schema
-rw-------. 2 1000070000 2001 1676 Mar 24 12:12 private_key.pem
-rw-r--r--. 2 1000070000 2001 452 Mar 24 12:12 public_key.pem
2018-02-20 18:00:08 +08:00
drwxr-s---. 2 1000070000 2001 62 Mar 24 12:20 sampledb
-rw-r--r--. 2 1000070000 2001 1079 Mar 24 12:11 server-cert.pem
-rw-------. 2 1000070000 2001 1676 Mar 24 12:11 server-key.pem
2018-02-20 18:00:08 +08:00
drwxr-s---. 2 1000070000 2001 8192 Mar 24 12:12 sys
2017-10-19 18:37:05 +08:00
</code></pre>
<p>&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x91CC;&#x770B;&#x5230;MySQL&#x6570;&#x636E;&#x5E93;&#x76EE;&#x5F55;&#x3002; &#x5B83;&#x4F7F;&#x7528;GlusterFS&#x4F5C;&#x4E3A;&#x540E;&#x7AEF;&#x5B58;&#x50A8;&#xFF0C;&#x5E76;&#x4F5C;&#x4E3A;&#x7ED1;&#x5B9A;&#x6302;&#x8F7D;&#x7ED9;MySQL&#x5BB9;&#x5668;&#x4F7F;&#x7528;&#x3002; &#x5982;&#x679C;&#x4F60;&#x68C0;&#x67E5;OpenShift VM&#x4E0A;&#x7684;mount&#x8868;&#xFF0C;&#x4F60;&#x5C06;&#x4F1A;&#x770B;&#x5230;GlusterFS&#x7684;mount&#x3002;</p>
<h3 id="&#x603B;&#x7ED3;">&#x603B;&#x7ED3;</h3>
<p>&#x5728;&#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x662F;&#x5728;OpenShift&#x4E4B;&#x5916;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x4F46;&#x529F;&#x80FD;&#x5F3A;&#x5927;&#x7684;GlusterFS&#x5B58;&#x50A8;&#x6C60;&#x3002; &#x8BE5;&#x6C60;&#x53EF;&#x4EE5;&#x72EC;&#x7ACB;&#x4E8E;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6269;&#x5C55;&#x548C;&#x6536;&#x7F29;&#x3002; &#x8BE5;&#x6C60;&#x7684;&#x6574;&#x4E2A;&#x751F;&#x547D;&#x5468;&#x671F;&#x7531;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x79F0;&#x4E3A;heketi&#x7684;&#x524D;&#x7AEF;&#x7BA1;&#x7406;&#xFF0C;&#x4F60;&#x53EA;&#x9700;&#x8981;&#x5728;&#x90E8;&#x7F72;&#x589E;&#x957F;&#x65F6;&#x8FDB;&#x884C;&#x624B;&#x52A8;&#x5E72;&#x9884;&#x3002; &#x5BF9;&#x4E8E;&#x65E5;&#x5E38;&#x914D;&#x7F6E;&#x64CD;&#x4F5C;&#xFF0C;&#x4F7F;&#x7528;&#x5B83;&#x7684;API&#x4E0E;OpenShifts&#x52A8;&#x6001;&#x914D;&#x7F6E;&#x5668;&#x4EA4;&#x4E92;&#xFF0C;&#x65E0;&#x9700;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x76F4;&#x63A5;&#x4E0E;&#x57FA;&#x7840;&#x67B6;&#x6784;&#x56E2;&#x961F;&#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#x3002;</p>
2017-10-19 18:37:05 +08:00
<p>o&#x8FD9;&#x5C31;&#x662F;&#x6211;&#x4EEC;&#x5982;&#x4F55;&#x5C06;&#x5B58;&#x50A8;&#x5E26;&#x5165;DevOps&#x4E16;&#x754C; - &#x65E0;&#x75DB;&#x82E6;&#xFF0C;&#x5E76;&#x5728;OpenShift PaaS&#x7CFB;&#x7EDF;&#x7684;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x5DE5;&#x5177;&#x4E2D;&#x76F4;&#x63A5;&#x63D0;&#x4F9B;&#x3002;</p>
<p>GlusterFS&#x548C;OpenShift&#x53EF;&#x8DE8;&#x8D8A;&#x6240;&#x6709;&#x73AF;&#x5883;&#xFF1A;&#x88F8;&#x673A;&#xFF0C;&#x865A;&#x62DF;&#x673A;&#xFF0C;&#x79C1;&#x6709;&#x548C;&#x516C;&#x5171;&#x4E91;&#xFF08;Azure&#xFF0C;Google Cloud&#xFF0C;AWS ...&#xFF09;&#xFF0C;&#x786E;&#x4FDD;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x53EF;&#x79FB;&#x690D;&#x6027;&#xFF0C;&#x5E76;&#x907F;&#x514D;&#x4E91;&#x4F9B;&#x5E94;&#x5546;&#x9501;&#x5B9A;&#x3002;</p>
<p>&#x795D;&#x4F60;&#x6109;&#x5FEB;&#x5728;&#x5BB9;&#x5668;&#x4E2D;&#x4F7F;&#x7528;GlusterFS&#xFF01;</p>
<p>(c) 2017 Keith Tenzer</p>
<p>&#x539F;&#x6587;&#x94FE;&#x63A5;&#xFF1A;<a href="https://keithtenzer.com/2017/03/24/storage-for-containers-using-gluster-part-ii/" target="_blank">https://keithtenzer.com/2017/03/24/storage-for-containers-using-gluster-part-ii/</a></p>
2018-02-06 14:16:27 +08:00
<footer class="page-footer"><span class="copyright">Copyright &#xA9; jimmysong.io 2017-2018 all right reserved&#xFF0C;powered by Gitbook</span><span class="footer-modification">Updated at
2018-07-03 15:57:56 +08:00
2017-11-15 21:43:07
2017-10-09 15:28:05 +08:00
</span></footer>
</section>
</div>
<div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
</div>
</div>
</div>
<a href="using-heketi-gluster-for-persistent-storage.html" class="navigation navigation-prev " aria-label="Previous page: 使用Heketi作为kubernetes的持久存储GlusterFS的external provisioner">
<i class="fa fa-angle-left"></i>
</a>
2018-05-23 19:52:24 +08:00
<a href="glusterd-2.0.html" class="navigation navigation-next " aria-label="Next page: GlusterD-2.0">
<i class="fa fa-angle-right"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
2018-07-08 19:42:31 +08:00
gitbook.page.hasChanged({"page":{"title":"在OpenShift中使用GlusterFS做持久化存储","level":"5.6.1.3","depth":3,"next":{"title":"GlusterD-2.0","level":"5.6.2","depth":2,"path":"practice/glusterd-2.0.md","ref":"practice/glusterd-2.0.md","articles":[]},"previous":{"title":"使用Heketi作为kubernetes的持久存储GlusterFS的external provisioner","level":"5.6.1.2","depth":3,"path":"practice/using-heketi-gluster-for-persistent-storage.md","ref":"practice/using-heketi-gluster-for-persistent-storage.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"],"styles":{"ebook":"styles/ebook.css","epub":"styles/epub.css","mobi":"styles/mobi.css","pdf":"styles/pdf.css","print":"styles/print.css","website":"styles/website.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"Copyright © jimmysong.io 2017-2018","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"},"page-toc-button":{},"back-to-top-button":{},"prism-themes":{},"github-buttons":{"repo":"rootsongjc/kubernetes-handbook","types":["star"],"size":"small"},"3-ba":{"configuration":"auto","token":"11f7d254cfa4e0ca44b175c66d379ecc"},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"showLevel":true,"styles":{"ebook":"styles/ebook.css","epub":"styles/epub.css","mobi":"styles/mobi.css","pdf":"styles/pdf.css","print":"styles/print.css","website":"styles/website.css"}},"search-plus":{},"image-captions":{"caption":"图片 - _CAPTION_","variable_name":"_pictures"}},"theme":"default","author":"Jimmy Song","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"_pictures":[{"backlink":"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":"图片 - _CAPTION_","label":"Stargazers over time","attributes":{},"skip":false,"key":"1.1.1"},{"backlink":"cloud-native/cncf.html#fig1.2.1","level":"1.2","list_caption":"Figure: CNCF landscape","alt":"CNCF landscape","nro":2,"url":"https://github.com/cncf/landscape/raw/master/landscape/CloudNativeLandscape_latest.png","index":1,"caption_template":"图片 - _CAPTION_","label":"CNCF landscape","attributes":{},"skip":false,"key":"1.2.1"},{"backlink":"cloud-native/cncf.html#fig1.2.2","level":"1.2","list_caption":"Figure: CNCF项目成熟度级别","alt":"CNCF项目成熟度级别","nro":3,"url":"../images/cncf-graduation-criteria.jpg","index":2,"caption_template":"图片 - _CAPTION_","label":"CNCF项目成熟度级别","attributes":{},"skip":false,"key":"1.2.2"},{"backlink":"cloud-native/play-with-kubernetes.html#fig2.2.1","level":"2.2","list_caption":"Figure: Play with Kubernetes网页截图","alt":"Play with Kubernetes网页截图","nro":4,"url":"../images/play-with-kubernetes.jpg","index":1,"caption_template":"图片 - _CAPTION_","label":"Play with Kubernetes网页截图","attributes":{},"skip":false,"key":"2.2.1"},{"backlink":"cloud-native/clo
});
</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>
2017-09-19 21:38:03 +08:00
<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>
2017-10-09 15:28:05 +08:00
<script src="../gitbook/gitbook-plugin-github-buttons/plugin.js"></script>
2017-10-11 18:13:13 +08:00
<script src="../gitbook/gitbook-plugin-3-ba/plugin.js"></script>
<script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
<script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
</body>
</html>