前言

从上个月,因工作需要外加兴趣所知,博主开始学习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. C++赋值兼容原则理解

    –赋值兼容原则(派生类对象是基类对象,反之不成立)–基类指针强制转换成派生类指针–派生类中重定义基类成员(同名覆盖) 假设, 一个基类 "普通人", 一个派生类 "超人& ...

  2. JavaFX ComboBox的选中事项

    参考1:https://blog.csdn.net/mexel310/article/details/37909205 参考2:https://blog.csdn.net/maosijunzi/art ...

  3. 达梦数据库_DM8配置实时主备

    1.环境说明 准备三台机器DM_HD1.DM_HD11.DM_SH,DM_HD1和DM_HD11用来部署主备库,DM_SH用来部署确认监视器.其中DM_HD1和DM_HD11配置两块网卡,一块接入内部 ...

  4. C# 软件版本号

    如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...

  5. lua 1.0 源码分析 -- 总结

    读完 lua1.0 的源码感触:1. 把复杂的代码写简单2. pack 的内存回收3. hash 实现简单,但是应该可以改进,看高版本的代码怎么实现4. lua 初始化环境做了什么,就是一组全局变量初 ...

  6. intelliJ 软件项目打开运行

    1.导入项目 2.首先更改数据库,找到application-dev.yml文件,更改数据源 3.配置tomcat端口  找到application.yml 文件 然后打开pom.xml 更改版本号 ...

  7. day34 Pyhton 网络编程

    一今日内容 # 函数 # 面向对象 # 进阶 # 网络编程 4 # 并发编程 6-7 # 概念 # 网络基础 # 局域网的概念 # 交换机和路由器的工作流程 # ip地址 # mac地址 # 子网掩码 ...

  8. Jenkins环境搭建(7)-集成钉钉消息推送

    在去年的时候,搭建了一套Jenkins环境,基本功能已实现,可以通过如下地址查阅. Jenkins环境搭建(1)-下载与安装 Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动 ...

  9. composer 阿里云加速 转

    阿里云 Composer 全量镜像 本镜像与 Packagist 官方实时同步,推荐使用最新的 Composer 版本. 最新版本: 1.10.8 下载地址: https://mirrors.aliy ...

  10. matplotlib 设置标题 xy标题等

    import matplotlib.pyplot as plt import matplotlib as mpl baseclass=[1,2,3,4] name = ['class1','class ...