自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海鸥

在网络的世界里留下彩色印记

  • 博客(123)
  • 问答 (1)
  • 收藏
  • 关注

原创 Longhorn简介

Longhorn将不会停止卷,即使由于环境限制,例如没有足够的磁盘空间、不兼容的磁盘标签等,它不能保留附加卷的本地副本(工作负载)。“默认情况下,Longhorn工作负载的优先级与集群中的其他pods相同,这意味着在节点压力的情况下,例如节点耗尽内存,Longhorn工作负载将与其他pods的优先级相同。请注意,此设置仅设置系统管理组件的优先级。“当降级的卷中至少有一个失败的副本卷时,这个以秒为单位的间隔决定Longhorn为了重用失败副本的现有数据而不是直接为这个卷创建一个新副本最多需要等待多长时间。

2024-03-27 11:21:07 707

原创 关于k8s中 storageclass 的 is-default-sc 默认存储设置

取决于安装模式,你的 Kubernetes 集群可能和一个被标记为默认的已有 StorageClass 一起部署。这个默认的 StorageClass 以后将被用于动态的为没有特定存储类需求的 PersistentVolumeClaims 配置存储。例如,它配置的存储可能太过昂贵。如果它们中有两个或多个被标记为默认,Kubernetes 将忽略这个注解, 也就是它将表现为没有默认 StorageClass。删除默认 StorageClass 可能行不通,因为它可能会被你集群中的扩展管理器自动重建。

2024-03-13 10:15:23 907

原创 在K8S中Longhorn存储

Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。Longhorn使用容器(containers)和微服务()实现分布式块存储。Longhorn为每个块设备卷()创建一个专用的存储控制器(), 并跨存储在多个节点上的多个副本同步复制该卷。存储控制器()和副本(replicas)本身是使用 Kubernetes 编排的。

2024-02-27 11:05:39 1070 1

原创 mkfs.ext4 --- 对磁盘设备进行Ext4格式化

使用多大的块大小,需要根据你的系统综合考虑,如果系统用作邮件或者新闻服务器,使用较大的块大小,虽然性能有所提高,但会造成磁盘空间较大的浪费。lazy_itable_init=0/1 inode表不完全初始化 (挂载时由内核在后台初始化) // 40TG mount后50M写初始化55分钟 (格式化时:20s,强制初始化时:7min) (mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 )创建文件系统时,可以指定块的大小。用于resize2fs。

2024-02-27 09:54:00 1025

原创 Kubernetes的五大开源存储项目

OpenEBS 是一个开源的容器化存储平台,它是专为 Kubernetes 设计的,旨在提供可靠且易于管理的持久化存储解决方案。LongHorn 是 Kubernetes 的开源、轻量级分布式块存储框架,它将你的块存储分成 LongHorn 卷,并使用微服务和容器实现分布式块存储。Ceph 是一种开源的存储解决方案,提供堆存储、块存储和对象存储。在Kubernetes中,关于数据的持久化管理是一种挑战,对此,社区提供了多种存储的解决方案,这些方案旨在简化和优化容器化应用程序的持久化数据管理。

2024-02-26 09:36:46 618

原创 在k8s中,使用DirectPV CSI作为分布式存储的优缺点

利用 DirectPV,你可以将相应的 PV 直接与节点上的物理存储设备(如磁盘)进行绑定,而无需通过网络存储服务(如 NFS 或 Ceph)来提供存储。这种直接访问物理卷的方式,有助于提高性能和降低延迟。综合来看,使用 DirectPV CSI 可以在一定程度上提升性能,简化部署和管理,但也需要权衡其局限性,特别是在动态性和灵活性方面。综上所述,结合 DirectPV 和 Minio 集群需要密切关注数据可靠性和系统可用性,设计和实施相应的容错和恢复策略可以帮助你更好地应对硬盘和节点故障。

2024-02-18 15:33:18 567

原创 minio: expand decommission pools in argocd

【代码】minio: expand decommission pools in argocd。

2024-02-07 14:18:46 769

原创 convert docker run command to kubectl for one time execution 将docker run命令转换为kubectl一次执行

当Pod中的容器运行某些已完成的进程时,就会出现此问题。当其容器退出时,Pod完成。在Pod中连续运行容器是更常见的。shell 会被强制退出,关于如何保持 shell 打开的任何想法?或如何在死之前将bash命令传递给它?执行一个任务,该环境是我正在使用Kubernetes处理的环境。同样,我可以在K8S群集中运行busybox镜像。尝试运行一个docker镜像一次,以使用流行的。无法使该mc客户端以与上一个示例相同的方式工作。解决此完整问题的方法是保持容器运行。

2024-02-07 14:07:52 167

原创 Minio Decommission Server Pools

Minio Decommission Server Pools。

2024-01-11 13:33:14 401

原创 minio server pool 的特点小结

是目前minio 官方推荐的集群扩容方案,使用上简单,算是做到了真的集群扩容能力,操作简单,维护成本并不是很大。

2024-01-11 13:16:59 418

原创 minio 集群扩容

minio扩容

2023-12-25 16:42:37 1057

原创 argocd: Replace Resource Instead Of Applying Changes

但是在argocd的界面上显示有点异常,还不知道如何解决。但这也是目前job/workflow有变更时,则应用自动完成更新部署的。

2023-12-07 10:18:19 73

原创 helm部署报错Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress

输入helm history 命令检查当前状态, 我们会发现,最近的一次部署结果是pending-upgrade 所以阻塞了我们的继续部署。再去使用helm upgrade命令,就可以正常的升级了,升级之后,我们通过helm history 也可以检查到升级成功。回退之后,再检查一次当前状态,确认状态信息是回退到正确版本,且部署正确。使用helm rollback命令回退上一个正确的版本。

2023-12-01 08:46:49 403

原创 Docker容器资源限制 CPU / 内存 / 磁盘

在一台物理机上启动了多个docker容器时,就需要对内存及cpu做出相关的限制,以达到容器互不影响的目的。

2023-11-30 10:13:12 340

原创 argo workflow生成不同的名称

这将生成一个类似于 `my-workflow-2022-01-01T12:34:56Z` 的名称,其中 `2022-01-01T12:34:56Z` 是创建工作流的时间戳。通过在 `metadata` 部分的名称中添加这些变量,每次运行工作流时都会生成一个不同的名称。要实现在每次运行 Argo Workflow 时生成不同的名称,可以通过在名称中添加一个随机数或时间戳来实现。同样的名称则再次运行时会报错。这将生成类似于 `my-workflow-12345` 的名称,其中 `12345` 是一个随机数。

2023-11-29 15:24:26 84

原创 linux shell中set -e命令的作用

set -e 的用途是在脚本中进行错误处理和控制流程。通过设置set -e,可以确保脚本在遇到错误时能够立即停止执行,而不会继续执行可能会导致更严重错误的命令。set -e 是一个在shell脚本中常用的命令,它的含义是在脚本执行过程中,如果出现任何一个命令的执行结果不是零(即命令执行失败),则立即退出整个脚本。并不适用于所有情况。在某些情况下,您可能希望在命令失败时继续执行脚本。在这种情况下,您可以使用set +e命令来禁用set -e选项。这意味着,如果脚本中的任何命令失败,整个脚本都将立即停止执行。

2023-11-29 14:38:53 348

原创 jenkins pipeline 运行超时后强制停止

要在Jenkins Pipeline中设置超时,并在超时后强制停止运行,可以使用Jenkins Pipeline的timeout指令。在上述示例中,Pipeline定义了三个阶段(Build、Test和Deploy),每个阶段都有相应的步骤。在Jenkins中,Pipeline是一种用于定义持续集成/持续交付(CI/CD)流程的工具。有时候,Pipeline的执行可能会超时,需要强制停止。如果Pipeline的执行超过了1小时,Jenkins将自动终止该Pipeline的执行,并将其标记为超时。

2023-11-29 09:30:26 1021

原创 Jenkins中强制停止停不下来的job

Jenkins 的提供了 script console 的功能,允许你写一些脚本,来调度 Jenkins 执行一些任务。我们就可以利用 script console 来强制停止 job 执行。script console 路径:manage jenkins -> manage nodes -> master -> script console。运行后,就会发现,原来停不下来的 job,已经停止执行了!) → 脚本命令行(script console)系统管理(manage。

2023-11-14 09:40:15 1648

原创 在k8s中,CronJob 和 Job 的 Pod 退出保留时间

在k8s中job中停留的时间参数

2023-04-25 16:38:21 1036 1

原创 Containerd 配置 Proxy

containerd proxy

2023-03-13 14:53:35 619

原创 使用git pull文件时和本地文件冲突时…(Please commit your changes or stash them before you merge.)

git stash

2022-11-18 09:59:18 829

原创 Dockerfile多阶段构建(multi-stage builds)

dockerfile multi-stage builds

2022-10-28 13:20:44 3689

原创 Argo rollout 是生产环境下部署的利器

Argo rollout 是生产环境下部署的利器

2022-09-21 09:45:50 379

原创 在containerd,将 ‘ctr image‘ 转换成 ‘crictl image‘

在containerd,将 'ctr image' 转换成 'crictl image'

2022-09-20 09:43:34 2432

原创 Docker、containerd的小结

Docker、containerd的小结

2022-07-11 10:07:24 2171

原创 helm2 与 helm3

彻底删除helm chart

2022-06-23 20:34:42 514

原创 Argo Workflows

Argo Workflows是一个开源项目,为Kubernetes提供container-native工作流程,其主要通过Kubernetes CRD实现的。

2022-05-22 18:05:07 329

原创 git push 常见用法

git push 命用于从将本地的分支版本上传到远程并合并。git push的配对方式默认设置:就是本地与远程的配对simple是默认本地只与一个进行根性mtching是默认远程的全部被更新!我们现在默认的是simple了!!!!!配对:git branch --track 本地分支 远程分支 把本地分支与远程分支进行对接$ git config --global push.default matching# 或者$ git config --global push.default ..

2022-05-03 21:08:45 1074

原创 Minikube入门

什么是Minikube? Minikube是一种轻量化的Kubernetes集群,是Kubernetes社区为了帮助开发者和学习者能够更好学习和体验k8s功能而推出的,借助个人PC的虚拟化环境就可以实现Kubernetes的快速构建启动。目前已支持在macOS、Linux、Windows平台上利用各类本地虚拟化环境作为驱动运行。官方文档:minikube start | minikubeGithub地址:https://github.com/kubernetes/minikube M...

2022-05-01 21:33:44 2085

原创 在Jenkins上配置kubernetes环境

一、安装Kubernetes插件二、根据k8s配置文件config生成认证文件(1)找到config文件,默认是在/root/.kube/config(2)获取/root/.kube/config中对应内容并转化成base64 encoded文件# grep certificate-authority-data /root/.kube/config |cut -d" " -f 6 | base64 -d > ca.crt# grep client-certificate-d

2022-04-18 10:52:31 1104

原创 Kubernetes中查看用户的token并验证

kube-dns查看token#查看所有账号kubectl -n kube-system get sa取得secretskubectl -n kube-system get sa kube-dns -o yaml 取得secrets#secrets值为kube-dns-token-rst6j取得tokenkubectl get secrets kube-dns-token-rst6j -n kube-system -o yaml取得token值kubectl get secret k

2022-04-15 20:56:12 1786

原创 k8s用ServiceAccount Token的方式访问apiserver

在kubernetes集群,可以登陆到master集群,可以使用私钥证书的方式访问。证书路径:master的/etc/kubernetes/pki/(ca.crt / apiserver.crt / apiserver.key) 下面。# server是apiserver公网访问地址curl --cacert ca.crt --cert apiserver.crt --key apiserver.key https://$server/api这里再介绍一下使用ServiceAccount T

2022-04-15 20:05:18 2353

原创 通过kubeconfig文件生成证书,用curl访问Kubernetes API server

Kubernetes是一个完全基于API的系统。使用curl或Postman等简单工具,在构建应用程序之前获取API信息更方便。1、从查看 kubectl 的配置文件开始,需要:三个证书和 API server 的地址# cat /root/.kube/config 2、我们将会把证书设为环境变量,在设置时候请检查每一个参数。我们从 client-certificate-data 开始。export clientcert=$(grep client-cert ~/.kube/confi

2022-04-15 16:47:26 1926 1

原创 K8S 证书过期解决办法

问题现象K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问。查看K8S的日志:Part of the existing bootstrap client certificate is expired: 2021-06-10 06:29:04 +0000 UT这是说明k8s使用的证书过期了,k8s自带证书是一年的有效期。所以我们解决问题的办法就是更换证书。一、确认K8S证书过期时间查看k8s某一证书过期时间:

2022-04-14 15:03:57 13877 6

原创 终止Jenkins某Job的排队任务

Jenkins => 系统管理 => Jenkins CLI在命令行中输入:import hudson.model.*def q = Jenkins.instance.queueq.items.findAll { it.task.name.startsWith('JobName') }.each { q.cancel(it.task) }“JobName”可替换

2022-04-13 21:13:05 2052

原创 GitOps工具Argo CD实战

背景GitOps 的概念最初来源于 ​​Weaveworks​​​ 的联合创始人 Alexis 在 2017 年 8 月发表的一篇博客 ​​GitOps - Operations by Pull Request​​。其是开发者和运维在集群上线和更新在 Kubernetes 运行的复杂应用程序的一种快速、安全的方法。Alexis的文章文章介绍了 Weaveworks 的工程师如何以 Git 作为事实的唯一真实来源,部署、管理和监控基于 Kubernetes 的 SaaS 应用。核心:对于K8s和其

2022-04-13 16:23:12 287

原创 kubectl plugin

#kubectl pluginhttps://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins#krewhttps://github.com/kubernetes-sigs/krewKrew是管理Kubectl插件的必备工具,这是K8s用户必须拥有的。介绍超过180个可用插件的细节。#install:https://krew.sigs.k8s.io/docs/user-guide/setup/install/https:/

2022-03-01 19:40:08 198

原创 python package/module in windows 安装

方法一:cmd中运行pip install xx注意:1.pip添加至环境变量 2.系统自带这些安装模块运行pip freeze > requirements.txt 可以在requirements.txt文件中查找哪些module可以用这种方法安装用法指导:https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels方法二:下载需安装module的.whl文件https:/...

2022-01-28 09:53:59 194

原创 Helm 常用命令小记

官网:https://helm.sh/zh/docs/helm/Helmhelm #查看helm基本操作命令helm version #查看helm的版本helm env #查看环境变量helm create chartName #创建chart目录(含基本配置文件和目录)helm package chartDir #将chart目录打包helm template chartName #渲染template目录下的模板文件(即将这些模...

2021-12-20 10:48:58 5124

翻译 12个Kubernetes命令用于调试Kubernetes工作负载

不管你是遭遇可怕的CrashLoopBack还是其他失败,这些命令将帮助你缩小工作负载问题的范围,以便修复它们。在任何集群中都可以使用的命令(无论在何处运行它),也没有假设在安装指标服务器之外有集中的指标或日志记录。大多数命令将使用kubectl命令或插件,你可以通过krew安装这些命令或插件。如果你不想使用这些插件,通常可以从kubectl获得相同的信息,但这些插件将格式化数据,使调试更容易。假设代码正常工作,并且知道哪个应用程序被破坏,以及它在哪里运行。Kubernetes无法修复损坏的代码。但

2021-12-15 15:12:35 331

空空如也

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

TA关注的人

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