前言

从上个月,因工作需要外加兴趣所知,博主开始学习Kubernetes,时至今日可以说是刚刚入门。独自学不如一起学,后面博主会一边学着一边将学习内容以博文的形式呈现出来,希望能跟各位园友有问题一起讨论,在不断的交流中互补有无,一起学习进步。本系列取名【傲视Kubernetes】,要的就是这股气势,力争把它学好学精。闲话少叙,下面开始傲视Kubernetes之旅。

目标:

1、Kubernetes是什么?为什么要用Kubernetes?

2、Kubernetes和Docker的关系

3、Kubernetes的架构

正文

1、Kubernetes是什么?为什么要用Kubernetes?

相信干过开发的园友们都能感受到近年来微服务化的流行,不管是求职面试时,还是公众号朋友圈各种打广告的培训班,都会提到微服务的相关东西。而随着越来越多单体项目的微服务化,以及大项目的微服务拆分,需要有一个应用可以针对数量众多的微服务进行自动调度、配置、监管和故障处理,而这就是Kubernetes的定位。

且看一下官网对Kubernetes的定义:Kubernetes is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications.

可以看出来,它是一个开源的容器编排引擎,这个引擎可以自动部署、伸缩和管理容器化应用。大体上跟咱上面总结的大差不差。

说完了Kubernetes是什么,再来看它的优势是什么?为什么要用它呢?

1)、简化应用程序部署:即你不需要关注你的应用部署在了哪台机器上,Kubernetes会自动给你准备好需要的计算资源和存储资源。并且只要集群搭建的方式一样,它也可以保证开发测试生产环境的一致性。

2)、更好的利用硬件:Kubernetes在给应用分配运行节点时,会自动匹配最优的节点,提高资源利用率。

3)、健康检查和自修复:Kubernetes会监控你应用运行的节点的状态,当它出现故障时,会重新调度其他节点补上,无需人工参与。

4)、自动扩容:可以让Kubernetes根据应用程序的负载情况自动做出反应,比如增加节点或减少节点。

 2、Kubernetes和Docker的关系

说它们关系之前,首先要提一下Docker是什么。

Docker是一个打包、分发和运行应用程序的容器平台。容器相当于一种轻量级的虚拟机。虚拟机是在宿主机的基础上又重新创建了一套自己的操作系统,虚拟机中的进程运行在这个虚拟出来的操作系统上。而容器则作为一个进程仍然运行在宿主机的操作系统上,所以相比虚拟机容器不需要额外创建出一套操作系统,节省了资源,更轻量级。容器的隔离机制,是借助于Linux命名空间和cgroup来实现的。

再来看Docker和Kubernetes的关系。从上面第一部分Kubernetes的定义中我们知道,Kubernetes是一个容器编排引擎,可以管理容器化应用。此处的容器化技术就是指Docker,即Kubernetes管理Docker容器化出来的容器。当然随着容器化技术的发展,除了Docker之外,Kubernetes还支持其他的几种容器化技术,比如containered、CRI-O等。

3、Kubernetes的架构

Kubernetes架构可以分为以下两部分:控制面板和工作节点。具体组成大体如下图所示,此处只需有个大体的印象即可,后面会一起更详细的学习。

apiserver:是Kubernetes集群操作的入口,外界操作指令先到apiserver,然后它再把指令下发到具体的节点/服务

etcd:是Kubernetes集群的分布式配置数据中心,所有集群的配置都存在它那里

Scheduler:Kubernetes调度器,负责pod的分配

Controller Manager:执行集群级别的功能,比如跟踪工作节点、处理失败节点等

kubelet:与apiserver通信,并管理它所在节点的容器

kube-proxy:负责节点的网络通讯

容器运行时(container runtime):指docker等容器化技术

傲视Kubernetes(一):Kubernetes简介的更多相关文章

  1. Kubernetes核心概念简介

    本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概 ...

  2. [Kubernetes]关于 Kubernetes ,你想要的,都在这儿了

    陆陆续续,关于 Kubernetes 写了有 20+ 篇文章了. 今天这篇文章来一个整合,从实践到理论,可以按需查看(我是按照博客发表时间来排序的,如果后续有想要更新的内容,也会及时更新到这篇文章中) ...

  3. linux(centos8):kubeadm单机安装kubernetes(kubernetes 1.18.3)

    一,kubernetes安装的准备工作: 1,准备工作的各步骤请参见: https://www.cnblogs.com/architectforest/p/13141743.html   2,  ma ...

  4. Kubernetes系统架构简介

    1. 前言 Together we will ensure that Kubernetes is a strong and open container management framework fo ...

  5. Kubernetes系统架构简介--转

    原文地址:http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction?utm_campaign=infoq ...

  6. 从0到1使用Kubernetes系列——Kubernetes入门

    基本概念 Docker 是什么 Docker 起初是 dotCloud 公司创始人 Solomon Hykes 在法国的时候发起的一项公司内部项目,Docker 是基于 dotCloud 公司多年云服 ...

  7. [Kubernetes]谈谈Kubernetes的本质

    当下k8s算是比较火的一个内容,那么它到底是什么呢,它为什么会这么火呢,它解决的是什么问题呢.这篇文章就尝试着来讲讲,Kubernetes的本质. 当我们谈Kubernetes的时候,总是会想起来Do ...

  8. docker for mac 安装 kubernetes、kubernetes dashboard

    安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460 官方说明:https://kubernetes.io/docs/tasks/acces ...

  9. 【Kubernetes】Kubernetes删除namespace后持续terminating状态

    删除isti和foo的配置文件之后,namespace持续terminating状态,此时也无法再创建istio-system的namespace namespace "istio-syst ...

  10. 【Kubernetes】Kubernetes的Service外部访问方式:NodePort和LoadBalancer

    Kubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失. 这就带来一个问题,如果一些Pod的集合(称之为b ...

随机推荐

  1. Windows控件的属性与事件

    Treeview控件重要属性和事件 属性 说明 Nodes Treeview控件中所有树节点 SelectdNode 当前Treeview控件中选定的树节点,如果当前没有选定树节点,返回值为null ...

  2. [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之二:lib3ds加载模型

    [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之二:lib3ds加载模型 作者:u0u0 - iTyran 在上一节中,我们分析了OBJ格式.OBJ格式优点是文本形式,可读 ...

  3. C++(VS2015)模板显式特化之template语法深入理解

    首先说下遇到的情况: 这里在vc++6.0上建立了一个自定义模板类,再去覆盖这个类,分别使用部分覆盖,整体覆盖 但在vs2015上去整体覆盖类会报错. 错误如下: 错误原因:个人感觉是新版本的vs更接 ...

  4. matlab中polyfit

    来源:https://ww2.mathworks.cn/help/matlab/ref/polyfit.html?searchHighlight=polyfit&s_tid=doc_srcht ...

  5. 51单片机I2C总线

    I2C总线是飞利浦公司推出的一种串行总线,所有器件共用两根信号线,实现数据的传输. 总线接口接了上拉电阻,默认为高电平,所以就可以用"当低电平出现"来标记出一种起始信号.我个人把它 ...

  6. Python+Appium自动化测试(4)-使用weditor进行元素定位

    一,weditor的安装与使用 首选需要在电脑上配置好Python环境 下载安装命令如下,加上镜像下载速度更快: pip install weditor -i https://pypi.tuna.ts ...

  7. Fiddler抓包工具 请求图标为一个锁的图标的设置

    第一步,Fiddler抓包的数据 前面的都是一个锁的图标,的设置方法, 然后 点击打开 按此设置图一 在图二, 图三. 其他默认就好

  8. 55.Qt-将界面程序封装成静态库

    1.生成dll 然后选择创建静态链接库: 创建的时候,记得勾选QtGui,并且修改pro文件,添加下面1句(这样就可以创建界面了): 修改staticlib.cpp: #include "s ...

  9. k8s集群调度方案

    Scheduler是k8s集群的调度器,主要的任务是把定义好的pod分配到集群节点上 有以下特征: 1  公平   保证每一个节点都能被合理分配资源或者能被分配资源 2  资源高效利用   集群所有资 ...

  10. 多层级makefile

    多层级makefile 当项目变大之后,需要多层级的makefile来编译,每个makefile的具体功能实现参考单源文件目录makefile.然后再在顶层目录写一个总的makefile来实现编译逻辑 ...