一、概述:

  kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母)

二、基本概念

  Pod

  • k8s的基本操作单元,一个Pod由一个或多个容器组成,通常pod里的容器运行的相同的应用;
  • 同一pod包含的容器运行在同一host上,作为统一管理单元:
  • 同一pod 共享着相同的volumes, network命名空间, ip和port空间,这是通过Mapped Container做到的;

    • pid ns:处于同一pod中的应用可以看到彼此的进程
    • network ns:处于同一pod中的应用可以访问一样的ip和port空间
    • ipc ns:处于同一pod的应用可以用systemV ipc 或者posix消息队列进行通信
    • UTC ns:处于同一pod应用共用一个主机名
    ReplicationController (RC)

    • RC是用来管理Pod的,每个RC由一个或多个Pod组成;在RC被创建之后,系统将会保持RC中的可用Pod的个数与创建RC时定义的Pod个数一致,如果Pod个数小于定义的个数,RC会启动新的Pod,反之则会杀死多余的Pod。
    • RC通过定义的Pod模板被创建,创建后对象叫做Pods(也可以理解为RC),可以在线修改Pods的属性,以实现动态缩减、扩展Pods的规模
    • RC通过label关联对应的Pods,通过修改Pods的label可以删除对应的Pods在需要对Pods中的容器进行更新时,RC采用一个一个替换原则来更新整个Pods中的Pod;
    • reschudeling: 维护pod副本,“多退少补”;即使是某些minion宕机

    • scaling:通过修改rc的副本数来水平扩展或者缩小运行的pods
    • Rolling updates:一个一个地替换pods来rolling updates服务;
    • multiple release tracks:如果需要在系统中运行multiple release 服务,replication controller使用labels来区分multiple release tracks;

  Label

    • Label是用于区分Pod、Service、RC的key/value键值对
    • Pod、Service、RC可以有多个label,但是每个label的key只能对应一个value
    • 整个系统都是通过Label进行关联,得到真正需要操作的目标

Service

    Service也是k8s的最小操作单元,是真实应用服务的抽象

    Service通常用来将浮动的资源与后端真实提供服务的容器进行关联

    Service对外表现为一个单一的访问接口,外部不需要了解后端的规模与机制

    Service是定义在集群中一组运行Pod集合的抽象资源,它提供了所有相同的功能。当一个Service资源被创建后,将会分配一个唯一的IP(也叫做集群IP),这个IP地址将存在于Service的整个生命资源,Service一旦被创建,整个IP无法进行修改。

Pod可以通过Service进行通信,并且所有的通信将会通过Service自动负载均很到所有的Pod中的容器。

三、kubernetes组成 

  k8s主要包括:

    kubectl 客户端命令行工具:

      将接收的命令,发送给kube-apiserver,作为对整个平台操作的入口。

    kube-apiserver REST API服务:

      作为整个系统的控制入口,以REST API的形式公开,可以横向扩展在高可用的架构中。

    kube-controller-manager 多个控制器的合体,用来执行整个系统中的后台任务,多个控制进程的合体:

    • Node Controller 负责整个系统中node up 或down的状态的响应和通知
    • Replication Controller 负责维持Pods中的正常运行的Pod的个数
    • Endpoints Controller 负责维持Pods和Service的关联关系
    • Service Account & Token Controllers负责为新的命名空间创建默认的账号和API访问的Token    

    kube-scheduler 任务调度、命令下发

      负责监视新创建的Pods任务,下发至未分配的节点运行该任务

    kube-proxy 网络代理转发:

      kube-proxy运行在每个节点上,负责整个网络规则的连接与转发,使k8s中的service更加抽象化

    kubelet 容器的管理

      kubelet运行在每个节点上,作为整个系统的agent,监视着分配到该节点的Pods任务,负责挂载Pods所依赖的卷组,下载Pods的秘钥,运行Pods中的容器(通常是docker),周期获取所有容器的状态,通过导出Pod和节点的状态反馈给REST系统;

    etcd 信息存储

    flannel IP地址的分配

 

k8s 集群基本概念的更多相关文章

  1. k8s重要概念及部署k8s集群(一)--技术流ken

    重要概念 1. cluster cluster是 计算.存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用. 2.master master是cluster的大脑,他的主要职责是调度,即决 ...

  2. k8s重要概念及部署k8s集群(一)

    k8s介绍 Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功 ...

  3. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  4. 基于 kubeadm 部署单控制平面的 k8s 集群

    单控制平面不符合 HA 要求,但用于开发/测试环境不会有任何问题,如果资源足够的话(10台以上服务器,3台用于APIserver.3台用于 etcd 存储.至少3台用于工作节点.1台作为负载均衡),可 ...

  5. k8s集群搭建(一)

    k8s简介 kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写.是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简 ...

  6. K8s集群认证之RBAC

    kubernetes认证,授权概括总结: RBAC简明总结摘要:API Server认证授权过程: subject(主体)----->认证----->授权[action(可做什么)]--- ...

  7. 部署K8S集群

    1.Kubernetes 1.1.概念 kubernetes(通常称为k8s)用于自动部署.扩展和管理容器化应用程序的开源系统.它旨在提供“跨主机集群的自动部署.扩展以及运行应用程序容器的平台”.支持 ...

  8. 二十,基于K8S集群的PaaS简介

    目录 一.概述 二.生产环境部署k8s,接下来我们描述一下在真正生产环境中我们部署k8s应该部署成什么样子 一.概述 1.通过以往的学习应该可以了解到k8s 和以往提到的devops概念更容易落地了. ...

  9. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

随机推荐

  1. 联想企业网盘:SaaS服务集群化持续交付实践

    1      前言 当代信息技术飞速发展,软件和系统的代码规模都变得越来越大,而且组件众多,依赖繁复,每次新版本的发布都仿佛是乘坐一次无座的绿皮车长途夜行,疲惫不堪.软件交付是一个复杂的工程,涉及到软 ...

  2. HDU4738【杭州网赛、判桥】

    刚拿到这道题时挺有思路,无奈平日里只敲过找割顶的代码,判桥的代码当时自己也没仔细敲. 当时一把泪啊,忽然感觉自己的图论才只是刚搞了个起步啊.. 题目有神坑.    就是先判是否连通,不连通直接输出0; ...

  3. xlslib库使用简记

    xlslib库使用简记 1 前言 最近需要使用C++结合xlslib库来生成Excel文件,但发现这个库的文档还真难找,找来找去发现唯一的线索是有一个test/目录里面的几个例子而已. 想到以后要不断 ...

  4. rem布局

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. poj 3020 Antenna Placement (最小路径覆盖)

    链接:poj 3020 题意:一个矩形中,有n个城市'*'.'o'表示空地,如今这n个城市都要覆盖无线,若放置一个基站, 那么它至多能够覆盖本身和相邻的一个城市,求至少放置多少个基站才干使得全部的城市 ...

  6. [置顶] 编辑框Editext光标最后显示

    [MainActivity] package com.example.testeditext; import android.os.Bundle; import android.app.Activit ...

  7. 互联网IP合全局路由优化的原则-Dijkstra算法证明

    周末继续写东西的一半填补了,为了达到完美的一天.我们知道一个事实,IP地址太多.统一管理是不可能的了,无论从控制平面从数据/管理层表示,飞机是如此. 所以.IP协议被设计为可伸缩.供IP路由术语,跳路 ...

  8. PHP与MySQL交互

    <?php $con = mysql_connect("localhost","root","12345"); $dbcharset ...

  9. JavaScript、JSP、Java及javaEE

    对JavaScript.JSP.Java及javaEE之间区别的理解 JavaScript和Java名字极为类似,相信不少的初学者或者准备学这些知识的人对于JavaScript.JSP.Java及Ja ...

  10. VBA基础——循环语句

    VBA基础之循环语句 Sub s1() Dim rg As Range For Each rg In Range("a1:b7,d5:e9") If rg = "&quo ...