傲视Kubernetes(一):Kubernetes简介
前言
从上个月,因工作需要外加兴趣所知,博主开始学习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简介的更多相关文章
- Kubernetes核心概念简介
		本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概 ... 
- [Kubernetes]关于 Kubernetes ,你想要的,都在这儿了
		陆陆续续,关于 Kubernetes 写了有 20+ 篇文章了. 今天这篇文章来一个整合,从实践到理论,可以按需查看(我是按照博客发表时间来排序的,如果后续有想要更新的内容,也会及时更新到这篇文章中) ... 
- linux(centos8):kubeadm单机安装kubernetes(kubernetes 1.18.3)
		一,kubernetes安装的准备工作: 1,准备工作的各步骤请参见: https://www.cnblogs.com/architectforest/p/13141743.html 2, ma ... 
- Kubernetes系统架构简介
		1. 前言 Together we will ensure that Kubernetes is a strong and open container management framework fo ... 
- Kubernetes系统架构简介--转
		原文地址:http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction?utm_campaign=infoq ... 
- 从0到1使用Kubernetes系列——Kubernetes入门
		基本概念 Docker 是什么 Docker 起初是 dotCloud 公司创始人 Solomon Hykes 在法国的时候发起的一项公司内部项目,Docker 是基于 dotCloud 公司多年云服 ... 
- [Kubernetes]谈谈Kubernetes的本质
		当下k8s算是比较火的一个内容,那么它到底是什么呢,它为什么会这么火呢,它解决的是什么问题呢.这篇文章就尝试着来讲讲,Kubernetes的本质. 当我们谈Kubernetes的时候,总是会想起来Do ... 
- docker for mac 安装 kubernetes、kubernetes dashboard
		安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460 官方说明:https://kubernetes.io/docs/tasks/acces ... 
- 【Kubernetes】Kubernetes删除namespace后持续terminating状态
		删除isti和foo的配置文件之后,namespace持续terminating状态,此时也无法再创建istio-system的namespace namespace "istio-syst ... 
- 【Kubernetes】Kubernetes的Service外部访问方式:NodePort和LoadBalancer
		Kubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失. 这就带来一个问题,如果一些Pod的集合(称之为b ... 
随机推荐
- 008  01 Android 零基础入门  01 Java基础语法 02 Java常量与变量 02 Java 中的关键字
			008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ... 
- matlab中fseek 移至文件中的指定位置
			文章来源:https://ww2.mathworks.cn/help/matlab/ref/fseek.html?searchHighlight=fseek&s_tid=doc_srchtit ... 
- 【题解】CF940F Machine Learning
			Link 题目大意:单点修改,每次询问一个区间的所有颜色出现次数的\(\text{Mex}.\) 例如,区间中三种颜色分别出现了\(2,2,3\)次,又因为其他颜色出现次数一定是\(0\),所以这里的 ... 
- ubuntu 18.04 搭建flask服务器(大合集,个人实操)
			ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ... 
- ANNdotNET中的视觉神经网络设计器
			ANNdotNET简介 是一个在.net平台上进行深度学习的开源项目.NET Framework和.NET Core).该项目位于http://github.com/bhrnjica/anndotne ... 
- API可视化管理平台YApi
			Yapi是什么 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互 ... 
- 【Zabbix】在CentOS 7上搭建Zabbix服务,收集Windows客户端计数器性能数据(含过程中遇到的问题解决方法)
			1.环境 1.1.关闭防火墙 命令:systemctl stop firewalld 或者 systemctl stop firewalld.service (备注:相应的,若要开启防火墙,将对应的& ... 
- 网站搭建-云服务器ECS-镜像管理
			学习笔记: 快照,系统盘可创建镜像,数据盘不可以. 实例可以直接创建镜像,包括系统盘和数据盘 复制镜像: 新购服务器,选择镜像(又买). 共享镜像: 账号ID就是UID 云市场获取镜像; 1. 创建新 ... 
- crontab极简教程
			目录 crontab简介 crontab常用命令 示例 crontab简介 Linux crontab是用来定期执行程序的命令. 当安装完成操作系统之后,默认便会启动此任务调度命令. crontab常 ... 
- java读取中文乱码解决方法
			Java读取文本文件(例如csv文件.txt文件等),遇到中文就变成乱码.读取代码如下: List<String> lines=new ArrayList<String>(); ... 
