一、kubernetes简介

kubernetes的本质是一组服务器集群。它可以在每个节点上运行特定的程序,来对节点中的容器进行管理。目的是为了实现资源管理的自动化。

主要功能如下:

1、自我修复:一旦某个容器崩溃,会秒级启动一个新容器

2、弹性伸缩:可以根据业务需要,自动对集群中的容器数量进行伸缩调整

3、服务发现:服务可以通过自动发现的形式找到它所依赖的服务

4、负载均衡:如果一个服务启动了多个容器,能够自动的实现负载均衡

5、版本回退:如果发现新发布的程序版本有问题,可以立即回退到旧版本

6、存储编排:可以根据容器自身的需求自动创建存储卷

二、kubernetes组件

一个kubernetes集群主要是由控制节点(master)、工作节点(node)组成,每个节点上都会安装不同的组件

master:集群的控制平面,负责集群的管理

  apiserver:资源操作的唯一入口,接收用户输入的命令,提供认证授权、API注册和发现等机制

  schedule:负责集群的资源调度,按照预定的调度策略将pod调度到相应的node节点上

  controller-manager:负责维护集群的状态,如何程序部署安排、故障检测、自动扩展、滚动更新等

  etcd:负责存储集群中各种资源对象的信息

node:集群的数据平面,负责为容器提供运行环境

  kebelet:负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器

  kubeproxy:负责提供集群内部的服务发现和负载均衡

  docker:负责节点上容器的各种操作

以下,以部署一个nginx服务来说明kubernetes系统各个组件调用关系

1、首先要明确,一旦kubernetes环境启动之后,master和node节点都会将自身的信息存储到etcd数据库中

2、一个nginx服务的安装请求会首先被发送到master节点的apiserver

3、apiserver组件会调用schedule组件来决定到底把服务安装到哪个节点上(此时,这步会从etcd中读取各个node的信息,然后按照一定的算法进行选择,并将结果告诉apiserver)

4、apiserver调用controller-manager去调度node节点安装nginx服务

5、kubelet接收到apiserver的指令之后,会通知docker,然后由docker启动一个nginx的pod(pod是kubernetes的最小单元,容器必须跑在pod中)

6、至此,一个nginx服务就运行了,如果需要访问nginx,就需要kube-proxy来对pod产生访问的代理

三、kubernetes概念

master:集群控制节点,每个集群需要至少一个master节点负责集群的管控

node:工作负载节点,由master容器分配到这些node工作节点上,然后node节点上的docker负责容器的运行

pod:k8s最小的控制单元,容器都是运行在pod中的,一个pod中可以有1个或多个容器

controller:控制器,通过它来实现对pod的管理,比如启动pod,停止pod,伸缩pod等

service:pod对外服务的统一入口,service下可以维护同一类多个pod

label:标签,用于对pod进行分类,同一类pod会有相同的标签

namespace:命名空间,用来隔离pod的运行环境

1、kubernetes概念的更多相关文章

  1. Kubernetes 概念整理

    注:以下大部分内容来自网上摘录,以便后期查阅. Kubernetes (通常称为 K8s) 是用于自动部署.扩展和管理容器化(containerized)应用程序的开源系统,是 Google 内部工具 ...

  2. Kubernetes概念介绍和v1版本部署过程

    简介: k8s一个开源的,跨主机管理容器应用集群的编排系统,为应用提供了基础的部署.维护和扩缩容机制. 编排:跨Docker主机同一管理容器集群. 目的 简化开发和运维容器集群的工作. 让开发和运维能 ...

  3. Kubernetes概念之deployment

    一整天一整天的坐在办公室,真的很~~~,懵圈中....,求解救. 本文通过<Kubernetes权威指南>的概念部分学习总结 Deployment作用 Deployment与RC的作用其实 ...

  4. Kubernetes概念之RC

    感觉自己浪费了一年的时间,种一棵树最好的时间是十年前,还有就是现在,虽然这颗树种了又种,种了又种,这次真的要种了......   本文通过<Kubernetes权威指南>的概念部分学习总结 ...

  5. Kubernetes概念之mater、node

    很久没写博客了,终于把重心找回来了,不过没有以前有斗志.有理想.有目标了.慢慢来.你若问我我最近几年的规划是什么,还真不知道.突然发现摧毁一个人真的很简单.k8s也是一遍一遍的从入门到放弃,还是要好好 ...

  6. 二、Kubernetes 概念介绍

    一.Master ​ Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它负责具体的 ...

  7. kubernetes概念

    kubernetes blog cluster cluster是计算.存储.和网络资源的集合,kubernetes利用这些资源运行各种基于容器的应用. master master是cluster的大脑 ...

  8. Kubernetes概念及核心对象

    想学习更多相关知识请看博主的个人博客地址:https://blog.huli.com/ https://blog.huli.com/ 1.kubernetes快速入门 Kubernetes 集群将所有 ...

  9. Kubeadm 安装部署 Kubernetes 集群

    阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Heapster 插件 后记 相关文章:Ku ...

  10. 三小时学会Kubernetes:容器编排详细指南

    三小时学会Kubernetes:容器编排详细指南 如果谁都可以在三个小时内学会Kubernetes,银行为何要为这么简单的东西付一大笔钱? 如果你心存疑虑,我建议你不妨跟着我试一试!在完成本文的学习后 ...

随机推荐

  1. Linux命令之nc命令

    1.简介 nc是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉.nc命令在linux系统中实际命令是ncat,nc是软连接到ncat.nc命令的主要作用如下: 实现任意TCP/ ...

  2. python中的异常类

  3. SpringBoot - Lombok使用详解2(@Setter、@Getter、@ToString、@EqualsAndHashCode)

    四.Lombok 注解详解(2) 1,@Setter 和 @Getter (1)这两个注解用于生成 setter 和 getter 方法,可以用在类或者属性上: 如果用在属性上:则只为该属性提供 se ...

  4. antv g6 出现 n.addEdge is not a function问题

    问题描述直接上图 解决方式就是将edge里面边的source和target对应的id换成字符串类型就行. 例如: edges: [ { id: 299, source": 3629.toSt ...

  5. Python笔记(1)——字符串(Python编程:从入门到实践)

    字符串 一.使用方法修改字符串大小写 1. 方法:变量.tittle():首字母大学显示字符串中的每个英文单词 2. 方法:变量.upper():字符串全改为大写 3. 方法:变量.lower():将 ...

  6. 全面加速 GitHub,git clone 太慢的 9 种解决办法

    https://cloud.tencent.com/developer/article/1835785

  7. 电脑日常维护技巧(windows系统)

    一.磁盘检测 cmd-->chkdsk 二.磁盘修复 cmd-->sfc/scannow 三.删除缓存文件 运行-->%temp%

  8. Cmake 把 CGAL的demo 编译生成 .sln文件 遇到的一些问题

    尝试了N个版本后,选择了CGAL5.02 为啥去官网或者github下载的CGAl只是一个库,没有窗口,而这个却有呢   链接:https://pan.baidu.com/s/1TvrWQRc9yYD ...

  9. 论C语言数组

    一维数组  对于一个一维数组a[10]来说  它对储存空间的申请可以看成是这样的  数组名a就代表着首元素a[0]的地址,也很容易看出a+5是元素a[5]的地址. 二维数组  对于一个二维数组a[3] ...

  10. python 调试 qml

    1.设置pycharm的parameters -qmljsdebugger=port:10002,block 2.python 启动调试: 点击debug按钮 3.设置qt creater qt cr ...