《Kubernetes权威指南第2版》学习(四)kubernetes基本概念和术语
1: etcd是干什么的:
键-值存储仓库,用来配置共享和服务发现。
k8s把Node, pod,replication controller, Services看做是资源对象,这些资源对象可以通过K8s提供的kubectl工具进行增、删、改、查等操作将其保存在etcd中持久化存储。K8s相当于一个自动化的资源控制系统,通过跟踪对比etcd库里保存的‘资源期望状态’和“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。
2:Master:
k8s的集群控制节点,K8s所有控制命令都发给它,它负责具体的执行过程,它一般单独运行在服务器上,是集群的首脑(是否会出现单点故障?)
上面运行的关键进程:
A: Kubernetes API Server(Kube-apiserver): 提供HTTP Rest接口的关键服务进程,是K8s里所 有资源的增、删、改、查等操作的唯一入口,也是集群控制入口进程。
B:Kubernetes Controlle manager(Kube-controller-manager), Kubernetes里所有资源对象的自动化中心,资源对象的 大总管。
C: Kubernetes Scheduler(kube-scheduler), 负责资源调度(Pod调度)。
D: etcd Server进程: 资源兑现更多数据保存在etcd中。
3:Node(nodes之间可以看做是多个备份)
除了Master, 其他机器(物理机或虚拟机)称为Node节点。
Node节点是K8s集群中的负载节点,每个Node都会被Master分配一些工作负载(Docker容器)。当某个Node宕机,其上的工作负载会被转到其他节点上。
Node节点上都运行以下一组关键进程:
A:kubelet: 负责Pod对应容器的创建、启动暂停等任务,同时与Master节点密切协作,实现集群管理的基本功能。
B: kube-proxy: 实现K8s service的通信与负载均衡机制的重要组件
C: Docker Engin(docker): Docker引擎,负责本机的容器创建和管理。
Node节点可以在运行期间动态增加到K8s集群,默认情况下kubele会向Master注册自己,
一旦Node被纳入集群管理范围,kubelet进程会定时向Master节点汇报自身情况。比如,OS,Docker版本,CPU和内存情况。这样master可以获知每个node资源使用情况,并实现高效的负载均衡。
查看nodes:
# kubectl get nodes
查看nodes详细信息:
# kubectl describe node kubernetes-minionl
Node基本信息: 名称、标签、创建时间。
Node当前运行状态: 磁盘是否满了,
Node的主机地址和主机名。
Node上资源总量、可分配资源量:
主机系统信息
当前正在运行的Pod列表概要信息。
4 Pod
Pod是K8s的最重要也是最基本的概念。每个Pod有一个特殊的被称为“根容器”的Pause容器和若干个业务容器。
为什么K8s会设计Pod概念并且有这样特殊的组成结构?
A: Pause作为Pod根容器,以他的状态代表整个容器组的状态。
B:Pod里多个业务容器共享Pause容器的IP,共享Pause容器挂载的Volume.

K8S里的所有资源都是可以用yaml和json定义的,Pod的定义如下:


Kind: Pod: 表明是一个POd;
Metadata.name: Pod的名字;
Spec: 定义Pod中包含的容器组。
此外还有环境变量。
#kubectl describe pod XXX
诊断问题的命令。
一下可以定义CPU、memory等的配置和限额。

4 Label标签
Label是Key=value键值对。
Label可以附加到各种资源上,例如Node, Pod, Service, RC等。
Label + Label selector共同构成K8S中最核心的应用模型,使得被管理对象精确的分组管理。
5 Replication Controller(RC)
声明某种Pod的副本数量在任意时刻都符合预期值。

当我们定义了一个RC并提交到K8s集群后,Master节点上的Controller Manager组件得到通知,定期巡检Pod的副本你数量,保证和预期的一样多。通过RC,K8s实现用户应用集群的高可用性。
通过下面命令来实现Pod的动态缩放:
# kubectl scale rc redis-slave --replicas = 3
滚动升级(Rolling Update): K8S很容易实现这种滚动升级。
6 Service(服务)
K8S里每个service其实就是一个“微服务”,

service定义了一个服务的访问入口地址,前端应用通过这个入口地址访问其背后的由Pod组成的集群实例。Service与其后端的Pod集群通过Label Selector实现“无缝对接”。
客户端如何访问后端服务?
一般的作坊式部署一个负载均衡器,为这组Pod开启一个对外的服务端口如8000,并且将这些Pod的Endpoint列表加入8000端口的转发列表,负载均衡器通过一定的算法实现转发。
K8s的做法与上述类似:运行在每个Node上的kube-proxy进程其实就是一个智能的软件负载均衡器,负责把对Service的
请求转发到后端的某个Pod实例上。

创建service:
# kubectl create -f tomcat-server.yaml
《Kubernetes权威指南第2版》学习(四)kubernetes基本概念和术语的更多相关文章
- javascript权威指南第6版学习笔记
javascript权威指南第6版学习笔记 javascript数组.函数是特殊对象 看一点少一点. 3.1.4 hello.js内容是 var x=.3-.2;var y=.2-.1 console ...
- 《Kubernetes权威指南第2版》学习(一) Kubernetes是什么
1.1 Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案.是谷歌的Borg(大规模集群管理系统)的一个开源版本. 其次,如果系统设计遵循了Kubernetes的设计思 ...
- 《Kubernetes权威指南第2版》学习(三)RC学习
1 RC文件介绍: kind: ReplicationController,表示是一个RC: spec.selector: RC的Pod标签(Label)选择器,监控和管理拥有这些标签的Pod实例, ...
- 《Kubernetes权威指南第2版》学习(二)一个简单的例子
1: 安装VirtualBox, 并下载CentOS-7-x86_64-DVD-1708.iso, 安装centOS7,具体过程可以百度. 2:开启centOS的SSH, 步骤如下: (1) yum ...
- javascript权威指南第六版学习
第二章 语法结构 2.1 字符集 什么是字符集?各种字符集什么关系?unicode,utf-8是什么关系? 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等 ...
- 第六章 对象-javaScript权威指南第六版(四)
6.6 属性getter和setter 对象属性是由名字.值和一组特性(attribute)构成的. getter和setter定义的属性称做"存取器属性"(accessor pr ...
- 《JavaScript权威指南(第6版)(中文版)》PDF
简介自1996年以来,JavaScript的:权威指南已为JavaScript圣经程序员,程序员指南和全面的参考,以核心语言和客户端JavaScript API的Web浏览器定义.第6版包括HTML5 ...
- HTML 5与CSS 3权威指南(第2版·上册) 中文pdf扫描版
HTML5与CSS3权威指南(第2版·上册)已经成为HTML 5与CSS 3图书领域的一个标杆,被读者誉为“系统学习HTML 5与CSS 3技术的最佳指导参考书之一”和“Web前端工程师案头必备图书之 ...
- Web性能权威指南 PDF扫描版
Web性能权威指南是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物.<Web性能权威指南>目标是涵盖Web开发者技术体系中应该掌握的所有网络及性能优化知识.全书 ...
随机推荐
- GTK+重拾--07 GTK+中的事件
(一):写在前面 在这一个小节中,我们主要是学习GTK+2.0中最重要的部分.就是信号和事件.GTK+函数工具库是基于"事件"系统的.全部的GUI应用都是基于"事件&qu ...
- Bootstrap学习4--Table样式(转载:https://blog.csdn.net/Fanbin168/article/details/53208869)
备注:最新Bootstrap手册:http://www.jqhtml.com/bootstraps-syntaxhigh/index.html 将<table>标签添加class=‘tab ...
- rails 运维常用命令
创建生产环境数据库并执行迁移 $ RAILS_ENV=production rake db:create$ RAILS_ENV=production rake db:migrate RAILS_ENV ...
- spring mvc 中Uploadify插件的使用
具体过程不写了,直接上代码 jsp代码 $("#uplodefile").uploadify({ 'swf': '/statics/uploadify/uploadify.swf' ...
- 【四】MongoDB索引管理
一.索引介绍 在mongodb中,索引用来支持高效查询.如果没有索引,mongodb必须在整个集合中扫描每个文档来查找匹配的文档.但是如果建立合适的索引,mongodb就可以通过索引来限制检查的文档数 ...
- 剑指offer之 替换空格
package Problem4; public class ReplaceBank { /* * 题目描述: 请实现一个函数,将字符串的每个空格替换为"%20". * 例如输入& ...
- Hadoop- HDFS的API操作
1.引入依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...
- Spark- 求最受欢迎的TopN课程
数据库操作工具类 package com.rz.mobile_tag.utils import java.sql.{Connection, DriverManager, PreparedStateme ...
- Linux虚拟机桥接网络
1.虚拟机网络设置为“桥接” 2.查看本机IP.Gateway.DNS 3.vi /etc/sysconfig/network-scripts/ifcfg-eth0,ONBOOT=“NO”改为“YES ...
- 机器学习(十五)— Apriori算法、FP Growth算法
1.Apriori算法 Apriori算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做一些决策. Apriori算法采用了迭代的方法,先搜 ...