自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

琦彦

Find out who you are,and be that person.

  • 博客(962)
  • 资源 (13)
  • 收藏
  • 关注

原创 设计模式: 实际场景的落地应用(含开源项目和生产环境实践)--持续更新中

前言单纯将设计模式, 即使使用了漫画形式,也很难让人印象深刻,常常造成知道了却不知道如何用. 为此, 本文从实际场景应用出发, 和大家一起学习设计模式生产环境实践对象创建: Java单例模式的不同写法(懒汉式、饿汉式、双检锁、静态内部类、枚举)https://blog.csdn.net/fly910905/article/details/79286680代码避免过多if - else的新姿势:策略模式、工厂 + 策略https://blog.csdn.net/fly91.

2021-04-10 10:31:28 1315 12

原创 Docker :常用命令小册子

Docker 命令查询

2019-10-01 14:51:33 4551 14

原创 使用 Java 操作 Kubernetes API

目录本文目标k8s-client-java选型kubernetes-client/java和fabric8io/kubernetes-client对比kubernetes-client/java的使用REST APIkubectl api-versionsREST API实例: API Object 整体划分图 (红星符号代表常用资源)kubernet...

2019-09-25 09:38:43 56719 31

转载 kubectl :命令技巧大全

kubectl 命令技巧大全Kubctl 命令是操作 kubernetes 集群的最直接和最 skillful 的途径,这个60多MB大小的二进制文件,到底有啥能耐呢?请看下文:Kubectl命令概览Kubernetes提供的kubectl命令是与集群交互最直接的方式,v1.6版本的kubectl命令参考图如下:上面Kubectl的子命令主要分为8个类别:基础...

2019-07-25 08:39:24 29501 1

原创 Linux常用命令速查册,再也不用费脑细胞了

学习linux好习惯善于查看man page(manual)等帮助文档利用好Tab键掌握好一些快捷键ctrl + c(停止当前进程)history(查看命令历史)ctrl + l(清屏,与clear命令作用相同)常见问题telnet不能用!!!提示:-bash: telnet: command not found解决方式,重装一下telnet客户端。 ...

2017-09-14 15:46:08 3216

原创 iPerf3 命令通用选项

f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位。-C 兼容旧版本(当server端和client端版本不一样时使用)-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)-p 指定服务器端使用的端口或客户端所连接的端口。-w 指定TCP窗口大小,默认是8KB。-M 设定TCP数据包的最大mtu值。iPerf3 客户端命令特有选项。-l 缓冲区大小,默认是8KB。-m 显示tcp最大mtu值。-N 设定TCP不延时。

2023-04-01 09:25:15 195 2

转载 mysql查看实时语句和慢sql

Mysql除了手动执行的语句,还有很多在后台由其他模块执行的语句,按理来说,那些由其他模块执行的语句是不能实时查看的,因为这个资源消耗特别的大,但是当我们实在需要查看实时sql语句的时候也不是做不到,需要手动开启一个日志开关。首先登陆mysql,然后执行发现这个Value是off,那么就说明实时记录可见我们不仅打开了的开关,而且设置日志输出方式为文件(如果设置的话,则日志结果会记录到名为的表中,这表的默认引擎都是CSV)。同时规定它的保存位置是。

2022-12-23 15:10:01 328

原创 Harbor使用公网证书

因为Harbor使用Nginx做代理,因此在公网证书审核通过后,在证书下载面板,单击Nginx服务器操作列的下载。。PEM格式的证书文件是采用Base64编码的文本文件,您可以根据需要将证书文件修改成其他格式。关于证书格式转换的具体操作,请参见。。上传证书到服务器某个目录,然后修改certificate和private_key。

2022-11-12 18:41:45 1269

原创 申请阿里云免费证书

阿里云免费SSL证书是赛门铁克(Symantec)品牌的,免费证书只能保护一个域名(带www和不带www可以通用)。阿里云个人账号和企业账号均可申请,多个域名可以申请多个免费证书,阿里云免费证书一个账户限制20个。

2022-11-12 18:37:30 7290 4

原创 配置对 Harbor 的 HTTPS 访问

默认情况下,Harbor 不附带证书。可以在没有安全性的情况下部署 Harbor,以便你可以通过 HTTP 连接到它。但是,在生产环境中,建议使用 HTTPS。如果你要使用Content Trust with Notary ,则必须使用 HTTPS。要配置 HTTPS,你必须创建 SSL 证书。你可以使用由受信任的第三方 CA 签名的证书,也可以使用自签名证书。本节介绍如何使用创建 CA,以及如何使用你的 CA 签署服务器证书和客户端证书。你也可以使用其他 CA 提供程序,例如。

2022-11-12 10:44:39 1837

原创 Harbor 镜像复制 每 30 分钟发生一次超时

AppData/Roaming/Typora/typora-user-images/image-20221028102845445.png)]你可以 git clone Harbor repo 然后更改上面的harbor/src/pkg/registry/client.go。在harbor.yml配置文件中,修改max_job_workers调整并发数量,提高单个镜像传输的带宽。目前无法从外部配置更改registry客户端的默认超时时间,但可以从代码更改它并自行构建镜像。

2022-10-28 20:02:44 388

原创 Harbor镜像层膨胀,占用存储过大

名,默认就是 latest,registry 会从 HTTP 请求中解析到这个 tag 名,然后根据 tag 名目录下的 link 文件找到该镜像的 manifest 的位置返回给客户端,客户端接着去请求这个 manifest 文件,客户端根据这个 manifest 文件来 pull 相应的镜像 layer。如果指的容器存储路径对应的宿主机路径,直接在宿主机上执行也是可以,从上文我们知道registry容器存储目录/storage,对应于宿主机的/data/registry。将本机的路径挂载到容器内。

2022-10-28 20:01:01 577

原创 Harbor断电重启postgres报错 could not locate a valid checkpoint record

Harborv2.2.2内置的数据库是postgres9.6.21,服务器突然断电,重启harbor后报错,信息如下。

2022-10-28 19:59:04 563

原创 Harbor新建仓库目标提示 the registry is unhealthy

两个harbor需要通过镜像复制策略来同步镜像,在仓库管理添加的harbor状态是unhealthy。

2022-10-28 19:57:50 742

原创 Habor数据迁移方式有多少,skopeo效率最好

skopeo 使用 API V2 Registry,例如 Docker Registry、Atomic Registry、私有Registry、本地目录和本地 OCI 镜像目录。

2022-10-21 08:50:07 1427

转载 镜像搬运工具 Skopeo 使用

作为公司内部 PaaS toB 产品的打包发布人员,容器镜像对我们打工人而言就像是工地上的砖头 🧱,而我的一部分工作就是将这些砖头在各个仓库之间搬来搬去,最终将这些砖头打包放在产品的安装包中,形成一个完整的 PaaS 产品安装包。

2022-10-21 08:39:56 699

转载 收集yum install安装的软件的全量依赖 rpm 包

离线安装主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。有时候离线 rpm 包有比较难于收集齐全,但测试环境我们又可以通过完成某个软件的安装,那我们是否可以将yum 方式安装的软件,通过某种方式收集该软件的rpm 包和它依赖的 rpm 包。在离线的内网环境下进行安装一些软件的时候会出现依赖不完整的情况,一般情况下会使用如下方式进行下载依赖包Centos 7.6: 查看提供某个命令的rpm包: 查看rpm包所需的全部依赖。

2022-10-18 12:17:23 1346

原创 Docker load 大镜像(17G) 报错no space left on device

Docker load 大镜像 (17G) 报错 no space left on device

2022-10-13 09:32:35 1281 1

原创 基于Goland和dlv远程调试Kubernetes组件

一个正常运行的 Kubernetes 集群包含以下的各种组件。通常开发者日常编码都基于Windows/Mac上的IDE(VsCode/Goland),编码完成后再部署到远端Linux机器运行。因此,我们就需要一种基于IDE和dlv远程调试Kubernetes组件的方式,而正是一个不错的选择。delve调试包括附加到进程调试和远程调试。其实附加到本地进程和远程调试原理是一样的,待调试的进程是通过delve启动的,delve会启动进程,并立即附加到进程,开启一个debug session。

2022-10-04 23:01:47 2933

原创 Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧

Goland:快捷键,自动生成代码等效率小技巧

2022-10-02 21:49:41 5448

翻译 基于kube-scheduler-simulator编写自己的调度程序

你可以使用 kube-scheduler-simulator 开发自己的调度程序,它从不需要真正的集群mini-kube-scheduler/minisched 实现帮助你从最少的代码开始。

2022-08-27 10:57:18 5320 1

原创 k8s实战系列:3-存储的花样玩法(下)

中我们谈论了Docker存储,已经Kubernetes中的配置数据中的ConfigMap和Secret, 接下来我们会讨论下Kubernetes中的临时存储,持久存储等。

2022-08-23 17:40:11 6565

原创 k8s实战系列:3-存储的花样玩法(上)

容器中的应用读写数据都是发生在容器的读写层,镜像层+读写层映射为容器内部文件系统、负责容器内部存储的底层架构。当我们需要容器内部应用和外部存储进行交互时,需要一个类似于计算机 U 盘一样的外置存储,容器数据卷即提供了这样的功能。另一方面:容器本身的存储数据都是临时存储,在容器销毁的时候数据会一起删除。而通过数据卷将外部存储挂载到容器文件系统,应用可以引用外部数据,也可以将自己产出的数据持久化到数据卷中,所以容器数据卷是容器进行数据持久化的实现方式。

2022-08-23 17:30:05 6645

转载 Docker运行ubuntu22.04出现异常

通常情况下,容器里面所有的系统调用都会被docker捕获,然后docker决定如何处理它们。如果docker中没有为特定系统调用指定策略,则默认的策略会通知容器这边"Permission Denied"。由于生产环境调整docker版本不是一件容易的事情,所以生产环境在构建镜像时候要避免使用ubuntu21.10和fedora35以更高版本的镜像,以及使用它们作为基础镜像的其他镜像。不过这会有很大的问题,一个是你的容器将变得不安全,另一个是这些参数在构建镜像的时候是不可用的。的时候出现了以下报错。

2022-08-22 20:28:41 1218 1

翻译 2022 Kubernetes 批处理和HPC发展一览

Kueue 和现有的 Kubernetes 组件完美融合,不用担心功能差异,让客户使用更简单。下一步的开发计划是:与常见定制工作负载的集成:Spark、Kubeflow 等;作业抢占机制;预算管理;多集群支持。项目地址:...

2022-08-14 21:31:50 2172 1

原创 Kubernetes存储:Ceph架构,部署和使用

无论您是想为和/或服务、部署还是将 Ceph用于其他目的,所有部署都从设置每个、您的网络和 Ceph开始存储集群。一个 Ceph存储集群至少需要一个 CephMonitor、CephManager 和 CephOSD(对象存储守护进程)。运行 Ceph文件系统客户端时也需要 Ceph元数据服务器。(Ceph-mon) 维护集群状态的映射,包括监视器映射、管理器映射、OSD 映射、MDS 映射和 CRUSH 映射。这些映射是 Ceph守护进程相互协调所需的关键集群状态。......

2022-08-14 12:46:37 5907

原创 Harbor2.2 用户角色权限速查

在公共项目中,所有用户都可以查看存储库列表、镜像、镜像漏洞、helmcharts和helmcharts版本、拉取镜像、重新标记镜像(需要目标镜像的推送权限)、下载helmcharts、下载helmcharts版本。通过将用户包含在项目中并向他们分配以下角色之一,你可以向用户提供对这些镜像的访问权限。*只有Harbor系统管理员可以编辑项目配额和添加新的扫描器。用户具有不同的能力,具体取决于他们在项目中的角色。下表描述了项目中的各种用户权限级别。系统管理员拥有项目的所有权限。......

2022-07-24 15:02:39 1169

原创 Git-LFS:大文件也有了版本管理

GitHub限制存储库中允许的文件大小。如果尝试添加或更新大于50MB的文件,您将从Git收到警告。更改仍将成功推送到仓库,但您可以考虑删除提交,以尽量减少对性能的影响。GitHub阻止超过100MB的推送。要跟踪超出此限制的文件,必须使用GitLargeFileStorage(GitLFS)。更多信息请参阅“”。GitLFS”和“”。**核心思想**把需要进行版本管理、但又占用很大空间的那部分文件独立于Git仓库进行管理。...

2022-07-19 08:42:18 7842

原创 Harbor:修改默认的172网段

背景harbor默认启动会随机创建172网段的ip地址,跟集群规划的网段冲突。

2022-07-15 09:50:41 822 1

原创 Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门

在 unix/linux 操作系统环境中,我们会经常讨论 shell、终端和命令行接口。Bash 可能是最有名的 shell,但在 Mac 电脑中,Zsh 可能是最为流行的 shell 了。Zsh 也被称为 z Shell,它扩展了 Bourne Shell (sh)的功能,提供了更新的特性以及对插件和主题的更多支持。从2019年的 MacOS Catalina 开始,Zsh 成为 Mac 电脑中默认的登录和交互式 shell。在 Mac 电脑上,你可以使用 Homebrew 来安装 Zsh。Linux(

2022-07-06 20:48:49 2428

原创 Istio1.12:安装和快速入门

Istio 使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pNqBrfTt-1656680343352)(https://istio.io/latest/img/service-mesh.svg)]到 Istio 发布 页面,下载针对你操作系统的安装文件,

2022-07-01 21:00:43 7953

原创 使用bitnamiredis-sentinel部署Redis 哨兵模式

获取 Bitnami Redis® Sentinel Docker 镜像的推荐方法是从Docker Hub Registry中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。你可以在 Docker Hub Registry 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。连接到其他容器使用Docker 容器网络,你的应用程序容器可以轻松访问在容器内运行的 Redis® 服务器。连接到同一网络的容器可以使用容器名称作为主机名相互通信。在此示例中,我们将创建一个 Redis® Senti

2022-06-26 20:57:10 8871 2

原创 kubernetes资源命名约束和最佳实践

客户端提供的字符串,它引用资源 URL 中的对象,例如.一次只能有一个给定类型的对象具有给定名称。但是,如果您删除该对象,您可以创建一个具有相同名称的新对象。很多资源类型需要可以用作 DNS 子域名的名称。 DNS 子域名的定义可参见 RFC 1123。 这一要求意味着名称必须满足如下规则:某些资源类型需要其名称遵循 RFC 1123 所定义的 DNS 标签标准。也就是命名必须满足如下规则:某些资源类型需要其名称遵循 RFC 1035 所定义的 DNS 标签标准。也就是命名必须满足如下规则:某些资源类型要求

2022-06-15 21:30:00 3154

原创 基于Docker快速搭建 PostgreSQL 高可用方案

此 PostgreSQL 集群解决方案包括 PostgreSQL 复制管理器(),这是一种用于管理 PostgreSQL 集群上的复制()和故障转移()的开源工具。获取 Bitnami PostgreSQL HA Docker 镜像的推荐方法是从 Docker Hub Registry 中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。 你可以在 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。持久化你的应用程序如果删除容器,所有数据都将丢失,下次运行镜像时,数据库将重新初始化。

2022-06-15 09:47:22 5299 7

原创 kubernetes多网卡方案之Multus CNI部署和基本使用

一个容器启动后,在默认情况下一般都会只存在两个虚拟网络接口(loopback和eth0),而loopback的流量始终都会在本容器内或本机循环,真正对业务起到支撑作用的只有eth0,当然这对大部分业务场景而言已经能够满足。但是如果一个应用或服务既需要对外提供API调用服务,也需要满足自身基于分布式特性产生的数据同步,那么这时候一张网卡的性能显然很难达到生产级别的要求,网络流量延时、阻塞便成为此应用的一项瓶颈。基于上述痛点和需求,容器多网络方案不断涌现。k8s有一个多网卡规范:K8sNetworkPlumbi

2022-06-08 20:48:06 1355 1

原创 Kubernetes证书类型和适用场景

我们在前面已经学习了「对称密码算法」与「非对称密码算法」两个密码学体系,这里做个简单的总结。但是非对称密码算法仍然存在一些问题:数字证书与公钥基础架构就是为了解决上述问题而设计的。首先简单介绍下公钥基础架构(Public Key Infrastructure),它是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。 PKI 是一个总称,而并非指单独的某一个规范或标准,因此显然数字证书的规范(X.509)、存储格式(PKCS系列标准、DER、PEM

2022-06-02 00:10:55 2462 1

原创 kubernetes GPU共享的困境和破局

kubernetes GPU的困境和破局随着人工智能与机器学习技术的快速发展,在 Kubernetes 上运行模型训练、图像处理类程序的需求日益增加,而实现这类需求的基础,就是 Kubernetes 对 GPU 等硬件加速设备的支持与管理。kubernetes 调度 GPU-使用篇Kubernetes 支持对节点上的 AMD 和 NVIDIA GPU (图形处理单元)进行管理,目前处于实验状态。在 GPU 的支持上,最基本的诉求其实非常简单:我只要在 Pod 的 YAML 里面,声明某容器需要的 G

2022-05-23 23:30:00 2295

转载 如何在 shell 中实现并行执行

如何在 shell 中实现并行执行今天,有个同事问我,他的 shell 中要执行一个迭代200次的循环,因为每一次循环都需要消耗一定的时间,执行起来比较慢,问我可不可以改成并行执行,循环一次执行10个任务,循环20次来完成所有的任务。什么是并行?并行,是一种常见的任务执行过程模式,指可以同时执行两个或多个程序,与之相对的则是串行。还应该注意,并行不是并发,两者之间是有明显区别的,有些开发者经常搞混。并发是指服务系统支持两个或多个任务同时存在,同时存在并不意味着同时执行,因为服务系统单位时间上只执行一个任

2022-05-21 11:39:41 12382 1

原创 Kubectl命令再也不用记了,自动补全提示真好

Kubectl命令概览Kubernetes提供的kubectl命令是与集群交互最直接的方式,v1.6版本的kubectl命令参考图如下:Kubectl的子命令主要分为8个类别:基础命令(初学者都会使用的)基础命令(中级)部署命令集群管理命令故障排查和调试命令高级命令设置命令其他命令熟悉这些命令有助于大家来操作和管理kubernetes集群。Kubectl命令行提示Bash命令提示简介kubectl 的 Bash 补全脚本可以用命令 kubectl completion b

2022-05-09 08:39:49 2523

原创 kubekey快速安装高可用k8s集群

KubeKeyKubeKey(由 Go 语言开发)是一种全新的安装工具,替代了以前使用的基于 ansible 的安装程序。KubeKey 为您提供灵活的安装选择,您可以仅安装 Kubernetes,也可以同时安装 Kubernetes 和 KubeSphere。KubeKey 的几种使用场景:仅安装 Kubernetes;使用一个命令同时安装 Kubernetes 和 KubeSphere;扩缩集群;升级集群;安装 Kubernetes 相关的插件(Chart 或 YAML)。项目地.

2022-05-02 22:54:27 6552

XXX产品软件概要设计书.doc

XXX产品软件概要设计书

2021-09-13

华为软件概要设计模板.doc

华为软件概要设计模板

2021-09-13

MySQL:使用mysqldump在Windows数据库定时备份

MySQL:使用mysqldump在Windows数据库定时备份-- mysqldump --opt --single-transaction=TRUE --user=%user% --password=%password% --host=%host% --protocol=tcp --port=%port% --default-character-set=%charSet% --routines --events %dbName% > %backupPath%\%backupFileName%ry-cloud_%dateTime%.sql

2020-12-11

nssm-2.24-103.zip

NSSM:封装exe和cmd为Windows系统服务 NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。

2020-12-11

Domain Driven Design (DDD Classic by Eric Evans).pdf

在微服务(Microservices)架构实践中,人们大量地借用了DDD中的概念和技术,比如一个微服务应该对应DDD中的一个限界上下文(Bounded Context);在微服务设计中应该首先识别出DDD中的聚合根(Aggregate Root);还有在微服务之间集成时采用DDD中的防腐层(Anti-Corruption Layer, ACL)

2020-02-02

Linux--Java环境搭建(Jdk8、MySQL5.7、Redis3.2)

Linux-JAVA环境搭建实施手册,包含Jdk8安装、MySQL5.7安装、Redis3.2安装,已经服务器硬件环境和网络环境说明

2019-04-20

idea :插件Statistic 统计代码数量和行数

显示项目统计数量。 这个插件显示的是按扩展名排序的文件,以及大小、行数、LOC等。 用户可以选择统计(Project/Module/Package/File)范围,选择范围后需要点击Refresh,。 (这个插件需要Java1.8)

2018-12-21

luke-6.6.0

Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具;具体参考:https://blog.csdn.net/fly910905/article/details/81190382

2018-07-24

增量打包工具 patch-generator-desk-v2.0.0

项目增量打包神器:全自动web增量打包发版,支持git/svn,支持多模块项目

2018-06-06

grafana-4.6.2.linux-x64.tar.gz

Prometheus自带的图表是非常基础的,只能用来临时查看一下数据。如果要构建强大的Dashboard,还是需要更加专业的工具才行。这个工具就是Grafana

2017-11-23

prometheus-2.0.0.linux-amd64.tar.gz

Prometheus 属于一站式监控告警平台,依赖少,功能齐全

2017-11-23

阿里巴巴Java开发手册(终极版).pdf

《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总 结, 经历了多次大规模一线实战的检验及不断的完善, 系统化地整理成册, 反馈给广 大开发者。 现代软件行业的高速发展对开发者的综合素质要求越来越高, 因为不仅是 编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如: 数据库的表 结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险; 工程结构混乱导致后续 维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。 所以本手册以 Java 开发者为中心 视角,划分为编程规约、异常日志、 单元测试、 安全规约、工程结构、 MySQL 数据库六 个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性, 规约依次分为强制、推荐、参考三大类。 对于规约条目的延伸信息中,“说明” 对内 容做了适当扩展和解释; “正例” 提倡什么样的编码和实现方式; “反例” 说明需要 提防的雷区, 以及真实的错误案例。

2017-09-25

毕向东_Java基础源代码Codes

毕向东老师的java源码,对java学习很有帮助

2015-08-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除