zoukankan      html  css  js  c++  java
  • kubernetes理论-ms

    简述什么是Kubernetes?

    kubernetes是一个全新的基于容器技术的分布式系统支持平台,是Google开源的容器集群管理系统


    简述Kubernetes和Docker的关系?

    docker提供容器的生命周期管理和docker镜像构建运行是容器,它的主要优点是将软件/应用程序/运行所需的设置和依赖包打包到一个容器中,从而实现了可移植性等优点

    kubernetes用于关联和编排在多个主机上运行的容器


    简述Kubernetes如何实现集群管理?

       在集群管理方面,kubernetes将集群中的机器划分为一个Master节点和一群工作节点Node。其中,在Master节点运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理能力、并且都是全自动完成


    简述Kubernetes的优势、适应场景及其特点?

    kubernetes作为一个完备的分布式系统支撑平台,其主要优势:

    容器编排

    轻量级

    开源

    弹性伸缩

    负载均衡


    kubernetes常见场景:

    快速部署应用

    快速扩展应用

    无缝对接新的应用功能

    节省资源,优化硬件资源的使用


    kubernetes相关特点:

    可移植:支持公有云、私有云、混合云、多重云

    可扩展: 模块化、插件化、可挂载、可组合

    自动化:自动部署、自动重启、自动复制、自动伸缩扩展


    简述Kubernetes的缺点或当前的不足之处?

    安装过程和配置相对困难复杂

    管理服务相对繁琐

    运行和编译要很多时间

    它比其它替代品更昂贵

    对于简单的应用程序来说,可能不需要设计 kubernetes即可满足


    简述Kubernetes相关基础概念?

    master: K8s集群的管理节点,负责管理集群,提供集群的资源数据访问入口.拥有etcd存储服务,运行API  server进程,controller manager服务进程及scheduler服务经常

    node: 是kubernetes集群架构中运行pod的服务节点,是kubernetes集群操作的单元,用来承载被分配POD的运行,是pod运行的宿主机。运行 docker eninge服务,守护进程kunelet已经负载均衡器kube-proxy

    pod:运行与Node节点上,若干相关容器的结合

    label:kubernetes中的label实质是一系列的 key/value键值对,其中key与value可自定义。label可以附加到各种资源对象上。

    replication  controller:用来管理pod的副本,保证集群中存在指定的POD副本数,是实现弹性伸缩、动态扩容和滚动升级的核心

    Deployment:Deployment在内部使用了RS来实现目的,Deployment相当于RC的一次升级,其最大的特色为可以随时获知当前Pod的部署进度。

    HPA(Horizontal Pod Autoscaler):Pod的横向自动扩容,也是Kubernetes的一种资源,通过追踪分析RC控制的所有Pod目标的负载变化情况,来确定是否需要针对性的调整Pod副本数量。

    Service:Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。Service提供了一个统一的服务访问入口以及服务代理和发现机制,关联多个相同Label的Pod,用户不需要了解后台Pod是如何运行。

    Volume:Volume是Pod中能够被多个容器访问的共享目录,Kubernetes中的Volume是定义在Pod上,可以被一个或多个Pod中的容器挂载到某个目录下。

    Namespace:Namespace用于实现多租户的资源隔离,可将集群内部的资源对象分配到不同的Namespace中,形成逻辑上的不同项目、小组或用户组,便于不同的Namespace在共享使用整个集群的资源的同时还能被分别管理。


    Kubernetes集群组件(培训)

    master组件

    kube-apiserver

      kubernetes api,集群的统一入口,各组件协调者,以RESTful api 提供接口服务,所有对象资源的增删改查和监听操作都交给PAIserver处理后在提交给etcd存储

    kube-controller-manager

      处理集群中常规后台任务,一个资源对应一个控制器,而controllermanager就是负责管理这些控制器

    kube-scheduler

      根据调度算法为新创建的pod选择一个node节点,可以任意部署,可以部署在同一个节点上,也可以不是在不同的节点上

    etcd

    分布式键值存储系统。用于保存集群状态数据,比如pod、service等对象信息

      node组件

    kubelet

    kubelet是master在node节点上的agent,管理本机运行容器的生命周期,比如创建容器、pod挂载数据卷、下载secret、获取容器的节点状态等工作。kubelet将每个pod 转换成一组容器

    kube-proxy

    在node节点上实现pod网络代理,维护网络规划和四层负载均衡工作。

    docker或者rocker

    容器引擎,运行容器


    简述Kubernetes集群相关组件

    kubernetes Master控制组件,调度管理整个系统(集群),包含如下组件:

    Kubernetes API Server:作为Kubernetes系统的入口,其封装了核心对象的增删改查操作,以RESTful API接口方式提供给外部客户和内部组件调用,集群内各个功能模块之间数据交互和通信的中心枢纽。

    Kubernetes Scheduler:为新建立的Pod进行节点(node)选择(即分配机器),负责集群的资源调度。

    kubernetes scheduler:负责执行各种控制器,目前已经提供了很多控制器来保证kubernetes的正常运行

    replication controller: 管理和维和replication controller,关联replication controller和POD,保证replication controller定义的副本数和实际运行pod数量一致

    node controller:管理维护node,定期检查node的健康状态,标识出(失效|未失效)的node节点

    namespace controller:管理维护 namespace,定期清理无效的namespace,包括namespace下的api对象,比如pod、service等

  • 相关阅读:
    Eureka与Zookeeper的区别
    Eureka的集群配置
    Rest微服务案例
    Eureka概述
    SpringCloud与Dubbo区别对比
    各种微服务框架对比
    ElasticSearch(九):elasticsearch-head插件安装
    ElasticSearch(八):elasticsearch.yml配置说明
    Docker(2):使用Dockerfile创建支持SSH服务的镜像
    CentOS 7 安装Kubernetes(单机版)
  • 原文地址:https://www.cnblogs.com/pengrj/p/15261824.html
Copyright © 2011-2022 走看看