前言

从上个月,因工作需要外加兴趣所知,博主开始学习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. 008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字

    008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ...

  2. matlab中fseek 移至文件中的指定位置

    文章来源:https://ww2.mathworks.cn/help/matlab/ref/fseek.html?searchHighlight=fseek&s_tid=doc_srchtit ...

  3. 【题解】CF940F Machine Learning

    Link 题目大意:单点修改,每次询问一个区间的所有颜色出现次数的\(\text{Mex}.\) 例如,区间中三种颜色分别出现了\(2,2,3\)次,又因为其他颜色出现次数一定是\(0\),所以这里的 ...

  4. ubuntu 18.04 搭建flask服务器(大合集,个人实操)

    ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ...

  5. ANNdotNET中的视觉神经网络设计器

    ANNdotNET简介 是一个在.net平台上进行深度学习的开源项目.NET Framework和.NET Core).该项目位于http://github.com/bhrnjica/anndotne ...

  6. API可视化管理平台YApi

    Yapi是什么 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互 ...

  7. 【Zabbix】在CentOS 7上搭建Zabbix服务,收集Windows客户端计数器性能数据(含过程中遇到的问题解决方法)

    1.环境 1.1.关闭防火墙 命令:systemctl stop firewalld 或者 systemctl stop firewalld.service (备注:相应的,若要开启防火墙,将对应的& ...

  8. 网站搭建-云服务器ECS-镜像管理

    学习笔记: 快照,系统盘可创建镜像,数据盘不可以. 实例可以直接创建镜像,包括系统盘和数据盘 复制镜像: 新购服务器,选择镜像(又买). 共享镜像: 账号ID就是UID 云市场获取镜像; 1. 创建新 ...

  9. crontab极简教程

    目录 crontab简介 crontab常用命令 示例 crontab简介 Linux crontab是用来定期执行程序的命令. 当安装完成操作系统之后,默认便会启动此任务调度命令. crontab常 ...

  10. java读取中文乱码解决方法

    Java读取文本文件(例如csv文件.txt文件等),遇到中文就变成乱码.读取代码如下: List<String> lines=new ArrayList<String>(); ...