ry_dong

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

简介:

容器编排:自动化容器的部署,管理,扩展,联网。

k8s--容器编排工具;

 

架构:

master

apiserver:前端控制层,被设计为水平扩展的架构,通过部署更多实例承载更多服务

controller:用于查询和调度程序,通过策略数量保证有正确数量的容器集在运行。

controller manager:多个控制器功能的结合。

etcd:键值数据库,k8s的后端存储,用于存储配置数据,可以部署于master节点,也可自行部署。

scheduler:调度器,根据特定的调度算法和调度策略,将pod调度到合适的节点上去

node

kubelet:与控制平面通信的应用,用来保证pod的运行,接受master的指令,负责管理pod。

kube-proxy:网络代理和负载均衡器。负责处理集群内部或外部的网络通信,靠操作包里的流量过滤层或自身进行端口转发。同时可以在多个pod和service之间实现负载均衡。

container-runtime:

 

核心概念:

pod:最小工作单元,每个pod包含一个或者多个相关容器,被当作一个整体进行调度。

  引入目的:pod内所有的容器使用相同的网络namespace和共享存储。pod内容器拥有相同IP地址和Port空间,容器间直接使用localhost通信。当挂载volume到pod,即可实现将volume挂载到pod中的每个容器。【网络存储共享,但cpu/内存不是。可以单独】

controller: 通过其实现工作负载的管理,横向扩展。分四类工作负载。

label:为资源分类,具体形式是key-value得标记对,可以在创建资源得时候设置。

namespace:对一组资源和对象的抽象整合。实现多租户划分。默认有四个default,kube-public,kube-system,kube-node-lease.

service:定义了一个pod逻辑集合和访问他们得策略。定义了外界访问一组特定pod的方式。service有自己的IP和端口,service为pod提供了负载均衡。

volume:用来端粒k8s存储,声明在pod中的容器可以访问的文件目录。可以被挂载在Pod中一个或多个容器的指定路径下,支持多种后端存储。

 

编排和管理

kubectl是k8s的命令行工具,用于管理集群,并进行容器化应用的安装部署。

支持以下对象的管理方式:

  通过kubectl内置的驱动命令,语法:kubectl [command] [type] [name] [flags];

  使用kubectl apply 创建指定目录中配置文件所定义的所有对象,文件是yaml或者json。

    如果是yaml。内容分为四部分:

        typeMeta:对象类型的元信息,声明对象使用哪个版本的API版本,哪个类型的对象;

        objectMeta:对象的辕信息,包括对象名称,使用的标签等;

        spec:对象的期望状态,比如对象使用什么镜像,有多少个副本;

        status:对象的实际状态,只能在对象创建后看到,创建对象时无需指定。

 

posted on 2024-02-28 18:18  ry_d  阅读(1)  评论(0编辑  收藏  举报