- 博客(233)
- 收藏
- 关注

原创 Gitops-万字保姆级教程-小白也可以轻松学会! (Part 2)-ArgoCD
在Part 1中我们安装了Gitlab、配置了Gitlab-Runner、并且测试了最基本的Ci流水线。接着结合Sonar_qube对代码进行静态扫描并集成在Gitlab_Ci中。我们初步的完成了Ci阶段。这篇Part 2 主要涉及到CD阶段,通过Argo结合Gitops部署到我们的环境中。在Part 1 篇中我们使用的Python代码只用于演示Ci阶段,本次演示代码使用博主的Github开源仓库。开源万岁!一、Argo-CD是什么?总结。
2024-07-23 23:08:11
1297

原创 Gitops-万字保姆级教程-小白也可以轻松学会! (Part 1)-Gitlab与Gitlab-Ci
本文章分为2个部分:Part 1主要涉及Gitlab、Gitlab-Runner、Git-Ci、Sonar-qube。Part 2主要涉及Rancher、Fleet、Git-Ci。GitOps 是一种用于持续交付(CD)的实践,它将 Git 作为单一的真理来源和配置的中心。这种方法强调开发人员和运维团队使用 Git 进行版本控制、代码审查和自动化部署的能力,以提高软件开发和部署的速度、安全性和可靠性。也可以参考下面我的另外一篇博客。
2024-07-10 23:44:28
2021

原创 Gitops-万字保姆级教程-小白也可以轻松学会! (Part 3)-关于git你需要知道的事情
这是Devops系列文章的第三篇,从git命令学习。
2024-03-24 22:51:02
878
原创 Rancher-Aborting system-agent installation due to requested strict CA verification with no CA checks
全剧设置-修改默认为system store即可。Rancher配置了严格CA验证模式。
2025-03-18 15:44:00
233
原创 plugin type=“calico“ failed (add): error adding host side routes for interface: cali14f95abeeaf, err
安装了依赖iptables的cni插件,但是在没有安装iptables的情况下启动了集群。重启dammon-set部署在每个节点的CNI pod。
2025-03-16 11:23:56
222
原创 处理helm假死
你遇到的错误消息表明,在 命名空间中的 发行版上,之前的 Helm 操作(安装、升级或回滚)仍在进行中,这阻止了你的 命令完成。此外,还有关于 Kubernetes 配置文件权限不安全的警告,我们也可以解决这个问题。让我们一步一步地解决这个问题。Helm 跟踪发行版的状态,如果之前的操作没有正确完成(例如,由于超时、崩溃或中断),它可能会使发行版处于挂起状态。要解决这个问题:检查 Traefik 发行版的状态:运行以下命令以查看 发行版的当前状态:查看输出中的 字段。如果它显示 、 或 ,这就
2025-03-12 16:16:19
498
原创 记录一下_treafik使用Gateway-APi使用的细节参数
这里的External_ip为我的节点IP,因为使用了k3s自带的LB,这个SVC就很容易绕进去。2、这里的80和443是占用了External_ip为我的节点IP的80和443.1、第一个这个LB的作用是为了暴露treafik给集群外的Client访问使用。这么做就相当于直接把服务暴露到外面,特别适合和公有云集成特别好的场景。3、以及对应的30285和32299都是占用了节点IP的端口。一、这里说一下treafik最大的容易走入圈套的地方。4、相当于浪费了两个端口。二、gateway的配置。
2025-02-21 15:57:55
428
原创 Harverster_with_k10
我们已经部署了K10,并且注释了我们的volumesnapshotclasses和快照类,我们已经准备好备份一些虚拟机了。请注意,这将把Kasten K10用户和密码设置为:-用户:veeam-密码:kasten。2、复制到你可以访问Harverster到节点。一、在Harverster上部署k10。2、使用Kubeconfig部署k10。下载的yaml叫local.yaml。1、获取Kubeconfig。将下载的local.yaml。二、给Longhorn打标签。
2025-02-21 14:41:54
201
原创 用 Kubernetes Descheduler 打造高效集群:从配置到实践
Kubernetes 的默认调度器(kube-scheduler)擅长将 Pod 分配到合适的节点,但它不会主动调整已经运行的 Pod。而 Descheduler 的作用就像一个“巡逻员”,定期检查集群状态,根据自定义策略逐出不符合条件的 Pod,然后交给调度器重新分配。在这次案例中,我们将通过一个 ConfigMap 和一个 CronJob,部署一个每 2 分钟运行一次的 Descheduler,优化集群资源。RemoveDuplicates:发现重复的 Pod(比如副本数超标)就清理掉,保持整洁。
2025-02-21 08:15:06
867
原创 第八章-SUSE- Rancher-容器高可用与容灾测试-Longhorn(容灾卷跨集群测试)
第一章我们搭建好了Mysql(主备复制)实例。第二章我们搭建好Rancher管理集群的基础设施- RKE2集群-Tarball方法-离线。第三章我们使用helm离线方式部署好Rancher到RKE2集群中,同时使用Rancher-backup-调度了一次备份任务到阿里云的对象存储。第四章 我们模拟主数据中心数据库故障,将RKE2进行Mysql数据库主备倒换。第五章,我们使用Rancher-backup对Rancher进行异地还原。
2025-02-10 09:19:00
735
原创 记录一次,aliyun ECS 部署rke2集群-修改主机名后出现两个节点情况
*修改上面的nodeName为你的节点,因为本生节点就是NotReadly所有不会再次调度。1、修改了主机名称但k8s集群没有同步。2、强制删除pod上调度的所有pod。2、冲突节点无法正常删除。4、残余的卡住的pod。**做这一步之后出现这个提示。
2025-02-08 09:33:15
287
原创 kubectx和kubens-安装以及使用体验分享
一、kubectx和kubens干嘛的是一个可以在 kubectl 上更快地切换上下文(集群)的工具。是可以在 Kubernetes 命名空间之间轻松切换(并为 kubectl 配置它们)的工具。二、场景1、你习惯用CLI管理很多环境的k8s。2、方便切换集群和Namespace.三、安装手动安装(macOS 和 Linux)由于kubectx和kubens是用 Bash 编写的,因此您应该能够将它们安装到任何安装了 Bash 的 POSIX 环境中。
2025-02-06 10:12:57
343
原创 脚本一键生成管理下游k8s集群的kubeconfig
进入集群删除CertificateSigningRequest对应的请求CSR。2、不希望使用默认的cluster-admin权限的config.1、需要管理下游k8s集群的场景。2、如果配置错误,需要重新生成。
2025-02-06 09:10:32
281
原创 第七章-SUSE- Rancher-容器高可用与容灾测试-Rancher拉起的集群(容灾测试)
1、本章完成了Rancher对下游集群打快照进行还原,只是简单做了一下etcd数据库的还原(元数据)。2、下一章会针对下游集群升级版本还原以及将kafka中写入业务数据再还原进行测试。3、同时会使用longhorn的快照卷进行跨集群恢复kafka测试。
2025-02-05 17:06:21
1326
原创 记录一次:cannot allocate new block due to per host block limit
OS没有安装iptables,但是calico插件选择iptables来做LB.安装iptables即可。
2025-02-05 10:02:48
255
原创 第六章-SUSE- Rancher-容器高可用与容灾测试-RKE2-数据库(Mysql-异地备份还原方式容灾)
第一章我们搭建好了Mysql(主备复制)实例。第二章我们搭建好Rancher管理集群的基础设施- RKE2集群-Tarball方法-离线。第三章我们使用helm离线方式部署好了Rancher到RKE2集群中,同时使用Rancher-backup-调度了一次备份任务到阿里云的对象存储。第四章 我们模拟主数据中心故障,将RKE2集群进行了恢复(ETCD数据库)。第五章,我们使用Rancher-backup对Rancher进行异地还原。
2025-02-04 12:00:47
1303
原创 记录一次-Rancher通过UI-Create Custom- RKE2的BUG
但因为用的是Mysql外部数据库,这个就太扯了,而且这个检测不过,集群是咩办法被管理的。二、如果不选择etcd,就选择控制面。不识别kubenetes数据库。**他会检查ETCD。
2025-02-04 00:39:02
500
原创 ExternalName Service 针对的是k8s集群外部有api服务的场景?
**ExternalName Service** | 外部服务有稳定域名,无需端口重映射 | 否(依赖 DNS) | 否 |是的,**ExternalName Service 正是专门用于将 Kubernetes 集群内部的应用请求代理到外部服务(如 API、数据库等)的场景**。| **服务网格(如 Istio)** | 需要高级流量管理(熔断、重试、监控) | 否(通过 ServiceEntry)| 是 |
2025-02-02 09:36:27
727
原创 K8s介绍代理外部服务的svc几种方式
**原理**:创建 `ClusterIP` 类型的 Service 并手动指定 `Endpoints`,将流量导向外部服务的 IP 和端口。- **原理**:创建无头 Service(`ClusterIP: None`)并配置 Endpoints,直接暴露外部服务的地址。- **适用场景**:外部服务有固定 IP,且需通过 Service DNS 名称统一访问。- **注意事项**:需手动维护 IP,变更时需更新 Endpoints。- **适用场景**:外部服务有固定域名,无需处理 IP 变化。
2025-02-02 09:35:24
622
原创 第五章-SUSE- Rancher-容器高可用与容灾测试-Rancher-(使用Rancher-backup-异地还原测试)
工作流:1、创建一个ResourceSet,以您要备份的所有资源为目标。2、执行备份:要进行备份,用户必须创建备份CRD的实例(创建备份CR)。3、从备份恢复:要从备份恢复,用户必须创建还原CRD的实例(创建还原CR)
2025-02-01 21:51:20
1425
原创 第四章-SUSE- Rancher-容器高可用与容灾测试-RKE2-数据库(Mysql主备倒换容灾)
第一章我们搭建好了Mysql(主备复制)实例。第二章我们搭建好Rancher管理集群的基础设施- RKE2集群-Tarball方法-离线。第三章我们使用helm离线方式部署好了Rancher到RKE2集群中,同时使用Rancher-backup-调度了一次备份任务到阿里云的对象存储。本章我们做几个实验:1、RKE2集群-etcd-Mysql主备倒换-容灾测试。2、Rancher-backup-容灾测试。1、会对现有的Rancher做一些简单的变更,数据添加模拟运行了一段时间的Rancher。
2025-01-31 10:18:02
1037
原创 第三章-SUSE- Rancher-容器高可用与容灾测试-Rancher-(离线helm部署)
第一章我们搭建好了Mysql(主备复制)实例。第二章我们搭建好Rancher管理集群的基础设施- RKE2集群-Tarball方法-离线。本章我们计划使用helm-离线部署安装Rancher到RKE2集群中。1、这边文件记录了离线部署Rancher的注意事项。2、以及部署Rancher-backup备份Rancher.3、下一章我们开始正式的容灾测试。1、RKE2集群-etcd-Mysql主备倒换。2、会对现有的Rancher做一些简单的变更,数据添加模拟运行了一段时间的Rancher。
2025-01-27 16:46:42
1187
1
原创 第二章-SUSE- Rancher-容器高可用与容灾测试-RKE2-集群搭建(使用Mysql)
第一章我们搭建好了Mysql(主备复制)实例。第二章我们准备搭建好Rancher管理集群的基础设施。1、RKE2集群。2、给Rancher使用的4层LB。(这里用阿里云的NLB,如果是私有云使用nginx即可)一、创建RKE2集群的云主机*测试环境2C-4G即可,正式环境根据负载进行扩容1、这边文章重点展示了离线部署RKE2与使用外部的Mysql来存储k8s的键值存储。
2025-01-22 18:57:28
1080
原创 第一章-SUSE- Rancher-容器高可用与容灾测试-RKE2-外置数据库(Mysql主备集群搭建)
1、趁春节刚好有时间,有点闲钱,准备做一下容器的知识巩固与积累,特别是针对与容灾方面的知识。2、计划使用阿里云,在上海、北京区域模拟搭建数据中心,上海为主、北京为备。1、上海部署Rancher管理集群-底层使用RKE2(外置存储-Mysql(主备))1、优先测试RKE2的容灾能力,使用备份还原的方式在另外可用区拉起RKE2集群。2、同时使用Rancher-backup测试Rancher集群的容灾能力。2、测试完毕后通过Rancher拉起1套RKE2业务A集群。
2025-01-21 12:06:58
1143
原创 Kubernetes-网络模型理解
2、需要让需要与主机的命名空间的POD可以与其它命名空间的POD通信。1、直接和主机一个网络命民空间的Pod可以与其它命名空间的POD通信。*那么这句话的意思就是Pod 与 不同节点上的pod必须有来回的明细路由。所有可以看到所有的CNI插件为了满足上面的3个要求选择的网络方案基本都大同小异。四、节点上的容器运行时与CNI插件与kubelet是怎么样的关系?2、Kubelet只管管理插件,具体的活是有想要的插件供应商来做。kubelet通过CRI与容器运行时交互,请求启动Pod中的容器。
2025-01-21 10:07:48
581
原创 Kubernetes-使用集群CA证书给用户颁发客户端证书访问Api-Server(二)
在CA根证书的下方是server,这里的server指的是api-server的SAN属性的地址以及对外暴露的服务端口,因为api-server的证书也是被同一个CA根证书签发的,所以你用被同一个CA根证书签发的证书就可以通过证书验证。这里显示的是config文件中的名称,但我是从config直接复制的证书数据所以不会错。也就是集群的根证书。那么集群的local怎么来的,其实也是config文件中自己定义的名称,但是其中的。*这里有一个kind为User,这里的重点是这里的User就是证书里的CN名称。
2025-01-08 13:37:07
93
原创 K8S集群更新api-sever证书的SAN属性
1、当你的api-server需要更新API 服务器的地址和端口号就会使用到SAN属性证书。1、生成新的证书签名请求 (CSR)首先,生成一个新的私钥和 CSR 文件,确保包含。2、查看证书的SAN属性。二、如何更新SAN证书的步骤。
2025-01-07 23:05:49
315
原创 记录一次、自己搭建镜像加速站的过程
kubectl apply -k {kustomization.yaml所在目录} + -n 2、不同远端仓库同一个ingress-nginx怎么处理最佳。容器内:/etc/distribution/config.yml。2、集群+ingress。利用远端仓库本地缓存的方式进行加速。一、HK地理位置的云主机(重点是魔法)1、单机+nginx。三、git clone下面这个项目。2、下面为官方的解释,看完秒懂。按项目操作即可,分单机和集群。一、搭建镜像加速站的核心项目。
2025-01-04 15:16:54
106
原创 记录一次,不重启Server扩容btrfs文件系统挂载根目录的过程。
resizepart 2 100% #调整分区大小(假设分区编号为 2)select /dev/sda #选择你需要扩容的磁盘。print #打印分区表以查看分区编号。print #验证swap分区删除。一、iaas平台扩容虚拟机磁盘。一、扫描总线、识别扩容后的容量。rm x #删除swap分区。三、删除swap分区。二、关闭swap分区。
2024-12-21 11:12:44
392
原创 解答疑问,为什么在本地明明拉取了镜像,但是k8s-pod依旧ImagePullBackOff
nerdctl 默认的namespace为default.可以通过env传递给nerdctl来切换ns.3、Kubernetes默认工作的namespace为k8s.io。4、而部分工具运行的ns 为default.比如nerdctl。ctr 和nerdctl可以管理ori 的 namespace.1、被namespace隔离了。2、没错,ORI也有隔离性。crictl则不行默认就是k8s.io。
2024-11-12 20:44:57
878
原创 解决部署RKE2或K3S-“docker.io/rancher/mirrored-pause:3.6\“: -无法拉取镜像办法
1、默认的仓库在docker你懂的。二、修改拉取的仓库前缀。
2024-11-11 21:21:50
1851
2
原创 Gitlab-执行器为Kubetnetes时的注意事项,解决DNS解析问题
3、通过本地DNS解析其实就可以看到,执行器和Runner没有太大关系。后面的xxxxxx定义的是执行器的配置文件,这点理解了就很简单了。管理执行器的叫Gitlab-Runner。二、执行器为Kubetnetes时,DNF解析问题解决办法。1、Gitlab-runner的DNF解析。这里对于Runner的理解非常重要。具体执行ci流水线的叫执行器。一、Gitlab-Runner。
2024-11-06 21:51:41
512
原创 Gitlab-ERROR: Job failed (system failure): prepare environment: setting up credentials: Unauthorized
2、问题根因是因为这是Runer的一个BUG,因为更新了Service Accout产生的。1、重新使用helm安装一遍即可。1、Runner使用helm安装、无特殊参数。
2024-11-05 10:25:25
369
原创 Gitlab-runner running on Kubernetes - hostAliases
*Config like this.*That in your helm values.yaml.
2024-11-03 10:28:37
399
原创 我来讲一下-Service Mesh.
4、此时A服务需要访问B服务,只需要在配置文件中写上一个变量,Service_B = "SpringCloud_Service_B",后面的这个值“"SpringCloud_Service_B"”,是“SpringCloud组件”__"nacos"提供给他。2、而对于现代应用程序,生产单位的需求是“今天的需求,明天就要上线”,“上线有问题,我希望立刻马上可以回退到正常版本”,“我还想我的程序能顶的住高并发!3、那么“Service Mesh.”就不是一个“名词”,更像是一个“象形词”需要有想象力才能理解。
2024-10-27 11:16:27
937
原创 Cilium + ebpf 系列文章- (八)BGP Service Advertisement
【代码】Cilium + ebpf 系列文章- (八)BGP Service Advertisement。
2024-10-23 14:57:04
168
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人