Helm学习笔记
Helm 常用命令 命令 描述 create 创建一个 chart 并指定名字 dependency 管理 chart 依赖 get 下载一个 release。可用子命令:all、hooks、manifest、notes、values history 获取 release 历史 install 安装一个 chart list 列出 release package 将 chart 目录打包到 chart 存档文件中 pull 从远程仓库中下载 chart 并解压到本地 helm pull stable/mysql --untar repo 添加,列出,移除,更新和索引 chart 仓库。可用子命令:add、index、list、remove、update rollback 从之前版本回滚 search 根据关键字搜索 chart。可用子命令:hub、repo show 查看 chart 详细信息。可用子命令:all、chart、readme、values status 显示已命名版本的状态 template 本地呈...
如何优雅的使用Calico 路由反射模式
1 原理 Info 同一集群内的客户机只需要与该集群的 RR 直接交换路由信息,因此客户机只需要与 RR 之间建立 IBGP 连接,不需要与其他客户机建立 IBGP 连接,从而减少了 IBGP 连接数量。并采用独有的 Cluster_List 属性和 Originator_ID 属性防止路由环路。RR 向 IBGP 邻居发布路由规则如下: 从非客户机学到的路由,发布给所有客户机。 从客户机学到的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。 从 EBGP 对等体学到的路由,发布给所有的非客户机和客户机。 2 配置 Calico 2.1 关闭 node-to-node BGP 网络 Info 为保证 IBGP 对等体之间的连通性,需要在 IBGP 对等体之间建立全连接关系。假设在一个 AS 内部有 n 台设备,那么建立的 IBGP 连接数就为 n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和 CPU 资源的消耗都很大。Calico 默认是 Full-mesh 全互联模式,需要关闭 1234567891011cat >...
GitLab 备份与恢复
单节点 1 备份 1.1 备份前 gitlab 的项目如图所示 1.2 检查后台迁移任务 在升级到新的主要版本之前,请确保所有后台迁移已完全完成 这一点很重要。在后台迁移完成之前进行升级可能会导致数据损坏。 可在 http://{gitlaburl}/admin/background_jobs 中查看 1.3 停掉服务 gitlab-ctl stop puma gitlab-ctl stop sidekiq 1.4 进行备份 1.4.1 全量备份 如果加 STRATEGY=copy 参数可以不需要停止服务,但是添加这个参数是增加一倍存储空间 gitlab-backup create 1.4.2 只备份数据库 gitlab data 要通过IaaS平台备份磁盘 gitlab-backup create SKIP=uploads,builds,artifacts,lfs,registry,pages,repositories 1.5 查看 12345# pwd/data/gitlab-data/data/backups# ll -htotal 3.4...
GitLab 单节点迁移到集群
1 迁移规划 提前把数据库迁移到外部,参考: GitLab 迁移到外部数据库 | 云原生基站 准备 gitlab 集群,参考: GitLab Cluster | 云原生基站(里面别按照这文档写数据,都是测试用的) 同步原有 gitlab 数据到 nfs (因为数据量比较大,这部操作可能要一天作用) 修改原有 gialab 服务配置,使其变成 gitaly 测试没问题,切换 dns 解析到 rails 角色的负载均衡 2 同步数据 原有 gitlab 节点执行 2.1 安装工具 yum install rsync nfs-utils -y 2.2 挂载 NFS mount -t nfs 10.1.1.1:/gitlab-data /gitlab-dat 2.3 查看目录结构 12345678910111213141516171819├── config│ ├── docker-compose.yaml│ ├── gitlab.rb│ ├── ssl│ │ ├── gitlab-tst.ccops.cc.crt│ │ └── gitlab...
GitLab Cluster
背景,当前单节点 gitlab 已经无法满足公司需求,gitlab 官网方案用的资源比较多,最好采用 3rails,gitaly,其中 gitaly 分片存储 可能发生的问题,其中某个 gitaly 节点宕机会导致当前节点的 project 无法访问 一, 准备工作 1 资源申请 名称 数量 端口 备注 rails 3 80(HTTP),443(TCP/HTTPS),2222(TCP) 对外 gitlab 服务 gitaly 3 9999(TCP),9236(TCP) gitlab 存储 负载均衡(F5) 1 80(HTTP),443(TCP/HTTPS),2222(TCP) rails 负载 存储(NFS) 1 (111,635,2049,4046)TCP/UDP plpgsql 1 5432(TCP) 版本>=12 redis 1 6379(TCP) 版本>=5 1.1 系统调优 参考: Linux系统调优 2 证书准备 2.1 Gitaly 2.1.1 配置文件 2.1.1.1 ca.conf 1234...
GitLab 迁移到外部数据库
1 前期准备 准备生产 redis 和 pg 集群,在 pg 上创建一个新的无任何数据的库: gitlab 提前将新的 gitlab.rb 文件修改完成(添加外部 pg 和 redis 连接配置) 2 备份 2.1 检查后台迁移任务 在升级到新的主要版本之前,请确保所有后台迁移已完全完成 这一点很重要。在后台迁移完成之前进行升级可能会导致数据损坏。 可在 http://{gitlaburl}/admin/background_jobs 中查看 2.2 停掉服务 gitlab-ctl stop puma gitlab-ctl stop sidekiq 2.3 进行备份 gitlab-backup create SKIP=uploads,builds,artifacts,lfs,registry,pages,repositories 2.4 查看 12345# pwd/data/gitlab-data/data/backups# ll -htotal 3.4G-rwxr-xr-x 1 chrony polkitd 2.5G Jun 13 11:47 165...
Kubernetes命令总结
网上搜的命令要么不全,要么写的太多,看这字多,自己总结了下 1 kubectl 自动补全 12345yum install bash-completionecho "source /usr/share/bash-completion/bash_completion" >> ~/.bashrcecho 'source <(kubectl completion bash)' >>~/.bashrcsource ~/.bashrctype _init_completion #检查是否安装成功 2 资源对象 2.1 工作负载型资源对象 POD,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob … 2.2 服务发现及均衡资源对象 Service,Ingress, IngressRoute … 2.3 配置与存储资源对象 PersistentVolumeClaim(存储卷声明),CSI(容器存储接口,可以扩展各种各样的第三方存储卷...
记录一次exporter故障
现象: prometheus 上查看 exporter 节点爆红 exporter 的 pod 曾经 oom 过,重启后使用内存增长迅速,log 报错 timout,手动通过 url 访问没任何问题 1 考虑服务本身问题 1.1 查看事件 因为操作完写的文档,没有记录了,当时有OOM killed字段,怀疑硬件资源问题 1.2 查看系统硬件日志 搜索 oom 会找到报错,重点是:mems_allowed=0,所以 pod 被 kill 掉了 12345dmesg -T |grep oom[Mon Jun 6 14:15:29 2022] test-exporter-57bb88f4b4-92b6c invoked oom-killer: gfp_mask=0x40cc0(GFP_KERNEL|__GFP_COMP), order=0, oom_score_adj=999[Mon Jun 6 14:15:29 2022] oom_kill_process.cold+0xb/0x10[Mon Jun 6 14:15:29 2022] [ pid ] ...
Redis 常用命令
12#使用redis-cli连接到127.0.0.1 6379这个redis服务节点,集群模式需要加-c,输入密码加-a 后面可以直接接命令/opt/redis/redis-cli -h 127.0.0.1 -p 6379 # -c -a qweasd 1 基本 } 默认 16 个数据库,默认使用第 0 个 } } 集群模式只能用第 0 个 命令 说明 select dbNum 选择数据库,如 select 0 选择第一个 dbsize 查看当前数据库数据数量 flushdb 清空当前数据库 flushall 清空所有数据库 exists key 判断 key 是否存在 move key dbNum 把一个数据移动到指定的数据库,如 move key1 3,把 key1 移动到数据库 3 keys * 查询当前数据库所有 key,*代表所有,也可以模糊匹配,如 keys a*,代表查询 a 开头的所有 key expire key seconds 设置一个 key 多久过期,单位秒 ttl key 查询一个 key 剩余到期时间 ...
Redis 哨兵模式笔记
1 哨兵工作机制 1.1 环境架构 每个哨兵节点,每 10 秒向已知的各个主从节点发送 info 命令,获取最新的拓扑结构关系和各个节点详细信息; 每个哨兵节点每 1 秒向它已知的 Master、Slave 节点以及其他哨兵节点发送一个 ping 命令,从最后一次成功响应的时间开始,超过 down-after-milliseconds 设置的时间,则监测的哨兵标记为下线; 如果一个 Master 节点被哨兵标记为下线,其它所有哨兵节点再次每秒 1 个 ping,未收到 pong 则确认下线,进入主观下线状态; 确认 Master 主观下线的哨兵节点数,如果达到配置参数的值,则 Master 节点进入正式客观下线; 如果确认 Master 主管下线的哨兵节点数,达不到配置的值,客观下线状态移除; 如果哨兵节点能重新与 Master 节点进行 ping-pong ,主观下线状态移除。 1.2 为什么要用哨兵集群 防止误判:对于节点的故障判断是由多个 Sentinel 节点共同完成。 高可靠:即使个别 Sentinel 节点不可用,整个 Sentinel 节点集合依然是健...












