Orange网关容器化改造
orange网关传统集群部署模式1、在orange.conf的 plugins中加入node,表示开启node插件(容器集群节点管理插件) 12345678910111213141516171819202122232425262728 "plugins": [ "stat", "headers", "monitor", "redirect", "rewrite", "rate_limiting", "property_rate_limiting", "basic_auth", "key_auth", "jwt_auth", "hmac_auth", "signat...
SpringBoot参数校验及全局捕获处理
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。 注意:JSR-303实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。 Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。 @Valid注解使用使用步骤在Controller中使用 @Valid+BindingResult做参数校验非常好用。一般步骤如下: (1)引入pom依赖 123456789 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency><!-- @Js...
helm命令
查看所有repo1helm repo list 删除repo1helm repo remove stable 添加repo1helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 更新1helm repo update 下载指定版本Rancher 版本 tgz 压缩包到本地1helm fetch rancher-stable/rancher --version=v2.5.8 部署升级,把读取的部署参数使用 --set <key>=<value> 的方式添加到命令中1234helm upgrade rancher rancher-stable/rancher \--namespace cattle-system \--set ingress.tls.source=secret \--set hostname=<domain_name> helm命令大全 - 链接
处理ELK日志线上事故
问题1 日志系统链路:filebeat -> logdash -> elasticsearch,然后es两个小时前因磁盘满了,导致无法正常传输。现在将磁盘清理出空间后,日志可以正常导入了,但是是从两个小时前开始的,现希望这两个小时的日志不要了,直接从当前时间导 在你的日志系统中,如果你希望丢弃 Elasticsearch 停止工作的这两个小时的日志,而从当前时间开始继续导入日志,可以按照以下步骤操作: 暂停当前日志处理在修改配置前,暂停 Logstash 和 Filebeat 服务,防止新的日志继续处理: 12systemctl stop logstashsystemctl stop filebeat 修改 Filebeat 读取状态Filebeat 会记录日志文件的读取偏移量(通过 .filestate 或 .filebeat.yaml 文件),需要手动更新或删除这些状态以跳过旧日志。 方法 1:删除状态文件(推荐)找到 Filebeat 的数据目录,通常位于 /var/lib/filebeat,然后删除状态文件: 123# 路径需要复查下# /usr/shar...
Python2.7升级版本
centos(以3.9.6举例)安装编译环境1yum install zlib-devel bzip2 bzip2-devel openssl-devel readline-devel sqlite sqlite-devel xz xz-devel ncurses-devel tk-devel gcc libffi-devel gcc-c++ -y 出现报错Fix rpmdb: Thread died in Berkeley DB library 因为强制断开yum 安装的原因。导致rpm yum 安装都无法使用 解决办法: 按照如下步骤执行即可重建 123456mkdir /var/lib/rpm/backupcp -a /var/lib/rpm/__db* /var/lib/rpm/backup/rm -f /var/lib/rpm/__db.[0-9][0-9]*rpm --quiet -qarpm --rebuilddbyum clean all 下载Python最新安装包文件, 最新安装包下载地址,Python latest version1wget -P /ho...
HPA(水平伸缩)和PodDisruptionBudget(干扰预算)
HPA我们可以实现通过手工执行kubectl scale命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标–自动化、智能化。 Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器。 HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。其实HPA与之前的Deployment一样,也属于一种Kubernetes资源对象,它通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性地调整目标Pod的副本数,这是HPA的实现原理 注: 在 K8S 1.18之前,HPA 扩容是无法调整灵敏度的 对于缩容,由 kube-controller-manager 的 --horizontal-pod-autoscaler-downscale-stabilization-window 参数控制缩容时间窗口,默认 5 分钟,即负载减小后至少需要等 5 分钟才会缩容。 对于扩容,由 ...
VPA和CA
VPAKubernetes VPA(Vertical Pod Autoscaler)可以理解为对单个服务资源进行扩容,如CPU、内存之类。它一般应用于一些中心化的单体应用,且无法对其进行部 署多份副本的场景,如 Prometheus 或 Jenkins 这类垂直 Pod 应用自动扩缩容。 VPA 会基于 Pod 的 资源使用情况自动为集群设置资源占用的限制,从而让集群将 Pod 调度到有足够资源的最佳节点上。VPA 也会保持最初容器定义中资源 request 和 limit 的占比。 当控制器检测到一个Pod负载过高时,这时会对当前Pod进行终止,接着对Pod的CPU或内存进行扩容,最后重建Pod,此时Pod可能在任何一个节点进行重建。 它与HPA的扩容机制是完全不一样的,VPA扩容过程中将无法正常提供服务,也因此它使用的场景相比HPA来说,要少的多。 安装vpa1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859...
k8s中遇到的错误总结
cannot create resource ERROR: Job failed (system failure): pods is forbidden: User “system:serviceaccount:dev:default” cannot create resource “pods” in API group “” in the namespace “xxx” 权限不够, 可能后面还会跟个clusterrole at scope..., 需要创建一个clusterrolebindind进行授权 上面例子中, system:serviceaccount是什么类型的对象, dev是namespace, default是用户, 而API group是核心组 http error: ResponseCode: 503 loading OpenAPI spec for "v1beta1.metrics.k8s.io" failed with: failed to retrieve openAPI spec, http error: ResponseCode...
rancher的角色权限分配实践
rancher分为3种角色, 各自适用范围也不同 全局 集群 项目 项目下又包括了多个namespace 先使用管理员登陆创建1个可以管理全局的账户和角色的用户(全局管理员账户) 注: 此用户仅用来管理用户和角色, admin权限太大, 之后不再使用它进行登陆用户名: UserManager拥有角色:Manage RolesManage Users 退出管理员, 然后使用全局管理员账户创建一个集群管理员账户(集群管理员账户)全局权限: Standard User 用户名: ClusterManager 用ClusterManager身份登陆并进行创建集群.略 创建集群或项目时,Rancher 会自动将创建者分配为所有者。分配了所有者角色的用户可以在集群或项目中给其他用户分配角色。 然后使用UserManager为各集群(一个ClusterManager账户下可以创建多个集群, 例如release/production)创建用户 项目管理员ProjectsAdmin 全局权限: Standard User 创建和管理项目, 查看监控等, 可以经由下一级通知...
Artitalk整合hexo进行使用
官网: https://artitalk.js.org/ 建议使用国际版的 LeanCloud 因为国际版的 LeanCloud 不需要配置 serverurl,所以推荐使用国际版,速度没有区别,如果使用国内版的 LeanCloud 别忘了填写 serverurl 即可 目前国际版在国内已ban,可能会出现返回500的问题,可以使用国内版,需要在leancloud左侧菜单 -> 域名绑定按要求正常配置api域名【必须为备案后的子域名】,如下 这里只支持子域名,就是备案的域名额外解析一个带前缀的域名,例如域名是abcd.com,子域名就可以是ziyuming.abcd.com,而且可以解析多个子域名 绑定之后到DNS解析处添加CNAME记录,等几分钟这里就会显示已绑定,这样就算绑定成功了 👀 与valine在同一页面使用 如果有这个需要,可以将 artitalk 与 valine 存放在同一个应用中。可以有效避免同一个页面使用两个leancloud应用所产生的冲突。 安装npm i hexo-butterfly-artitalk --save 前往 ...
