Temp

7805 bookmarks
Custom sorting
使用kubebuilder开发operator详解
使用kubebuilder开发operator详解
基础概念 命令式和声明式 命令式编程(Imperative):详细的命令机器怎么(How)去处理一件事情以达到你想要的结果(What),比如代码详细实现过程。 声明式编程( Declarative):只告诉你想要的结果(What),机器自己摸索过程(How),比如sql查询结果。 简而言之:越接近现实的表达就越“声明式”,越接近于机器的执行过程就越“命令式”。 例如在kubernetes中使用此两种方式来创建服务: 命令式 创建:kubectl create deployment nginx --image nginx 或者 kubectl create -f nginx.yaml 修改:kubectl replace -f nginx.yaml 声明式 创建:kubectl apply -f configs/ 或者 kubectl apply -f nginx.yaml 修改:kubectl apply -f nginx.yaml 从以上两种方式可以看出:声明式对象配置更好地支持对目录进行操作并自动检测每个文件的操作类型(创建,修补,删除),但声明式对象配置难于调试并且出现异常时结果难以理解。 Kubernetes API 在kubernetes集群中,所有需要数据存取的组件都需要和kube-apiserver组件通信,而集群数据都是保存在etcd中。同时,kubernetes也大量使用了声明式api来提高用户开发和使用效率,而其api分别由Group(API 组)、Version(API 版本)和 Resource(API 资源类型)组成。如下图所示: 我们也可以使用以下命令查看有哪些api及其组成方式: kubectl get --raw / { "paths": [ "/api", "/api/v1", "/apis/apps", "/apis/apps/v1", "/apis/batch", "/apis/batch/v1", "/apis/batch/v1beta1", "/apis/apps.
·podsbook.com·
使用kubebuilder开发operator详解
通过自定义资源扩展Kubernetes
通过自定义资源扩展Kubernetes
扩展K8S Kubernetes是高度可配置、可扩展的,通常你不需要Fork其主项目代码或者打补丁。 对K8S的定制基本上可以分为两种方式: 配置,例如修改命令行参数、本地配置、API资源 扩展,在集群内外运行额外的程序或服务 本文主要讨论如何扩展K8S 扩展模式 扩展K8S的方式可以分为以下几类。 控制器模式 一种有效的编写客户程序的模式(Pattern)叫做控制器模式(Controller pattern),控制器负责执行例行性任务来保证集群尽可能接近其期望状态。典型情况下控制器读取.spec字段,运行一些逻辑,然后修改.status字段。K8S自身提供了大量的控制器,并由控制器管理器统一管理。 Webhook模式 控制器是K8S的客户端。另一种扩展模式中,K8S作为客户端来访问外部服务。这种模式叫Webhook模式,被访问的外部服务叫做Webhook Backend。 和控制器一样,Webhook引入了故障点。 二进制插件 一段可执行的二进制程序,主要由kubelet、kubectl使用,例如 Flex卷插件、网络插件。 扩展点 主要包括: 可以扩展kubectl,但是仅仅影响用户本地环境 API访问扩展:API Server负责处理请求,它暴露了多个扩展点,允许对请求进行身份验证、基于内容阻塞请求、编辑请求内容、处理删除 [...]
·blog.gmem.cc·
通过自定义资源扩展Kubernetes
controller-runtime 之控制器实现_mob60475705c8db的技术博客_51CTO博客
controller-runtime 之控制器实现_mob60475705c8db的技术博客_51CTO博客
controller-runtime 之控制器实现,controller-runtime(https://github.com/kubernetes-sigs/controller-runtime)框架实际上是社区帮我们封装的一个控制器处理的框架,底层核心实现原理和我们前面去自定义一个controller控制器逻辑是一样的,只是在这个基础上新增了一些概念,开发者直接使用这个框架去开发控制器会更加简单方便。包括kubebuilder、oper
·blog.51cto.com·
controller-runtime 之控制器实现_mob60475705c8db的技术博客_51CTO博客
GitHub - google/mtail: extract internal monitoring data from application logs for collection in a timeseries database
GitHub - google/mtail: extract internal monitoring data from application logs for collection in a timeseries database
extract internal monitoring data from application logs for collection in a timeseries database - GitHub - google/mtail: extract internal monitoring data from application logs for collection in a ti...
·github.com·
GitHub - google/mtail: extract internal monitoring data from application logs for collection in a timeseries database
GitHub - tarent/loginsrv: JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, ..
GitHub - tarent/loginsrv: JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, ..
JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, .. - GitHub - tarent/loginsrv: JWT login microservice with plugable backends such as OAuth2, Google, G...
·github.com·
GitHub - tarent/loginsrv: JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, ..