Kubernetes基本概念和术语(1)_kubernetes基础名词

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

1.1 Master

Kubernetes 里的 Master 指的是集群控制节点每个Kubernetes 集群里需要有一个 Master节点来负责整个集群的管理和控制,基本上 Kubernetes 的所有控制命令都发给它,它来负责具体的执行过程,我们后面执行的所有命令基本都是在 Master 节点上运行的。

Master 点上运行着以下一组关键进程:

  • Kubernetes API Server ( kube iserver 提供了 HTTP Rest接口的关键服务进程,是Kubernetes 里所有资源的增、删、改、 查等操作的唯一入口,也是集群控制的入口进程;
  • Kubernetes Controller Manager ( kube-controller-manager): Kubernetes 里所有资源对象的自动化控制中心,可以理解为资源对象的“大总管”;
  • Kubernetes Scheduler(kube-scheduler ): 负责资源调度( Pod 调度〉的进程,相当于公交公司的“调度室;
  • 另外,在 Master 节点上还需要启动一个 etcd 服务,因为‘ Kubernete 里的所有资源对象的数据全部是保存在 etcd 中的。

1.2 Node节点

Node 节点可以是一台物理主机,也可以是一台虚拟机。 Node 节点才是Kubernetes 集群中的工作负载节点。每个 Node 会被 Master 分配一些工作负载( Docker容器),当某个 Node 岩机时,其上的工作负载会被 Master 自动转移到其他节点上去。

每个 Node 节点上都运行着 以下一组关键进程。

  • kubelet :负责Pod 容器的创建、启停等任务,同时与 Master 节点密切协作,现集群管理的基本功能;
  • kube-proxy 实现 Kubernetes Service 的通信与负载均衡机制的重要组件;
  • Docker Engine ( docker) : Docker引擎,负责本机的容器创建和管理工作。

上述命令展示了 Node 的如下关键信息。

  • Node 基本信息、名称、标签、创建时间等;
  • Node 前的运行 Node 启动以后会 系列的自检工作,比如磁盘是否满了,如果满了就标注OutOIDisk=True,否则继续检查内存是否不足(如果内存不足,就标注Memo Pressure True 最后一 正常 就设置为 Ready状态(Ready=True ),该状态表Node处于健康状态, Master 将可以在其上调度新任务了(如启动 Pod );
  • Node 机地址与主机名;
  • Node 资源总量 Node 可用 系统资源 包括 CPU、内存数量、最大可调度Pod 数量等,注意 目前 Kubemetes 经实验性支持 GPU 资源分配了( alpha.kubemetes. io/nvidia-gpu=0 );
  • Node 可分配资源量:描述 Node 可用于分配的资源量。
  • 主机系统信息:包括主机的唯一标 UUID Linux kernel 版本号、操作系统类型与版本、Kubemetes 版本号 kubelet kube-proxy 的版本号等;
  • 当前正在运行的 Pod 列表概要信息;
  • 己分配的资源使用概要信息,例如资源申请的最低、最大允许使用量占系统总量的百分比;
  • Node 相关的 Event 信息。

1.3 Pod

每个 Pod 都有一个特殊的被称为“根容器”的 Pause 容器 Pause 容器对应的镜像属于 Kubemetes平台的一部分,除了 Pause 容器,每个 Pod 还包含一个或多个紧密相关的用户业务容器。
在这里插入图片描述
Kubemetes 会设计出一个全新的 Pod 的概念并且 Pod 有这样特殊的组成结构,有以下原因:

  • 在 组容器作为一个单元的情况下,我们难以对“整体”简单地进行判断及有效地进行行动。
  • Pod 里的多个业务容器共享 Pause 容器的 ,共享 Pause 容器挂接的 Volume,这样既简化了密切关联的业务容器之间的通信问题,也很好地解决了它们之间的文件共享问题。

Pod IP概念
Kubemetes 为每个 Pod 都分配了唯一地址,称之为 Pod IP,一个 Pod 里的多个容器共享Pod 地址 Kubernetes 要求底层网络支持集群内任意两个 Pod 之间的 TCP/IP 直接通信,这通常采用虚拟 层网络技术来实现,例如 Flannel Open vSwitch 等。

Pod 其实有两种类型:普通的 Pod 及静态 Pod (Static Pod )
在默认情况下,当 Pod 里的某个容器停止时Kubernetes 会自动检测到这个问题并且重新启动这 Pod (重启 Pod 里的所有容器),如 Pod所在的 Node 岩机,则会将这个 Node 上的所有 Pod 重新调度到其他节点上。 Pod 、容器与 Node的关系如图。
在这里插入图片描述
myweb 的Pod 资源定义文件:

apiVersion : vl 
kind: Pod 
metadata: 
  name: myweb 
  labels: 
   name: myweb 
spec : 
 containers : 
 - name: myweb 
   image: kubeguide/tomcat-app:vl 
   ports : 
 - containerPort : 8080 
   env: 
 - name: MYSQL SERVICE HOST 
     value : 'mysql'
 - name: MYSQL SERVICE PORT 
     value : '3306'

  • Kind:Pod 表明这是一个 Pod 的定义
  • metadata里的 name 属性为 Pod 的名字, metadata
    里还能定义资源对象的标签( Label ),这里声明myweb拥有一个 name=myweb 的标签( Label )。

Pod 里所包含的容器组的定义则在 spec 一节中声明,这里定义了一个名字为 myweb、对应镜像为kubeguide/tomcat-app:v1的容器,该容器注入了名为 MYSQL_SERVICE_ HOST='mysql’和MYSQL _SERVICE _PORT=’3306’的环境变 env 关键字),并且在 8080 端口 containerPort) 上启动容器进程。

Pod的IP加上这里的容器端口(containerPort ),就组成了一个新的概念—— Endpoint ,它代表着此 Pod 里的一个服务进程的对外通信地址。

一个 Pod 也存在着具有多个Endpoint 的情况,比如当我们把 Tomcat 定义为一个 Pod 时,可以对外暴露管理端口与服务端口这两个 Endpoint。

Pod及Pod 周边对象的示意图:
在这里插入图片描述

Kubernetes 里, 个计算资源进行配额限定需要设定以下两个参数:

  • Requests :该资源的最小申请量,系统必须满足要求。
  • Limits :该资源最大允许使用的量,不能被突破,当容器试图使用超过这个量的资源时,可能会被 Kubernetes Kill 并重启。

从下面的yaml部分配置可以看出MySQL容器申请最少0.25 CPU 64M内存,在运行过程中 MySQL 容器所能使用的资源配额为0.5 CPU 128M内存:

spec: 
 containers: 
 - name: db 
   image : mysql 
   resources : 
    requests: 
     memory : '64M' 
     cpu : '250m' 
    limits: 


![](https://i-blog.csdnimg.cn/blog_migrate/67a7ab1cb477ab52f92c8bd2c7ebcbdf.png)


最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://i-blog.csdnimg.cn/blog_migrate/9e13e8a2c79262a0a58eada81c722347.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://i-blog.csdnimg.cn/blog_migrate/c34b503f3271f358bf4e505ee0f59484.jpeg)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值