在谈operater之前,我觉得有必要先回顾下k8s资源。k8s中将所有的资源抽象为内存,资源实例化之后称之为对象。资源大体上分为两大块:

1.内资资源类型:

  • 工作负载型资源:Pod、Deployment、DeamonSet、ReplicationController(1.11版本后废弃)、ReplicaSet、StatefulSet、Job、CronJob
  • 服务发现及负载均衡型资源:Service、Ingress
  • 配置与存储型资源:Volume(存储卷)、CSI(容器存储接口,可以扩展各种第三方存储)
  • 特殊类型存储卷资源:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感信息的存储类型)、DownwarAPI(把外部环境中的信息传输给容器)
  • 集群型资源:Namespace、Node、Role、ClusterRole、ClusterRoleBinding、RoleBinding
  • 元数据型资源:PodTemplate、LimitRange、HPA
  1. 自定义资源类型(CRD)
    自定义资源类型,顾名思义就是定制化的资源类型,是结合自己实际需要自行创造的资源类型。
    实际上,组合运用k8s内置资源类型基本能满足我们的需求,那么为何还需要CRD这种资源类型呢?
    常言道,存在即合理。k8s内置资源毕竟是已经写好的统一模版,有时候也许并不能很好的满足我们的需求,所以我们才需要CRD这种资源类型。就像你安装nginx的时候,可以使用yum安装,也可以二进制编译安装。yum安装虽然简单、高效,但是它只会安装固定的模块,只能满足我们最基本的需求,有些我们需要的模块不一定会安装,所以我们需要采用二进制编译安装,将我们需要的模块都加载进去,获得我们想要的功能。

Operater

Operator通过扩展Kubernetes定义Custom Controller,观察应用并根据实际状态执行自定义任务。应用被定义为Kubernetes对象:Custom Resource (CR),它包含yaml spec和被API服务接受对象类型(K8s kind)。这样,您可以在自定义规范中定义要观察的任何特定条件,并在实例与规范不匹配时协调实例。虽然Operator controller主要使用自定义组件,但它与原生Kubernetes controller协调方式非常类似。

通俗点说:k8s operator 等于 kubernetes CRD+ custom controller

再举个简单的例子:我们部署一个应用,首先我们的部署一个pod,然后还得部署一个对应的svc用来做负载均衡,然后还得将svc的端口暴露到外网(当然也可以通过ingress或istio简介暴露)提供服务,整个过程牵涉到多个资源类型和流程。

此时我们如果使用Operater的话,将会大大简化整个流程,只需一个Operater,以上例子中的整个过程就可以实现。

Operator是管理有状态应用的强大工具,它真正的价值来自于你对应用失败状态处理的最佳实践,以及Operator如何协同人工干预。

构建Operator
为了创建自定义Operator,我们需要如下资源:

  • Custom Resource(CR)spec: 定义我们要观测的应用对象,以及为CR定义的API
  • Custom Controller: 用来观测CR
  • Custom code:决定Custom Controller如何协调CR
  • Operator: 管理Custom Controller
  • Deployment:定义Operator和自定义资源

k8s operater简介相关推荐

  1. K8S - Kubernetes简介

    Kubernetes Kubernetes(简称K8s,用8代替8个字符"ubernete")是Google开源的一个容器编排引擎,支持自动化部署.大规模可伸缩.应用容器化管理. ...

  2. K8s 架构简介(一)

    一.前言 在开始学习K8s之前,让我们对容器有一个基本的了解 1.1 什么是容器 一个容器镜像是一个可运行的软件包,其中包含了一个完整的可执行程序,包括代码和运行时需要应用.系统库和全部重要设置的默认 ...

  3. K8s (Kubernetes简介、特性、架构)

    Kubernetes 文章目录 Kubernetes 1 Kubernetes 概述 1.2 Service分布式集群架构核心 1. 3 Kubernetes优势: 2 Kubernetes的核心概念 ...

  4. docker + K8s概念简介

    概念 目前在企业中,尤其是大型互联网企业中,云容器越来越重要,原因是:云容器的架构能够提供一整套的,自动提交,自动打包,自动部署,自动重启,动态配置的解决方案,但是目前市场人才稀缺,而且随着互联网企业 ...

  5. K8s Ingress Provider 为什么选择 MSE 云原生网关?

    作者:如葑 K8s Ingress 简介 K8s 集群内的网络与外部是隔离的,即在 K8s 集群外部无法直接访问集群内部的服务,如何让将 K8s 集群内部的服务提供给外部用户呢?K8s 社区有三种方案 ...

  6. 轻量级日志系统Loki原理简介和使用

    前言 这篇文章应朋友的要求,让写一篇loki日志系统,咱定义不容辞 一定要好好写 开干! 现实中的需求 公司的容器云运行的应用或某一个节点出现了问题,解决的思路 问题首先被prometheus监控 1 ...

  7. 关于K8s中资源服务质量管理Resource Qos的一些笔记整理

    写在前面 分享一些 K8s中资源服务质量管理Resource Qos 的笔记 博文内容涉及: K8s Qos 简单介绍 资源配置的特点: 节点的超用,可压缩/不可压缩,完全可靠性等介绍 QoS Cla ...

  8. 科普 | 微服务和软件技术栈

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 简介 这些年软件 ...

  9. 【安卓开发系列 -- 系统开发】搭建云手机容器环境 (基于 openvmi)

    [安卓开发系列 -- 系统开发]搭建云手机容器环境 (基于 openvmi) [1]编译安装 openvmi [1.1]安装相关依赖 apt install -y build-essential cm ...

最新文章

  1. java设计模式---代理模式
  2. C++封装、继承、多态
  3. configure 查找依赖库_Rust在编译Android的库时,如何设定依赖的第三方库引用的C/C++的动态库的搜索路径?...
  4. C++_类和对象_C++继承_继承中的构造和析构顺序---C++语言工作笔记064
  5. HDMIARC是什么
  6. 重复可记,证明没有忘记这回事
  7. 短视频剪辑如何入门?短视频剪辑常用的配音软件
  8. win10下如何检测快捷键被被哪个进程占用
  9. 信息系统项目管理师和PMP®对比
  10. 通识3——1080i、1080p、2K、4K是什么意思?
  11. 大型施工程机械设备资产管理融资租赁方案
  12. 平板作为主机扩展屏的实现
  13. ubuntu小技巧6--如何修复Ubuntu系统引导项
  14. 大数据和区块链区别和关系
  15. 信用卡数字识别(opencv,轮廓计算)
  16. 【Pandas】返回 视图 还是 副本?SettingwithCopyWarning 的原理和解决方案(摘录转载)
  17. Oracle入门书籍推荐
  18. 高等数学(第七版)同济大学 习题8-3 个人解答
  19. SARscape下雷达图像一般处理与应用
  20. 阿里云直播播放地址获取方式

热门文章

  1. Github下载慢的解决办法
  2. ProSpec CD8B 人类抗原说明书
  3. Web漏洞之文件包含漏洞
  4. 电脑显示屏不亮但是主机已开机
  5. NR-5G 工具网站
  6. 帆软生成进度条相关报表(普通进度条、条形图、甘特图)
  7. 计算机信息管理 独立本科 考试课程
  8. python数据清洗的三个常用的处理方式!
  9. CISP-PTE考前练习-文件包含
  10. 打印机局域网共享以及如何连接局域网内打印机