04 原理
在开发 operator,每种自定义资源只能包含有两种子资源——Status 和 Scale。这里探究一下Status的使用。 关键对象Status资源12345678910111213141516171819202122232425262728// ApplicationSpec defines the desired state of Applicationtype ApplicationSpec struct { // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster // Important: Run "make" to regenerate code after modifying this file // Foo is an example field of Application. Edit application_types.go to remove/update Foo string `json:"foo,omitempty"`}// Ap...
03 Kubebuilder
1 概述构建阶段 工作流程 2 使用流程安装kubebuilder12brew install kubebuilderkubebuilder version 创建工程 初始化一个项目目录 123mkdir -p $GOPATH/src/ykl.com/customer-controller/go mod init contollers.happyhacker.io 定义crd所属的domain,生成一个工程.定义 crd 所属的 domain,这个指令会帮助你生成一个工程。 1kubebuilder init --domain estom.com --license apache2 --owner "Estom" 创建后的目录结构如下: cmd目录下是启动脚本,编译后会在bin目录下生成manage可执行文件 config目录下是基础工程配置。 1234567891011121314151617181920212223242526272829303132.├── Dockerfile├── Makefile├── PROJECT├── READ...
02 Operator-sdk
使用实例搭建go开发环境 下载 1brew install go 配置环境变量 123GOPATH=GOROOT=GOPROXY= 安装operator-sdk工具 1brew install operator-sdk 创建项目1234567891011121314151617181920212223242526272829303132333435363738$ operator-sdk new opdemo......# 该过程需要科学上网,需要花费很长时间,请耐心等待......$ cd opdemo && tree -L 2.├── Gopkg.lock├── Gopkg.toml├── build│ ├── Dockerfile│ ├── _output│ └── bin├── cmd│ └── manager├── deploy│ ├── crds│ ├── operator.yaml│ ├── role.yaml│ ├── role_binding.yaml│ └── service_account.y...
01 简介
基本介绍简介Operator 是由 CoreOS 开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator 基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用程序特定的领域知识。创建Operator 的关键是CRD(自定义资源)的设计。 Operator 直接使用 Kubernetes API进行开发,也就是说他们可以根据这些控制器内部编写的自定义规则来监控集群、更改 Pods/Services、对正在运行的应用进行扩缩容。 Operator pattern首先由 CoreOS 提出,通过结合 CRD 和 custom controller 将特定应用的运维知识转换为代码,实现应用运维的自动化和智能化。Operator 允许 kubernetes 来管理复杂的,有状态的分布式应用程序,并由 kubernetes 对其进行自动化管理,例如,etcd operator 能够创建并管理一组 etcd 集群, 定制化的 controller 组件了解这些资源,...
04-6.Ingress
Helm安装前置条件 kubernets集群 安装配置helm 1curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 使用
01.简介
Kubernetes概述什么是Kubernetes随着微服务架构被越来越多的公司使用,大部分单体应用正逐步被拆解成小的、独立运行的微服务。微服务的优势这里不做探讨,但是其带来的服务维护问题大大增加,若想要在管理大量微服务的情况下同时还做到以下几点: 让资源利用率更高 让硬件成本相对更低 Kubernetes是一个可以移植、可扩展的开源平台,使用 声明式的配置 并依据配置信息自动地执行容器化应用程序的管理。在所有的容器编排工具中(类似的还有 docker swarm / mesos等),Kubernetes的生态系统更大、增长更快,有更多的支持、服务和工具可供用户选择。于是就自然而然地就产生了基于容器自动化部署微服务的需求,在容器编排这块的纷争,各大巨头参与,战况惨烈,但最终胜出的是谷歌的Kubernetes[^1],其提供的特性有: 服务发现和负载均衡 服务编排和容器调度 发布部署:滚动升级、回滚 自动伸缩:扩容缩容和重启 自愈 密钥及配置管理 Kubernetes构成通过下面架构图可以看到其有上下两部分对应的Master&Node节点构成,这两种角...
04-4.StatefulSet
在 Kubernetes 1.7 及之后的版本中,可以为 StatefulSet 设定 .spec.updateStrategy 字段,以便您可以在改变 StatefulSet 中 Pod 的某些字段时(container/labels/resource request/resource limit/annotation等)禁用滚动更新。 On DeleteOnDelete 策略实现了 StatefulSet 的遗留版本(kuberentes 1.6及以前的版本)的行为。如果 StatefulSet 的 .spec.updateStrategy.type 字段被设置为 OnDelete,当您修改 .spec.template 的内容时,StatefulSet Controller 将不会自动更新其 Pod。您必须手工删除 Pod,此时 StatefulSet Controller 在重新创建 Pod 时,使用修改过的 .spec.template 的内容创建新 Pod。 Rolling Updates.spec.updateStrategy...
15 排序和校验规则
1 基本概念mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。 什么是字符集和校验规则?字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则。要想列出一个字符集的校对规则,使用SHOW COLLATION语句。校对规则一般有这些特征: 两个不同的字符集不能有相同的校对规则。 每个字符集有一个默认校对规则。例如,utf8默认校对规则是utf8_general_ci。 命名规定存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。不同级别的字符集和校验规则可控制大小写敏感 MySQL5.1在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合定义字符串。字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。 2 服务器级修改配置文件MySQL按照如下方法确定服务器字符集和...
16 explain性能分析
1 简介在MySQL中,EXPLAIN命令的返回值是一个表格,包含了查询语句的执行计划。表格中的每一行代表了一个访问方式,每一列代表了一个属性,例如: 12345+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+| 1 | SIMPLE | users | const | PRIMARY | PRIMARY | 4 | const| 1 | |+----+----------...














