zoukankan      html  css  js  c++  java
  • 傲视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等容器化技术

  • 相关阅读:
    TortoiseCVS + 错误 + 无效句柄:解决方法
    Oracle学习笔记:关于Oracle服务器在windows32位平台上连接数受限制的问题
    IE6 很邪恶,但我爱它的盒子模型
    PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程
    关于跨浏览器测试那点事
    【转】IETester更新至最新版已经兼容Windows7(附下载地址及Debugbar插件)
    Web 设计师的 50 个超便利工具(上)
    各大浏览器 CSS3 和 HTML5 兼容速查表
    15 个 JavaScript Web UI 库
    编写跨浏览器兼容的 CSS 代码的金科玉律
  • 原文地址:https://www.cnblogs.com/zzq6032010/p/13939149.html
Copyright © 2011-2022 走看看