-
Notifications
You must be signed in to change notification settings - Fork 0
/
kubernetesxi-lie-yi.html
275 lines (235 loc) · 14.8 KB
/
kubernetesxi-lie-yi.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="CatsAction" />
<meta property="og:type" content="article" />
<meta name="twitter:card" content="summary">
<meta name="keywords" content="k8s, docker, Kubernetes, " />
<meta property="og:title" content="Kubernetes系列一 - 原理和基本概念"/>
<meta property="og:url" content="./kubernetesxi-lie-yi.html" />
<meta property="og:description" content="Kubernetes 是一个跨主机集群的,开源的容器调度平台。它可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。 使用 Kubernetes,您可以快速高效地响应客户需求。 Kubernetes 特点 便携式,可扩展,自修复 服务发现和负载均衡 方便挂载外部存储 支持自检和调试 应用健康检测 Kubernetes 组成结构 Master Master 节点是整个集群控制的中心。负责集群的调度和 Pod 添加等事件的处理。Master 可以运行在集群中的任何一台机器上,但通常做法只在同一台机器启动 Master,而且这台机器专职运行 Master,而不运行用户容器。 kube-apiserver,是控制中心开放的 API,Kubernetes 里资源操控和集群控制的入口进程。 etcd,是 Kubernetes 的后端存储系统,所有数据都存储在这里。 kube-scheduler 负责基于各种软硬件资源需求调度 Pod。 cloud-controller-manager,用于与底层云提供商交互的控制器。 Node Node …" />
<meta property="og:site_name" content="CatsAction's blog" />
<meta property="og:article:author" content="CatsAction" />
<meta property="og:article:published_time" content="2019-02-03T00:00:00+08:00" />
<meta name="twitter:title" content="Kubernetes系列一 - 原理和基本概念">
<meta name="twitter:description" content="Kubernetes 是一个跨主机集群的,开源的容器调度平台。它可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。 使用 Kubernetes,您可以快速高效地响应客户需求。 Kubernetes 特点 便携式,可扩展,自修复 服务发现和负载均衡 方便挂载外部存储 支持自检和调试 应用健康检测 Kubernetes 组成结构 Master Master 节点是整个集群控制的中心。负责集群的调度和 Pod 添加等事件的处理。Master 可以运行在集群中的任何一台机器上,但通常做法只在同一台机器启动 Master,而且这台机器专职运行 Master,而不运行用户容器。 kube-apiserver,是控制中心开放的 API,Kubernetes 里资源操控和集群控制的入口进程。 etcd,是 Kubernetes 的后端存储系统,所有数据都存储在这里。 kube-scheduler 负责基于各种软硬件资源需求调度 Pod。 cloud-controller-manager,用于与底层云提供商交互的控制器。 Node Node …">
<title>Kubernetes系列一 - 原理和基本概念 ·
CatsAction's blog
</title>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="icon" type="image/x-icon" href="./theme/image/logo.ico" />
<link rel="stylesheet" type="text/css" href="./theme/css/elegant.prod.css" media="screen">
<link rel="stylesheet" type="text/css" href="./theme/css/custom.css" media="screen">
</head>
<body>
<div id="content">
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container-fluid">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="./"><span class=site-name>CatsAction's blog</span></a>
<div class="nav-collapse collapse">
<ul class="nav pull-right top-menu">
<li >
<a href=
.
>Home</a>
</li>
<li ><a href="./categories.html">Categories</a></li>
<li ><a href="./tags.html">Tags</a></li>
<li ><a href="./archives.html">Archives</a></li>
<li><form class="navbar-search" action="./search.html" onsubmit="return validateForm(this.elements['q'].value);"> <input type="text" class="search-query" placeholder="Search" name="q" id="tipue_search_input"></form></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span1"></div>
<div class="span10">
<article itemscope>
<div class="row-fluid">
<header class="page-header span10 offset2">
<h1>
<a href="./kubernetesxi-lie-yi.html">
Kubernetes系列一
<small class="subtitle">
原理和基本概念
</small>
</a>
</h1>
</header>
</div>
<div class="row-fluid">
<div class="span8 offset2 article-content">
<p>Kubernetes 是一个跨主机集群的,开源的容器调度平台。它可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。
使用 Kubernetes,您可以快速高效地响应客户需求。</p>
<h4>Kubernetes 特点</h4>
<ul>
<li>便携式,可扩展,自修复</li>
<li>服务发现和负载均衡</li>
<li>方便挂载外部存储</li>
<li>支持自检和调试</li>
<li>应用健康检测</li>
</ul>
<h4>Kubernetes 组成结构</h4>
<p><img alt="Kubernetes内部结构" src="./images/components-of-kubernetes.png"></p>
<h5>Master</h5>
<p>Master 节点是整个集群控制的中心。负责集群的调度和 Pod 添加等事件的处理。Master 可以运行在集群中的任何一台机器上,但通常做法只在同一台机器启动 Master,而且这台机器专职运行 Master,而不运行用户容器。</p>
<blockquote>
<ul>
<li>kube-apiserver,是控制中心开放的 API,Kubernetes 里资源操控和集群控制的入口进程。</li>
<li>etcd,是 Kubernetes 的后端存储系统,所有数据都存储在这里。</li>
<li>kube-scheduler 负责基于各种软硬件资源需求调度 Pod。</li>
<li>cloud-controller-manager,用于与底层云提供商交互的控制器。</li>
</ul>
</blockquote>
<h5>Node</h5>
<p>Node 节点维护运行的 Pod 并提供 Kubernetes 运行时环境。</p>
<blockquote>
<ul>
<li>kubelet,Node 节点的代理,负责容器创建、暂停等任务。提供各种机制保证容器运行和健康检测。</li>
<li>kube-proxy,Kubernetes service 的通信与负载均衡机制的重要组件。</li>
</ul>
</blockquote>
<h4>Kubernetes业务概念</h4>
<h5>Pods</h5>
<p>最小部署单元,可包含多个容器,是连接在一起的容器组合并共享 Volume。它们是最小的部署单元,由 Kubernetes 统一创建、调度、管理。Pods是可以直接创建的,但推荐的做法是使用 Replication Controller,即使是创建一个 Pod。
<img alt="pods" src="./images/k8s_pod.svg"></p>
<h5>Labels</h5>
<p>Label 以 key/value 形式附加到 Pos、Service、RC、Node 等上面,每个对象可以定义多个 label,以提供 Label Selector 来选择对象。</p>
<h5>Replication Controller</h5>
<p>管理 Pods 的生命周期。它们确保指定数量的 Pods 会一直运行,还有实现资源伸缩。</p>
<h5>Deployment</h5>
<p>1.2引入,为了更好地解决 pod 的编排问题,内部使用了 Replica Set 实现;它相对于RC的最大的升级是可以随时知道当前Pod部署的进度。</p>
<h5>Horizontal Pod Autocaler(HPA)</h5>
<p>Pod 横向自动扩容,通过追踪分析 RC 控制的所有目标 Pod 的负载变化情况,确定是否需要针对性地调整目标 Pod 的副本数。</p>
<h5>Services</h5>
<p>抽象服务出口。它就像一个基础版本的负载均衡器。</p>
<h5>Volume</h5>
<p>Pod 中能够被多个容器访问的共享目录,其生命周期与Pod相同跟容器无关。</p>
<h4>Annotation</h4>
<p>与 Lable 类似,也使用 key/value 键值对的形式定义,不同于 Lable 定义 Kubernetes 的元数据,它是用户任意定义的附加信息,以便于外部工具进行查找。</p>
<hr />
<aside>
<nav>
<ul class="articles-timeline">
<li class="previous-article">« <a href="./dockerxi-lie-er.html"
title="Previous: Docker系列(二) - 技术原理(UnionFS,Namespace,Cgroup)">Docker系列(二) <small class="subtitle">技术原理(UnionFS,Namespace,Cgroup)</small></a></li>
<li class="next-article"><a href="./dockerxi-lie-san.html"
title="Next: Docker系列(三) - 网络模式">Docker系列(三) <small class="subtitle">网络模式</small></a> »</li>
</ul>
</nav>
</aside>
</div>
<section id="article-sidebar" class="span2">
<h4>Published</h4>
<time itemprop="dateCreated" datetime="2019-02-03T00:00:00+08:00"> 2
3, 2019</time>
<!---->
<h4>Category</h4>
<a class="category-link"
href="./categories.html#kubernetes-ref">Kubernetes</a>
<h4>Tags</h4>
<ul class="list-of-tags tags-in-article">
<li><a href="./tags.html#docker-ref">docker
<span>6</span>
</a></li>
<li><a href="./tags.html#k8s-ref">k8s
<span>1</span>
</a></li>
</ul>
<h4>Stay in Touch</h4>
<div id="sidebar-social-link">
<a href="mailto:[email protected]" title="My Email Address" target="_blank" rel="nofollow noopener noreferrer">
<svg xmlns="http://www.w3.org/2000/svg" aria-label="Mail" role="img" viewBox="0 0 512 512"><rect width="512" height="512" rx="15%" fill="#328cff"/><path d="m250 186c-46 0-69 35-69 74 0 44 29 72 68 72 43 0 73-32 73-75 0-44-34-71-72-71zm-1-37c30 0 57 13 77 33 0-22 35-22 35 1v150c-1 10 10 16 16 9 25-25 54-128-14-187-64-56-149-47-195-15-48 33-79 107-49 175 33 76 126 99 182 76 28-12 41 26 12 39-45 19-168 17-225-82-38-68-36-185 67-248 78-46 182-33 244 32 66 69 62 197-2 246-28 23-71 1-71-32v-11c-20 20-47 32-77 32-57 0-108-51-108-108 0-58 51-110 108-110" fill="#fff"/></svg>
</a>
<a href="https://github.com/boyaziqi" title="catsaction Github Repository" target="_blank" rel="nofollow noopener noreferrer">
<svg xmlns="http://www.w3.org/2000/svg" aria-label="GitHub" role="img" viewBox="0 0 512 512"><rect width="512" height="512" rx="15%" fill="#1B1817"/><path fill="#fff" d="M335 499c14 0 12 17 12 17H165s-2-17 12-17c13 0 16-6 16-12l-1-50c-71 16-86-28-86-28-12-30-28-37-28-37-24-16 1-16 1-16 26 2 40 26 40 26 22 39 59 28 74 22 2-17 9-28 16-35-57-6-116-28-116-126 0-28 10-51 26-69-3-6-11-32 3-67 0 0 21-7 70 26 42-12 86-12 128 0 49-33 70-26 70-26 14 35 6 61 3 67 16 18 26 41 26 69 0 98-60 120-117 126 10 8 18 24 18 48l-1 70c0 6 3 12 16 12z"/></svg>
</a>
<a href="https://www.linkedin.com/feed/" title="My LinkedIn" target="_blank" rel="nofollow noopener noreferrer">
<svg xmlns="http://www.w3.org/2000/svg" aria-label="LinkedIn" role="img" viewBox="0 0 512 512" fill="#fff"><rect width="512" height="512" rx="15%" fill="#0077b5"/><circle cx="142" cy="138" r="37"/><path stroke="#fff" stroke-width="66" d="M244 194v198M142 194v198"/><path d="M276 282c0-20 13-40 36-40 24 0 33 18 33 45v105h66V279c0-61-32-89-76-89-34 0-51 19-59 32"/></svg>
</a>
</div>
<h4>Friendship Links</h4>
<ul class="list-of-tags tags-in-article">
<li>
<a href="https://leetcode-cn.com/" title="力扣中国站点" target="_blank" rel="nofollow noopener noreferrer">
LeetCode
</a>
</li>
<li>
<a href="https://coolshell.cn/about" title="陈皓酷壳" target="_blank" rel="nofollow noopener noreferrer">
CoolShell
</a>
</li>
<li>
<a href="https://yikun.github.io/" title="姜毅坤博客" target="_blank" rel="nofollow noopener noreferrer">
Yikun
</a>
</li>
<li>
<a href="https://www.nowcoder.com/" title="牛客网" target="_blank" rel="nofollow noopener noreferrer">
牛客网
</a>
</li>
</ul>
</section>
</div>
</article>
</div>
<div class="span1"></div>
</div>
</div>
</div>
<footer>
<div>
<span class="site-name">CatsAction's blog</span> - It's a wonderful world
</div>
<div id="fpowered">
Powered by: <a href="http://getpelican.com/" title="Pelican Home Page" target="_blank" rel="nofollow noopener noreferrer">Pelican</a>
Theme: <a href="https://elegant.oncrashreboot.com/" title="Theme Elegant Home Page" target="_blank" rel="nofollow noopener noreferrer">Elegant</a>
</div>
</footer> <script src="//code.jquery.com/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script>
function validateForm(query)
{
return (query.length > 0);
}
</script>
<script>
(function () {
if (window.location.hash.match(/^#comment-\d+$/)) {
$('#comment_thread').collapse('show');
}
})();
window.onhashchange=function(){
if (window.location.hash.match(/^#comment-\d+$/))
window.location.reload(true);
}
$('#comment_thread').on('shown', function () {
var link = document.getElementById('comment-accordion-toggle');
var old_innerHTML = link.innerHTML;
$(link).fadeOut(200, function() {
$(this).text('Click here to hide comments').fadeIn(200);
});
$('#comment_thread').on('hidden', function () {
$(link).fadeOut(200, function() {
$(this).text(old_innerHTML).fadeIn(200);
});
})
})
</script>
</body>
<!-- Theme: Elegant built for Pelican
License : MIT -->
</html>