Kubernetes-第二章:重要概述

本人通过博客的方式,将全书十五章的笔记分享交流。如有错误,欢迎指点,感谢!


1、Cluster--->集群
    cluster是计算、存储和网络的集合,kubernetes利用这些cluster的资源跑各种容器。

2、Master--->主
    master是cluster的核心,主要负责调度。master可以运行在物理机或者虚拟机上,为了实现HA也可以运行多台master

3、Node--->节点
    node主要负责运行容器的应用,提供各种资源。node由master管理

4、Pod--->豌豆荚(23333~)
    pod是kubernetes最小工作单元。每个pod包含一个或多个容器。
    pod中的容器会作为一个整体被master调度到一个node上运行。
为什么要引入Pod?
    一般来说一个容器只跑一个应用,在一个容器上只跑一个应用是远远不够的,所以引入了pod。
    pod中可以包含多个容器,多个容器在一个namespace中,实现通信和资源的共享,这样就很方便了。
    在有些业务中,荣期间必须是紧密合作的,需要共享数据等,而pod可以解决。

5、Controller--->控制器
    controller是用来管理pod的,kubernetes提供了多种的controller,来管理不同的场景。
    deployment、replicaset、statefuleset、job等
(1)deployment 通过deployment部署应用,管理多个Pod副本。

(2)replicaset 实现pod多副本管理,deployment部署应用时会自动创建replicaset,可以理解为
deployment通过replicaset来管理pod副本。

(3)daemonset 用于一个node只运行一个pod场景,daemonset用来运行daemon

(4)statefuleset 是用来保证Pod在整个生命周期中名称不变,当pod因为故障时需要删除或者重启时,名称发生了变化,但是statefuleset会保证这个副本会按照之前固定的顺序启动,更新等。

(5)job 用来云行结束就删除应用,而其他controller中的Pod都是长期持久运行的。


6、Service--->服务
    通过deployment部署pod,每个Pod有自己的Ip,services提供自己的Ip和端口为Pod做负载均衡。
    运行pod通过controller,访问pod通过service

7、Namespace--->命名空间(学过面向对象编程语言会有印象)

    Namespace类似于Linux系统中用户的概念,通过将系统内部的对象分配到不同的Namespace中,形成逻辑上的分,便于不同的分组在共享集群资源的同时还能被分别管理。同一Namespace下的Kubenetes对象的Name必须唯一。

    Namespace可以将一个物理的cluster上,划分成多个虚拟的cluster,每个划分成的虚拟cluster就是一个命名空间。
    每个cluster之间完全隔离,也就是说namespace之间是隔离的。

kubectl get namespace  //查看namespace
    default:所有未指定Namespace的对象都会被分配在default命名空间。
    kube-system:所有由Kubernetes系统创建的资源都处于这个命名空间。
    kube-public:此命名空间下的资源可以被所有人访问(包括未认证用户)。

图片.png

猜你喜欢

转载自blog.51cto.com/13735335/2294258