- 博客(963)
- 资源 (13)
- 收藏
- 关注

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

原创 使用 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
58018
32

转载 kubectl :命令技巧大全
kubectl 命令技巧大全Kubctl 命令是操作 kubernetes 集群的最直接和最 skillful 的途径,这个60多MB大小的二进制文件,到底有啥能耐呢?请看下文:Kubectl命令概览Kubernetes提供的kubectl命令是与集群交互最直接的方式,v1.6版本的kubectl命令参考图如下:上面Kubectl的子命令主要分为8个类别:基础...
2019-07-25 08:39:24
30336
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
3421
原创 kubectl-ai:K8S资源清单的GPT助手
琦彦,在 *云原生百宝箱 *公众号等你,与你一起探讨应用迁移,GitOps,二次开发,解决方案,CNCF生态,及生活况味。kubectl-ai 项目是一个kubectl使用 OpenAI GPT 生成和应用 Kubernetes 清单的插件。
2023-06-29 15:47:13
519
原创 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
414
2
转载 mysql查看实时语句和慢sql
Mysql除了手动执行的语句,还有很多在后台由其他模块执行的语句,按理来说,那些由其他模块执行的语句是不能实时查看的,因为这个资源消耗特别的大,但是当我们实在需要查看实时sql语句的时候也不是做不到,需要手动开启一个日志开关。首先登陆mysql,然后执行发现这个Value是off,那么就说明实时记录可见我们不仅打开了的开关,而且设置日志输出方式为文件(如果设置的话,则日志结果会记录到名为的表中,这表的默认引擎都是CSV)。同时规定它的保存位置是。
2022-12-23 15:10:01
462
原创 Harbor使用公网证书
因为Harbor使用Nginx做代理,因此在公网证书审核通过后,在证书下载面板,单击Nginx服务器操作列的下载。。PEM格式的证书文件是采用Base64编码的文本文件,您可以根据需要将证书文件修改成其他格式。关于证书格式转换的具体操作,请参见。。上传证书到服务器某个目录,然后修改certificate和private_key。
2022-11-12 18:41:45
1521
原创 申请阿里云免费证书
阿里云免费SSL证书是赛门铁克(Symantec)品牌的,免费证书只能保护一个域名(带www和不带www可以通用)。阿里云个人账号和企业账号均可申请,多个域名可以申请多个免费证书,阿里云免费证书一个账户限制20个。
2022-11-12 18:37:30
8845
4
原创 配置对 Harbor 的 HTTPS 访问
默认情况下,Harbor 不附带证书。可以在没有安全性的情况下部署 Harbor,以便你可以通过 HTTP 连接到它。但是,在生产环境中,建议使用 HTTPS。如果你要使用Content Trust with Notary ,则必须使用 HTTPS。要配置 HTTPS,你必须创建 SSL 证书。你可以使用由受信任的第三方 CA 签名的证书,也可以使用自签名证书。本节介绍如何使用创建 CA,以及如何使用你的 CA 签署服务器证书和客户端证书。你也可以使用其他 CA 提供程序,例如。
2022-11-12 10:44:39
3143
原创 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
455
原创 Harbor镜像层膨胀,占用存储过大
名,默认就是 latest,registry 会从 HTTP 请求中解析到这个 tag 名,然后根据 tag 名目录下的 link 文件找到该镜像的 manifest 的位置返回给客户端,客户端接着去请求这个 manifest 文件,客户端根据这个 manifest 文件来 pull 相应的镜像 layer。如果指的容器存储路径对应的宿主机路径,直接在宿主机上执行也是可以,从上文我们知道registry容器存储目录/storage,对应于宿主机的/data/registry。将本机的路径挂载到容器内。
2022-10-28 20:01:01
664
原创 Harbor断电重启postgres报错 could not locate a valid checkpoint record
Harborv2.2.2内置的数据库是postgres9.6.21,服务器突然断电,重启harbor后报错,信息如下。
2022-10-28 19:59:04
636
原创 Harbor新建仓库目标提示 the registry is unhealthy
两个harbor需要通过镜像复制策略来同步镜像,在仓库管理添加的harbor状态是unhealthy。
2022-10-28 19:57:50
1062
原创 Habor数据迁移方式有多少,skopeo效率最好
skopeo 使用 API V2 Registry,例如 Docker Registry、Atomic Registry、私有Registry、本地目录和本地 OCI 镜像目录。
2022-10-21 08:50:07
1869
转载 镜像搬运工具 Skopeo 使用
作为公司内部 PaaS toB 产品的打包发布人员,容器镜像对我们打工人而言就像是工地上的砖头 🧱,而我的一部分工作就是将这些砖头在各个仓库之间搬来搬去,最终将这些砖头打包放在产品的安装包中,形成一个完整的 PaaS 产品安装包。
2022-10-21 08:39:56
1036
转载 收集yum install安装的软件的全量依赖 rpm 包
离线安装主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。有时候离线 rpm 包有比较难于收集齐全,但测试环境我们又可以通过完成某个软件的安装,那我们是否可以将yum 方式安装的软件,通过某种方式收集该软件的rpm 包和它依赖的 rpm 包。在离线的内网环境下进行安装一些软件的时候会出现依赖不完整的情况,一般情况下会使用如下方式进行下载依赖包Centos 7.6: 查看提供某个命令的rpm包: 查看rpm包所需的全部依赖。
2022-10-18 12:17:23
2382
原创 Docker load 大镜像(17G) 报错no space left on device
Docker load 大镜像 (17G) 报错 no space left on device
2022-10-13 09:32:35
1470
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
3439
翻译 基于kube-scheduler-simulator编写自己的调度程序
你可以使用 kube-scheduler-simulator 开发自己的调度程序,它从不需要真正的集群mini-kube-scheduler/minisched 实现帮助你从最少的代码开始。
2022-08-27 10:57:18
5424
1
原创 k8s实战系列:3-存储的花样玩法(下)
中我们谈论了Docker存储,已经Kubernetes中的配置数据中的ConfigMap和Secret, 接下来我们会讨论下Kubernetes中的临时存储,持久存储等。
2022-08-23 17:40:11
6662
原创 k8s实战系列:3-存储的花样玩法(上)
容器中的应用读写数据都是发生在容器的读写层,镜像层+读写层映射为容器内部文件系统、负责容器内部存储的底层架构。当我们需要容器内部应用和外部存储进行交互时,需要一个类似于计算机 U 盘一样的外置存储,容器数据卷即提供了这样的功能。另一方面:容器本身的存储数据都是临时存储,在容器销毁的时候数据会一起删除。而通过数据卷将外部存储挂载到容器文件系统,应用可以引用外部数据,也可以将自己产出的数据持久化到数据卷中,所以容器数据卷是容器进行数据持久化的实现方式。
2022-08-23 17:30:05
6773
转载 Docker运行ubuntu22.04出现异常
通常情况下,容器里面所有的系统调用都会被docker捕获,然后docker决定如何处理它们。如果docker中没有为特定系统调用指定策略,则默认的策略会通知容器这边"Permission Denied"。由于生产环境调整docker版本不是一件容易的事情,所以生产环境在构建镜像时候要避免使用ubuntu21.10和fedora35以更高版本的镜像,以及使用它们作为基础镜像的其他镜像。不过这会有很大的问题,一个是你的容器将变得不安全,另一个是这些参数在构建镜像的时候是不可用的。的时候出现了以下报错。
2022-08-22 20:28:41
1710
1
翻译 2022 Kubernetes 批处理和HPC发展一览
Kueue 和现有的 Kubernetes 组件完美融合,不用担心功能差异,让客户使用更简单。下一步的开发计划是:与常见定制工作负载的集成:Spark、Kubeflow 等;作业抢占机制;预算管理;多集群支持。项目地址:...
2022-08-14 21:31:50
2294
1
原创 Kubernetes存储:Ceph架构,部署和使用
无论您是想为和/或服务、部署还是将 Ceph用于其他目的,所有部署都从设置每个、您的网络和 Ceph开始存储集群。一个 Ceph存储集群至少需要一个 CephMonitor、CephManager 和 CephOSD(对象存储守护进程)。运行 Ceph文件系统客户端时也需要 Ceph元数据服务器。(Ceph-mon) 维护集群状态的映射,包括监视器映射、管理器映射、OSD 映射、MDS 映射和 CRUSH 映射。这些映射是 Ceph守护进程相互协调所需的关键集群状态。......
2022-08-14 12:46:37
6069
原创 Harbor2.2 用户角色权限速查
在公共项目中,所有用户都可以查看存储库列表、镜像、镜像漏洞、helmcharts和helmcharts版本、拉取镜像、重新标记镜像(需要目标镜像的推送权限)、下载helmcharts、下载helmcharts版本。通过将用户包含在项目中并向他们分配以下角色之一,你可以向用户提供对这些镜像的访问权限。*只有Harbor系统管理员可以编辑项目配额和添加新的扫描器。用户具有不同的能力,具体取决于他们在项目中的角色。下表描述了项目中的各种用户权限级别。系统管理员拥有项目的所有权限。......
2022-07-24 15:02:39
1519
原创 Git-LFS:大文件也有了版本管理
GitHub限制存储库中允许的文件大小。如果尝试添加或更新大于50MB的文件,您将从Git收到警告。更改仍将成功推送到仓库,但您可以考虑删除提交,以尽量减少对性能的影响。GitHub阻止超过100MB的推送。要跟踪超出此限制的文件,必须使用GitLargeFileStorage(GitLFS)。更多信息请参阅“”。GitLFS”和“”。**核心思想**把需要进行版本管理、但又占用很大空间的那部分文件独立于Git仓库进行管理。...
2022-07-19 08:42:18
8222
原创 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
3176
原创 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
8149
原创 使用bitnamiredis-sentinel部署Redis 哨兵模式
获取 Bitnami Redis® Sentinel Docker 镜像的推荐方法是从Docker Hub Registry中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。你可以在 Docker Hub Registry 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。连接到其他容器使用Docker 容器网络,你的应用程序容器可以轻松访问在容器内运行的 Redis® 服务器。连接到同一网络的容器可以使用容器名称作为主机名相互通信。在此示例中,我们将创建一个 Redis® Senti
2022-06-26 20:57:10
9184
2
原创 kubernetes资源命名约束和最佳实践
客户端提供的字符串,它引用资源 URL 中的对象,例如.一次只能有一个给定类型的对象具有给定名称。但是,如果您删除该对象,您可以创建一个具有相同名称的新对象。很多资源类型需要可以用作 DNS 子域名的名称。 DNS 子域名的定义可参见 RFC 1123。 这一要求意味着名称必须满足如下规则:某些资源类型需要其名称遵循 RFC 1123 所定义的 DNS 标签标准。也就是命名必须满足如下规则:某些资源类型需要其名称遵循 RFC 1035 所定义的 DNS 标签标准。也就是命名必须满足如下规则:某些资源类型要求
2022-06-15 21:30:00
3334
原创 基于Docker快速搭建 PostgreSQL 高可用方案
此 PostgreSQL 集群解决方案包括 PostgreSQL 复制管理器(),这是一种用于管理 PostgreSQL 集群上的复制()和故障转移()的开源工具。获取 Bitnami PostgreSQL HA Docker 镜像的推荐方法是从 Docker Hub Registry 中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。 你可以在 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。持久化你的应用程序如果删除容器,所有数据都将丢失,下次运行镜像时,数据库将重新初始化。
2022-06-15 09:47:22
5857
7
原创 kubernetes多网卡方案之Multus CNI部署和基本使用
一个容器启动后,在默认情况下一般都会只存在两个虚拟网络接口(loopback和eth0),而loopback的流量始终都会在本容器内或本机循环,真正对业务起到支撑作用的只有eth0,当然这对大部分业务场景而言已经能够满足。但是如果一个应用或服务既需要对外提供API调用服务,也需要满足自身基于分布式特性产生的数据同步,那么这时候一张网卡的性能显然很难达到生产级别的要求,网络流量延时、阻塞便成为此应用的一项瓶颈。基于上述痛点和需求,容器多网络方案不断涌现。k8s有一个多网卡规范:K8sNetworkPlumbi
2022-06-08 20:48:06
1527
1
原创 Kubernetes证书类型和适用场景
我们在前面已经学习了「对称密码算法」与「非对称密码算法」两个密码学体系,这里做个简单的总结。但是非对称密码算法仍然存在一些问题:数字证书与公钥基础架构就是为了解决上述问题而设计的。首先简单介绍下公钥基础架构(Public Key Infrastructure),它是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。 PKI 是一个总称,而并非指单独的某一个规范或标准,因此显然数字证书的规范(X.509)、存储格式(PKCS系列标准、DER、PEM
2022-06-02 00:10:55
2803
1
原创 kubernetes GPU共享的困境和破局
kubernetes GPU的困境和破局随着人工智能与机器学习技术的快速发展,在 Kubernetes 上运行模型训练、图像处理类程序的需求日益增加,而实现这类需求的基础,就是 Kubernetes 对 GPU 等硬件加速设备的支持与管理。kubernetes 调度 GPU-使用篇Kubernetes 支持对节点上的 AMD 和 NVIDIA GPU (图形处理单元)进行管理,目前处于实验状态。在 GPU 的支持上,最基本的诉求其实非常简单:我只要在 Pod 的 YAML 里面,声明某容器需要的 G
2022-05-23 23:30:00
2421
转载 如何在 shell 中实现并行执行
如何在 shell 中实现并行执行今天,有个同事问我,他的 shell 中要执行一个迭代200次的循环,因为每一次循环都需要消耗一定的时间,执行起来比较慢,问我可不可以改成并行执行,循环一次执行10个任务,循环20次来完成所有的任务。什么是并行?并行,是一种常见的任务执行过程模式,指可以同时执行两个或多个程序,与之相对的则是串行。还应该注意,并行不是并发,两者之间是有明显区别的,有些开发者经常搞混。并发是指服务系统支持两个或多个任务同时存在,同时存在并不意味着同时执行,因为服务系统单位时间上只执行一个任
2022-05-21 11:39:41
15670
1
原创 Kubectl命令再也不用记了,自动补全提示真好
Kubectl命令概览Kubernetes提供的kubectl命令是与集群交互最直接的方式,v1.6版本的kubectl命令参考图如下:Kubectl的子命令主要分为8个类别:基础命令(初学者都会使用的)基础命令(中级)部署命令集群管理命令故障排查和调试命令高级命令设置命令其他命令熟悉这些命令有助于大家来操作和管理kubernetes集群。Kubectl命令行提示Bash命令提示简介kubectl 的 Bash 补全脚本可以用命令 kubectl completion b
2022-05-09 08:39:49
2667
MySQL:使用mysqldump在Windows数据库定时备份
2020-12-11
nssm-2.24-103.zip
2020-12-11
Domain Driven Design (DDD Classic by Eric Evans).pdf
2020-02-02
Linux--Java环境搭建(Jdk8、MySQL5.7、Redis3.2)
2019-04-20
idea :插件Statistic 统计代码数量和行数
2018-12-21
luke-6.6.0
2018-07-24
grafana-4.6.2.linux-x64.tar.gz
2017-11-23
阿里巴巴Java开发手册(终极版).pdf
2017-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人